<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>
<!DOCTYPE bugzilla SYSTEM "https://bugs.webkit.org/page.cgi?id=bugzilla.dtd">

<bugzilla version="5.0.4.1"
          urlbase="https://bugs.webkit.org/"
          
          maintainer="admin@webkit.org"
>

    <bug>
          <bug_id>82370</bug_id>
          
          <creation_ts>2012-03-27 12:15:35 -0700</creation_ts>
          <short_desc>[chromium] Unknown transforms should be treated as non-axis aligned on main thread</short_desc>
          <delta_ts>2012-03-27 16:49:25 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>New Bugs</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          <dependson>82357</dependson>
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Dana Jansens">danakj</reporter>
          <assigned_to name="Dana Jansens">danakj</assigned_to>
          <cc>backer</cc>
    
    <cc>cc-bugs</cc>
    
    <cc>enne</cc>
    
    <cc>jamesr</cc>
    
    <cc>piman</cc>
    
    <cc>reveman</cc>
    
    <cc>shawnsingh</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>589125</commentid>
    <comment_count>0</comment_count>
    <who name="Dana Jansens">danakj</who>
    <bug_when>2012-03-27 12:15:35 -0700</bug_when>
    <thetext>[chromium] Unknown transforms should be treated as non-axis aligned on main thread</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>589160</commentid>
    <comment_count>1</comment_count>
      <attachid>134117</attachid>
    <who name="Dana Jansens">danakj</who>
    <bug_when>2012-03-27 12:39:32 -0700</bug_when>
    <thetext>Created attachment 134117
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>589279</commentid>
    <comment_count>2</comment_count>
    <who name="Shawn Singh">shawnsingh</who>
    <bug_when>2012-03-27 14:20:30 -0700</bug_when>
    <thetext>(1) Does this patch mean that the renderSurfaceLayerList that is computed by the main thread would actually be different than the renderSurfaceLayerList computed by the impl thread?

(2) Until now, we were essentially guaranteed that both sides would execute calcDrawTransforms essentially in the same way, right?

At a glance I think its an unavoidable side-effect without massive impractical redesign, but I just wanted to ask, because it feels like a slippery slope.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>589285</commentid>
    <comment_count>3</comment_count>
    <who name="Dana Jansens">danakj</who>
    <bug_when>2012-03-27 14:26:12 -0700</bug_when>
    <thetext>(In reply to comment #2)
&gt; (1) Does this patch mean that the renderSurfaceLayerList that is computed by the main thread would actually be different than the renderSurfaceLayerList computed by the impl thread?

Yes, accelerated animations + threaded compositor = the two sides differ in what they know about the world with certainty.

&gt; (2) Until now, we were essentially guaranteed that both sides would execute calcDrawTransforms essentially in the same way, right?
&gt; 
&gt; At a glance I think its an unavoidable side-effect without massive impractical redesign, but I just wanted to ask, because it feels like a slippery slope.

Yeh, they are slightly different, with the different cases well displayed in the various bool functions near the top. I think it&apos;s totally okay for main side to have more surfaces in its view of the world than impl. It shouldn&apos;t miss any that impl has though. From perspective of me looking at my screen, more render surfaces along the way won&apos;t have any impact, which is what this relies on.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>589374</commentid>
    <comment_count>4</comment_count>
      <attachid>134117</attachid>
    <who name="Adrienne Walker">enne</who>
    <bug_when>2012-03-27 15:47:38 -0700</bug_when>
    <thetext>Comment on attachment 134117
Patch

View in context: https://bugs.webkit.org/attachment.cgi?id=134117&amp;action=review

Can you explain why the test changes are needed?

&gt; Source/WebCore/platform/graphics/chromium/cc/CCLayerTreeHostCommon.cpp:142
&gt; +static inline bool transformToParentIsKnown(CCLayerImpl* layer, bool animatingTransformToParent)

style nit: unused variables.

&gt; Source/WebCore/platform/graphics/chromium/cc/CCLayerTreeHostCommon.cpp:149
&gt; +    return !animatingTransformToParent;

I don&apos;t understand why this function needs to take animatingTransformToParent.  Isn&apos;t this just &quot;return !layer-&gt;transformIsAnimating();&quot;?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>589381</commentid>
    <comment_count>5</comment_count>
      <attachid>134117</attachid>
    <who name="Dana Jansens">danakj</who>
    <bug_when>2012-03-27 15:54:14 -0700</bug_when>
    <thetext>Comment on attachment 134117
Patch

View in context: https://bugs.webkit.org/attachment.cgi?id=134117&amp;action=review

&gt;&gt; Source/WebCore/platform/graphics/chromium/cc/CCLayerTreeHostCommon.cpp:142
&gt;&gt; +static inline bool transformToParentIsKnown(CCLayerImpl* layer, bool animatingTransformToParent)
&gt; 
&gt; style nit: unused variables.

oh thanks.

&gt;&gt; Source/WebCore/platform/graphics/chromium/cc/CCLayerTreeHostCommon.cpp:149
&gt;&gt; +    return !animatingTransformToParent;
&gt; 
&gt; I don&apos;t understand why this function needs to take animatingTransformToParent.  Isn&apos;t this just &quot;return !layer-&gt;transformIsAnimating();&quot;?

true! I&apos;ll remove the animatingTransformToParent entirely.

&gt; Source/WebKit/chromium/tests/CCLayerTreeHostCommonTest.cpp:-690
&gt; -    addAnimatedTransformToController(*childOfRoot-&gt;layerAnimationController(), 10, 30, 0);

Since this isn&apos;t supposed to be a rendersurface i took the animated transform off of it.

&gt; Source/WebKit/chromium/tests/CCLayerTreeHostCommonTest.cpp:689
&gt;      addAnimatedTransformToController(*renderSurface2-&gt;layerAnimationController(), 10, 30, 0);

This verifies that an animated transform (instead of animated opacity) does make it into a rendersurface now.

&gt; Source/WebKit/chromium/tests/CCLayerTreeHostCommonTest.cpp:745
&gt; -    EXPECT_TRUE(renderSurface2-&gt;renderSurface()-&gt;drawOpacityIsAnimating());
&gt; +    EXPECT_FALSE(renderSurface2-&gt;renderSurface()-&gt;drawOpacityIsAnimating());

This animates a transform now instead of opacity.

&gt; Source/WebKit/chromium/tests/CCLayerTreeHostCommonTest.cpp:752
&gt; +    EXPECT_FALSE(childOfRoot-&gt;drawTransformIsAnimating());

No longer animating to prevent it from making a surface. This was testing that drawTransforms propagate to children, which is also tested by childOfRS2.

&gt; Source/WebKit/chromium/tests/CCLayerTreeHostCommonTest.cpp:766
&gt; +    EXPECT_FALSE(childOfRoot-&gt;screenSpaceTransformIsAnimating());

No longer animating to prevent it from making a surface. This was testing that drawTransforms propagate to children, which is also tested by childOfRS2.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>589386</commentid>
    <comment_count>6</comment_count>
      <attachid>134155</attachid>
    <who name="Dana Jansens">danakj</who>
    <bug_when>2012-03-27 15:56:54 -0700</bug_when>
    <thetext>Created attachment 134155
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>589398</commentid>
    <comment_count>7</comment_count>
      <attachid>134155</attachid>
    <who name="Adrienne Walker">enne</who>
    <bug_when>2012-03-27 16:06:45 -0700</bug_when>
    <thetext>Comment on attachment 134155
Patch

Ah, thanks for the explanation.  R=me.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>589442</commentid>
    <comment_count>8</comment_count>
      <attachid>134155</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-03-27 16:49:21 -0700</bug_when>
    <thetext>Comment on attachment 134155
Patch

Clearing flags on attachment: 134155

Committed r112332: &lt;http://trac.webkit.org/changeset/112332&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>589443</commentid>
    <comment_count>9</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-03-27 16:49:25 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>134117</attachid>
            <date>2012-03-27 12:39:32 -0700</date>
            <delta_ts>2012-03-27 15:56:49 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-82370-20120327153930.patch</filename>
            <type>text/plain</type>
            <size>12049</size>
            <attacher name="Dana Jansens">danakj</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTEyMjc3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYzljMmY0NDlhZmYwNmI0
MDY0NGM4YTJhYzZjN2I0ZTZjZTIyYTMxNS4uM2RkMzRjMzM0ZjA4Y2VkMGU5ZTY0OWE5NzQ2MmEy
N2NlZjA4NjIyMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMxIEBACisyMDEyLTAzLTI3ICBEYW5h
IEphbnNlbnMgIDxkYW5ha2pAY2hyb21pdW0ub3JnPgorCisgICAgICAgIFtjaHJvbWl1bV0gVW5r
bm93biB0cmFuc2Zvcm1zIHNob3VsZCBiZSB0cmVhdGVkIGFzIG5vbi1heGlzIGFsaWduZWQgb24g
bWFpbiB0aHJlYWQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTgyMzcwCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAg
ICAgT24gbWFpbiB0aHJlYWQsIGFuaW1hdGluZyB0cmFuc2Zvcm1zIGhhdmUgInVua25vd24iIHZh
bHVlcyBhcyB0aGV5IGFyZSBjaGFuZ2luZworICAgICAgICBvdXQgb2Ygc3luYyBvbiB0aGUgaW1w
bCB0aHJlYWQuIFNvIHRyZWF0IHRoZW0gYXMgbm9uLWF4aXMtYWxpZ25lZCBzaW5jZSB0aGV5Cisg
ICAgICAgIG1heSBiZSwgd2hlbiBkZWNpZGluZyB0byBjcmVhdGUgYSByZW5kZXIgc3VyZmFjZS4K
KworICAgICAgICBJbiBhZGRpdGlvbiwgc2luY2Ugc3VyZmFjZXMgYXJlIGNoZWFwIG9uIG1haW4g
dGhyZWFkLCBjcmVhdGUgb25lIGZvciBhbGwgbGF5ZXJzCisgICAgICAgIHdpdGggYW5pbWF0aW5n
IHRyYW5zZm9ybXMgYW5kIGEgZHJhd2luZyBkZXNjZW5kYW50LCBhcyB0aGlzIGFsbG93cyBwYWlu
dCBjdWxsaW5nCisgICAgICAgIHdpdGhpbiB0aGUgbGF5ZXIncyBzdWJ0cmVlICh0aGUgYW5pbWF0
ZWQgdHJhbnNmb3JtIHdvbid0IGFmZmVjdCBkcmF3VHJhbnNmb3JtcworICAgICAgICBpbnNpZGUg
dGhlIHN1YnRyZWUpLgorCisgICAgICAgIEFsc28gcmVuYW1lZCB0aGUgbGF5ZXJJc0luQW5pbWF0
aW5nU3VidHJlZUZvciogdG8gYW5pbWF0aW5nVHJhbnNmb3JtVG8qLgorICAgICAgICBUaGUgb2xk
IG5hbWUgbWFkZSBtZSBwYXVzZSBhbmQgdGhpbmsgd2hhdCBpdCBtZWFudCBhbmQgSSdtIHRoZSBv
bmUgd2hvCisgICAgICAgIGNyZWF0ZWQgaXQuIEhvcGVmdWxseSB0aGlzIGlzIG1vcmUgY2xlYXIu
CisKKyAgICAgICAgVW5pdCB0ZXN0OiBDQ0xheWVyVHJlZUhvc3RDb21tb25UZXN0LnZlcmlmeUFu
aW1hdGlvbnNGb3JSZW5kZXJTdXJmYWNlSGllcmFyY2h5CisKKyAgICAgICAgKiBwbGF0Zm9ybS9n
cmFwaGljcy9jaHJvbWl1bS9jYy9DQ0xheWVyVHJlZUhvc3RDb21tb24uY3BwOgorICAgICAgICAo
V2ViQ29yZTo6dHJhbnNmb3JtVG9QYXJlbnRJc0tub3duKToKKyAgICAgICAgKFdlYkNvcmUpOgor
ICAgICAgICAoV2ViQ29yZTo6c3VidHJlZVNob3VsZFJlbmRlclRvU2VwYXJhdGVTdXJmYWNlKToK
KyAgICAgICAgKFdlYkNvcmU6OmNhbGN1bGF0ZURyYXdUcmFuc2Zvcm1zQW5kVmlzaWJpbGl0eUlu
dGVybmFsKToKKwogMjAxMi0wMy0yNyAgU3RlcGhlbiBDaGVubmV5ICA8c2NoZW5uZXlAY2hyb21p
dW0ub3JnPgogCiAgICAgICAgIDxzdmc6dXNlPiBlbGVtZW50cyBpbiB0aGUgcGFyc2VyIGNhbiBj
cmVhdGUgZWxlbWVudHMgbm90IG1hcmtlZCBhcyBjcmVhdGVkIGJ5IHRoZSBwYXJzZXIKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9j
aHJvbWl1bS9DaGFuZ2VMb2cKaW5kZXggMWI0OWVkNDdlMThiYzI4MGEyNmQ2OTIzNWQ1NGQxNTk0
MDMyNThmOC4uZjA5YzNkNmNlNTRmODRmOGFhMjFmN2ZkZjc1YjM2NzIwMTM3NGYxNiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktp
dC9jaHJvbWl1bS9DaGFuZ2VMb2cKQEAgLTEsNSArMSwxNSBAQAogMjAxMi0wMy0yNyAgRGFuYSBK
YW5zZW5zICA8ZGFuYWtqQGNocm9taXVtLm9yZz4KIAorICAgICAgICBbY2hyb21pdW1dIFVua25v
d24gdHJhbnNmb3JtcyBzaG91bGQgYmUgdHJlYXRlZCBhcyBub24tYXhpcyBhbGlnbmVkIG9uIG1h
aW4gdGhyZWFkCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD04MjM3MAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAg
ICogdGVzdHMvQ0NMYXllclRyZWVIb3N0Q29tbW9uVGVzdC5jcHA6CisgICAgICAgIChXZWJLaXRU
ZXN0czo6VEVTVCk6CisKKzIwMTItMDMtMjcgIERhbmEgSmFuc2VucyAgPGRhbmFrakBjaHJvbWl1
bS5vcmc+CisKICAgICAgICAgW2Nocm9taXVtXSBNYWtlIHVzZSBvZiBjb21tb24gYW5pbWF0aW9u
IHVuaXQgdGVzdCBtZXRob2RzCiAgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD04MjM1NwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9jaHJvbWl1bS9jYy9DQ0xheWVyVHJlZUhvc3RDb21tb24uY3BwIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vY2MvQ0NMYXllclRyZWVIb3N0Q29tbW9u
LmNwcAppbmRleCBiZDIyMTU0YjkxOGE3ZGU2MjhjM2M5ODQ2MWUwNjcyZDQ4MWZiZjI5Li5jNzYy
YTQzMDYxZWU2YjNhYTRlZWFiOGQ2MGY1M2M0YTAwZDMyYjBlIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9jYy9DQ0xheWVyVHJlZUhvc3RDb21t
b24uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL2Nj
L0NDTGF5ZXJUcmVlSG9zdENvbW1vbi5jcHAKQEAgLTEzOSw4ICsxMzksMTggQEAgc3RhdGljIGlu
bGluZSBib29sIGxheWVyT3BhY2l0eUlzT3BhcXVlKExheWVyQ2hyb21pdW0qIGxheWVyKQogICAg
IHJldHVybiBsYXllci0+b3BhY2l0eSgpID09IDEgJiYgIWxheWVyLT5vcGFjaXR5SXNBbmltYXRp
bmcoKTsKIH0KIAorc3RhdGljIGlubGluZSBib29sIHRyYW5zZm9ybVRvUGFyZW50SXNLbm93bihD
Q0xheWVySW1wbCogbGF5ZXIsIGJvb2wgYW5pbWF0aW5nVHJhbnNmb3JtVG9QYXJlbnQpCit7Cisg
ICAgcmV0dXJuIHRydWU7Cit9CisKK3N0YXRpYyBpbmxpbmUgYm9vbCB0cmFuc2Zvcm1Ub1BhcmVu
dElzS25vd24oTGF5ZXJDaHJvbWl1bSogbGF5ZXIsIGJvb2wgYW5pbWF0aW5nVHJhbnNmb3JtVG9Q
YXJlbnQpCit7CisgICAgcmV0dXJuICFhbmltYXRpbmdUcmFuc2Zvcm1Ub1BhcmVudDsKK30KKwog
dGVtcGxhdGU8dHlwZW5hbWUgTGF5ZXJUeXBlPgotc3RhdGljIGJvb2wgc3VidHJlZVNob3VsZFJl
bmRlclRvU2VwYXJhdGVTdXJmYWNlKExheWVyVHlwZSogbGF5ZXIsIGJvb2wgYXhpc0FsaWduZWRX
aXRoUmVzcGVjdFRvUGFyZW50KQorc3RhdGljIGJvb2wgc3VidHJlZVNob3VsZFJlbmRlclRvU2Vw
YXJhdGVTdXJmYWNlKExheWVyVHlwZSogbGF5ZXIsIGJvb2wgYXhpc0FsaWduZWRXaXRoUmVzcGVj
dFRvUGFyZW50LCBib29sIGFuaW1hdGluZ1RyYW5zZm9ybVRvUGFyZW50KQogewogICAgIC8vIEZJ
WE1FOiBJZiB3ZSBkZWNpZGUgdG8gY3JlYXRlIGEgcmVuZGVyIHN1cmZhY2UgaGVyZSB3aGlsZSB0
aGlzIGxheWVyIGRvZXMKICAgICAvLyAgICAgICAgcHJlc2VydmUtM2QsIHRoZW4gd2UgbWF5IGJl
IHNvcnRpbmcgaW5jb3JyZWN0bHkgYmVjYXVzZSB3ZSB3aWxsIG5vdCBiZQpAQCAtMTcxLDYgKzE4
MSwxMiBAQCBzdGF0aWMgYm9vbCBzdWJ0cmVlU2hvdWxkUmVuZGVyVG9TZXBhcmF0ZVN1cmZhY2Uo
TGF5ZXJUeXBlKiBsYXllciwgYm9vbCBheGlzQWxpZwogICAgIGlmIChsYXllci0+cGFyZW50KCkg
JiYgbGF5ZXItPnBhcmVudCgpLT5wcmVzZXJ2ZXMzRCgpICYmICFsYXllci0+cHJlc2VydmVzM0Qo
KSAmJiBkZXNjZW5kYW50RHJhd3NDb250ZW50KQogICAgICAgICByZXR1cm4gdHJ1ZTsKIAorICAg
IC8vIE9uIHRoZSBtYWluIHRocmVhZCBzaWRlLCBhbmltYXRpbmcgdHJhbnNmb3JtcyBhcmUgdW5r
bm93biwgYW5kIG1heSBjYXVzZSBhIFJlbmRlclN1cmZhY2Ugb24gdGhlIGltcGwgc2lkZS4KKyAg
ICAvLyBTaW5jZSB0aGV5IGFyZSBjaGVhcCwgd2UgY3JlYXRlIGEgcmVuZGVyc3VyZmFjZSBmb3Ig
YWxsIGFuaW1hdGluZyB0cmFuc2Zvcm1zIHRvIGNvdmVyIHRoZXNlIGNhc2VzLCBhbmQgc28KKyAg
ICAvLyB0aGF0IHdlIGNhbiBjb25zaWRlciBkZXNjZW5kYW50cyBhcyBub3QgYW5pbWF0aW5nIHJl
bGF0aXZlIHRvIHRoZWlyIHRhcmdldCB0byBhaWQgY3VsbGluZy4KKyAgICBpZiAoIXRyYW5zZm9y
bVRvUGFyZW50SXNLbm93bihsYXllciwgYW5pbWF0aW5nVHJhbnNmb3JtVG9QYXJlbnQpICYmIGRl
c2NlbmRhbnREcmF3c0NvbnRlbnQpCisgICAgICAgIHJldHVybiB0cnVlOworCiAgICAgLy8gSWYg
dGhlIGxheWVyIGNsaXBzIGl0cyBkZXNjZW5kYW50cyBidXQgaXQgaXMgbm90IGF4aXMtYWxpZ25l
ZCB3aXRoIHJlc3BlY3QgdG8gaXRzIHBhcmVudC4KICAgICBpZiAobGF5ZXItPm1hc2tzVG9Cb3Vu
ZHMoKSAmJiAhYXhpc0FsaWduZWRXaXRoUmVzcGVjdFRvUGFyZW50ICYmIGRlc2NlbmRhbnREcmF3
c0NvbnRlbnQpCiAgICAgICAgIHJldHVybiB0cnVlOwpAQCAtMzE1LDExICszMzEsMTIgQEAgc3Rh
dGljIGJvb2wgY2FsY3VsYXRlRHJhd1RyYW5zZm9ybXNBbmRWaXNpYmlsaXR5SW50ZXJuYWwoTGF5
ZXJUeXBlKiBsYXllciwgTGF5ZXIKICAgICBUcmFuc2Zvcm1hdGlvbk1hdHJpeCBjb21iaW5lZFRy
YW5zZm9ybSA9IHBhcmVudE1hdHJpeDsKICAgICBjb21iaW5lZFRyYW5zZm9ybSA9IGNvbWJpbmVk
VHJhbnNmb3JtLm11bHRpcGx5KGxheWVyTG9jYWxUcmFuc2Zvcm0pOwogCi0gICAgYm9vbCBsYXll
cklzSW5BbmltYXRpbmdTdWJ0cmVlRm9yU3VyZmFjZSA9IGxheWVyLT50cmFuc2Zvcm1Jc0FuaW1h
dGluZygpOwotICAgIGJvb2wgbGF5ZXJJc0luQW5pbWF0aW5nU3VidHJlZUZvclNjcmVlbiA9IGxh
eWVyLT50cmFuc2Zvcm1Jc0FuaW1hdGluZygpOworICAgIGJvb2wgYW5pbWF0aW5nVHJhbnNmb3Jt
VG9QYXJlbnQgPSBsYXllci0+dHJhbnNmb3JtSXNBbmltYXRpbmcoKTsKKyAgICBib29sIGFuaW1h
dGluZ1RyYW5zZm9ybVRvVGFyZ2V0ID0gYW5pbWF0aW5nVHJhbnNmb3JtVG9QYXJlbnQ7CisgICAg
Ym9vbCBhbmltYXRpbmdUcmFuc2Zvcm1Ub1NjcmVlbiA9IGFuaW1hdGluZ1RyYW5zZm9ybVRvUGFy
ZW50OwogICAgIGlmIChsYXllci0+cGFyZW50KCkpIHsKLSAgICAgICAgbGF5ZXJJc0luQW5pbWF0
aW5nU3VidHJlZUZvclN1cmZhY2UgfD0gbGF5ZXItPnBhcmVudCgpLT5kcmF3VHJhbnNmb3JtSXNB
bmltYXRpbmcoKTsKLSAgICAgICAgbGF5ZXJJc0luQW5pbWF0aW5nU3VidHJlZUZvclNjcmVlbiB8
PSBsYXllci0+cGFyZW50KCktPnNjcmVlblNwYWNlVHJhbnNmb3JtSXNBbmltYXRpbmcoKTsKKyAg
ICAgICAgYW5pbWF0aW5nVHJhbnNmb3JtVG9UYXJnZXQgfD0gbGF5ZXItPnBhcmVudCgpLT5kcmF3
VHJhbnNmb3JtSXNBbmltYXRpbmcoKTsKKyAgICAgICAgYW5pbWF0aW5nVHJhbnNmb3JtVG9TY3Jl
ZW4gfD0gbGF5ZXItPnBhcmVudCgpLT5zY3JlZW5TcGFjZVRyYW5zZm9ybUlzQW5pbWF0aW5nKCk7
CiAgICAgfQogCiAgICAgRmxvYXRSZWN0IGxheWVyUmVjdCgtMC41ICogbGF5ZXItPmJvdW5kcygp
LndpZHRoKCksIC0wLjUgKiBsYXllci0+Ym91bmRzKCkuaGVpZ2h0KCksIGxheWVyLT5ib3VuZHMo
KS53aWR0aCgpLCBsYXllci0+Ym91bmRzKCkuaGVpZ2h0KCkpOwpAQCAtMzMyLDcgKzM0OSw3IEBA
IHN0YXRpYyBib29sIGNhbGN1bGF0ZURyYXdUcmFuc2Zvcm1zQW5kVmlzaWJpbGl0eUludGVybmFs
KExheWVyVHlwZSogbGF5ZXIsIExheWVyCiAgICAgLy8gRklYTUU6IFRoaXMgc2VlbXMgbGlrZSB0
aGUgd3JvbmcgcGxhY2UgdG8gc2V0IHRoaXMKICAgICBsYXllci0+c2V0VXNlc0xheWVyQ2xpcHBp
bmcoZmFsc2UpOwogCi0gICAgaWYgKHN1YnRyZWVTaG91bGRSZW5kZXJUb1NlcGFyYXRlU3VyZmFj
ZShsYXllciwgaXNTY2FsZU9yVHJhbnNsYXRpb24oY29tYmluZWRUcmFuc2Zvcm0pKSkgeworICAg
IGlmIChzdWJ0cmVlU2hvdWxkUmVuZGVyVG9TZXBhcmF0ZVN1cmZhY2UobGF5ZXIsIGlzU2NhbGVP
clRyYW5zbGF0aW9uKGNvbWJpbmVkVHJhbnNmb3JtKSwgYW5pbWF0aW5nVHJhbnNmb3JtVG9QYXJl
bnQpKSB7CiAgICAgICAgIGlmICghbGF5ZXItPnJlbmRlclN1cmZhY2UoKSkKICAgICAgICAgICAg
IGxheWVyLT5jcmVhdGVSZW5kZXJTdXJmYWNlKCk7CiAKQEAgLTM1NiwxMSArMzczLDExIEBAIHN0
YXRpYyBib29sIGNhbGN1bGF0ZURyYXdUcmFuc2Zvcm1zQW5kVmlzaWJpbGl0eUludGVybmFsKExh
eWVyVHlwZSogbGF5ZXIsIExheWVyCiAgICAgICAgIHN1cmZhY2VPcmlnaW5UcmFuc2Zvcm0udHJh
bnNsYXRlM2QoLTAuNSAqIGJvdW5kcy53aWR0aCgpLCAtMC41ICogYm91bmRzLmhlaWdodCgpLCAw
KTsKICAgICAgICAgcmVuZGVyU3VyZmFjZS0+c2V0T3JpZ2luVHJhbnNmb3JtKHN1cmZhY2VPcmln
aW5UcmFuc2Zvcm0pOwogCi0gICAgICAgIHJlbmRlclN1cmZhY2UtPnNldFRhcmdldFN1cmZhY2VU
cmFuc2Zvcm1zQXJlQW5pbWF0aW5nKGxheWVySXNJbkFuaW1hdGluZ1N1YnRyZWVGb3JTdXJmYWNl
KTsKLSAgICAgICAgcmVuZGVyU3VyZmFjZS0+c2V0U2NyZWVuU3BhY2VUcmFuc2Zvcm1zQXJlQW5p
bWF0aW5nKGxheWVySXNJbkFuaW1hdGluZ1N1YnRyZWVGb3JTY3JlZW4pOwotICAgICAgICBsYXll
cklzSW5BbmltYXRpbmdTdWJ0cmVlRm9yU3VyZmFjZSA9IGZhbHNlOwotICAgICAgICBsYXllci0+
c2V0RHJhd1RyYW5zZm9ybUlzQW5pbWF0aW5nKGxheWVySXNJbkFuaW1hdGluZ1N1YnRyZWVGb3JT
dXJmYWNlKTsKLSAgICAgICAgbGF5ZXItPnNldFNjcmVlblNwYWNlVHJhbnNmb3JtSXNBbmltYXRp
bmcobGF5ZXJJc0luQW5pbWF0aW5nU3VidHJlZUZvclNjcmVlbik7CisgICAgICAgIHJlbmRlclN1
cmZhY2UtPnNldFRhcmdldFN1cmZhY2VUcmFuc2Zvcm1zQXJlQW5pbWF0aW5nKGFuaW1hdGluZ1Ry
YW5zZm9ybVRvVGFyZ2V0KTsKKyAgICAgICAgcmVuZGVyU3VyZmFjZS0+c2V0U2NyZWVuU3BhY2VU
cmFuc2Zvcm1zQXJlQW5pbWF0aW5nKGFuaW1hdGluZ1RyYW5zZm9ybVRvU2NyZWVuKTsKKyAgICAg
ICAgYW5pbWF0aW5nVHJhbnNmb3JtVG9UYXJnZXQgPSBmYWxzZTsKKyAgICAgICAgbGF5ZXItPnNl
dERyYXdUcmFuc2Zvcm1Jc0FuaW1hdGluZyhhbmltYXRpbmdUcmFuc2Zvcm1Ub1RhcmdldCk7Cisg
ICAgICAgIGxheWVyLT5zZXRTY3JlZW5TcGFjZVRyYW5zZm9ybUlzQW5pbWF0aW5nKGFuaW1hdGlu
Z1RyYW5zZm9ybVRvU2NyZWVuKTsKIAogICAgICAgICAvLyBVcGRhdGUgdGhlIGFnZ3JlZ2F0ZSBo
aWVyYXJjaHkgbWF0cml4IHRvIGluY2x1ZGUgdGhlIHRyYW5zZm9ybSBvZiB0aGUgbmV3bHkgY3Jl
YXRlZCBSZW5kZXJTdXJmYWNlLgogICAgICAgICBuZXh0SGllcmFyY2h5TWF0cml4Lm11bHRpcGx5
KHN1cmZhY2VPcmlnaW5UcmFuc2Zvcm0pOwpAQCAtMzg3LDggKzQwNCw4IEBAIHN0YXRpYyBib29s
IGNhbGN1bGF0ZURyYXdUcmFuc2Zvcm1zQW5kVmlzaWJpbGl0eUludGVybmFsKExheWVyVHlwZSog
bGF5ZXIsIExheWVyCiAgICAgICAgIHJlbmRlclN1cmZhY2VMYXllckxpc3QuYXBwZW5kKGxheWVy
KTsKICAgICB9IGVsc2UgewogICAgICAgICBsYXllci0+c2V0RHJhd1RyYW5zZm9ybShjb21iaW5l
ZFRyYW5zZm9ybSk7Ci0gICAgICAgIGxheWVyLT5zZXREcmF3VHJhbnNmb3JtSXNBbmltYXRpbmco
bGF5ZXJJc0luQW5pbWF0aW5nU3VidHJlZUZvclN1cmZhY2UpOwotICAgICAgICBsYXllci0+c2V0
U2NyZWVuU3BhY2VUcmFuc2Zvcm1Jc0FuaW1hdGluZyhsYXllcklzSW5BbmltYXRpbmdTdWJ0cmVl
Rm9yU2NyZWVuKTsKKyAgICAgICAgbGF5ZXItPnNldERyYXdUcmFuc2Zvcm1Jc0FuaW1hdGluZyhh
bmltYXRpbmdUcmFuc2Zvcm1Ub1RhcmdldCk7CisgICAgICAgIGxheWVyLT5zZXRTY3JlZW5TcGFj
ZVRyYW5zZm9ybUlzQW5pbWF0aW5nKGFuaW1hdGluZ1RyYW5zZm9ybVRvU2NyZWVuKTsKICAgICAg
ICAgdHJhbnNmb3JtZWRMYXllclJlY3QgPSBlbmNsb3NpbmdJbnRSZWN0KGxheWVyLT5kcmF3VHJh
bnNmb3JtKCkubWFwUmVjdChsYXllclJlY3QpKTsKIAogICAgICAgICBsYXllci0+c2V0RHJhd09w
YWNpdHkoZHJhd09wYWNpdHkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS90
ZXN0cy9DQ0xheWVyVHJlZUhvc3RDb21tb25UZXN0LmNwcCBiL1NvdXJjZS9XZWJLaXQvY2hyb21p
dW0vdGVzdHMvQ0NMYXllclRyZWVIb3N0Q29tbW9uVGVzdC5jcHAKaW5kZXggOTBhMzkzYTQ1NTc5
MzcxY2QyZTc2NGY3Y2Q2OTAwMGU2Mzg1Y2QzMy4uZDRmNGMyMTM5MWUwZjAzNTZlZjc2OTA1Yjg4
MWMwYzUyNjJlMDVhNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS90ZXN0cy9D
Q0xheWVyVHJlZUhvc3RDb21tb25UZXN0LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVt
L3Rlc3RzL0NDTGF5ZXJUcmVlSG9zdENvbW1vblRlc3QuY3BwCkBAIC02NzYsOSArNjc2LDggQEAg
VEVTVChDQ0xheWVyVHJlZUhvc3RDb21tb25UZXN0LCB2ZXJpZnlBbmltYXRpb25zRm9yUmVuZGVy
U3VyZmFjZUhpZXJhcmNoeSkKIAogICAgIC8vIEluIGNvbWJpbmF0aW9uIHdpdGggZGVzY2VuZGFu
dERyYXdzQ29udGVudCwgb3BhY2l0eSAhPSAxIGZvcmNlcyB0aGUgbGF5ZXIgdG8gaGF2ZSBhIG5l
dyByZW5kZXJTdXJmYWNlLgogICAgIGFkZE9wYWNpdHlUcmFuc2l0aW9uVG9Db250cm9sbGVyKCpy
ZW5kZXJTdXJmYWNlMS0+bGF5ZXJBbmltYXRpb25Db250cm9sbGVyKCksIDEwLCAxLCAwLCBmYWxz
ZSk7Ci0gICAgYWRkT3BhY2l0eVRyYW5zaXRpb25Ub0NvbnRyb2xsZXIoKnJlbmRlclN1cmZhY2Uy
LT5sYXllckFuaW1hdGlvbkNvbnRyb2xsZXIoKSwgMTAsIDEsIDAsIGZhbHNlKTsKIAotICAgIC8v
IEFsc28gcHV0IGFuIGFuaW1hdGlvbiBvbiBhIGxheWVyIHdpdGhvdXQgZGVzY2VuZGFudHMuCisg
ICAgLy8gQWxzbyBwdXQgYW4gYW5pbWF0ZWQgb3BhY2l0eSBvbiBhIGxheWVyIHdpdGhvdXQgZGVz
Y2VuZGFudHMuCiAgICAgYWRkT3BhY2l0eVRyYW5zaXRpb25Ub0NvbnRyb2xsZXIoKmdyYW5kQ2hp
bGRPZlJvb3QtPmxheWVyQW5pbWF0aW9uQ29udHJvbGxlcigpLCAxMCwgMSwgMCwgZmFsc2UpOwog
CiAgICAgVHJhbnNmb3JtYXRpb25NYXRyaXggbGF5ZXJUcmFuc2Zvcm07CkBAIC02ODYsMTAgKzY4
NSwxMSBAQCBURVNUKENDTGF5ZXJUcmVlSG9zdENvbW1vblRlc3QsIHZlcmlmeUFuaW1hdGlvbnNG
b3JSZW5kZXJTdXJmYWNlSGllcmFyY2h5KQogICAgIFRyYW5zZm9ybWF0aW9uTWF0cml4IHN1Ymxh
eWVyVHJhbnNmb3JtOwogICAgIHN1YmxheWVyVHJhbnNmb3JtLnNjYWxlM2QoMTAuMCwgMS4wLCAx
LjApOwogCi0gICAgLy8gUHV0IHRyYW5zZm9ybSBhbmltYXRpb25zIG9uIGNoaWxkLCByZW5kZXJT
dXJmYWNlMiwgZ3JhbmRDaGlsZE9mUm9vdCwgYW5kIGdyYW5kQ2hpbGRPZlJTMgotICAgIGFkZEFu
aW1hdGVkVHJhbnNmb3JtVG9Db250cm9sbGVyKCpjaGlsZE9mUm9vdC0+bGF5ZXJBbmltYXRpb25D
b250cm9sbGVyKCksIDEwLCAzMCwgMCk7Ci0gICAgYWRkQW5pbWF0ZWRUcmFuc2Zvcm1Ub0NvbnRy
b2xsZXIoKmdyYW5kQ2hpbGRPZlJvb3QtPmxheWVyQW5pbWF0aW9uQ29udHJvbGxlcigpLCAxMCwg
MzAsIDApOworICAgIC8vIEluIGNvbWJpbmF0aW9uIHdpdGggZGVzY2VuZGFudERyYXdzQ29udGVu
dCwgYW4gYW5pbWF0ZWQgdHJhbnNmb3JtIGZvcmNlcyB0aGUgbGF5ZXIgdG8gaGF2ZSBhIG5ldyBy
ZW5kZXJTdXJmYWNlLgogICAgIGFkZEFuaW1hdGVkVHJhbnNmb3JtVG9Db250cm9sbGVyKCpyZW5k
ZXJTdXJmYWNlMi0+bGF5ZXJBbmltYXRpb25Db250cm9sbGVyKCksIDEwLCAzMCwgMCk7CisKKyAg
ICAvLyBBbHNvIHB1dCB0cmFuc2Zvcm0gYW5pbWF0aW9ucyBvbiBncmFuZENoaWxkT2ZSb290LCBh
bmQgZ3JhbmRDaGlsZE9mUlMyCisgICAgYWRkQW5pbWF0ZWRUcmFuc2Zvcm1Ub0NvbnRyb2xsZXIo
KmdyYW5kQ2hpbGRPZlJvb3QtPmxheWVyQW5pbWF0aW9uQ29udHJvbGxlcigpLCAxMCwgMzAsIDAp
OwogICAgIGFkZEFuaW1hdGVkVHJhbnNmb3JtVG9Db250cm9sbGVyKCpncmFuZENoaWxkT2ZSUzIt
PmxheWVyQW5pbWF0aW9uQ29udHJvbGxlcigpLCAxMCwgMzAsIDApOwogCiAgICAgc2V0TGF5ZXJQ
cm9wZXJ0aWVzRm9yVGVzdGluZyhwYXJlbnQuZ2V0KCksIGxheWVyVHJhbnNmb3JtLCBzdWJsYXll
clRyYW5zZm9ybSwgRmxvYXRQb2ludCgwLjI1ZiwgMC4wZiksIEZsb2F0UG9pbnQoMi41ZiwgMC4w
ZiksIEludFNpemUoMTAsIDEwKSwgZmFsc2UpOwpAQCAtNzQyLDE0ICs3NDIsMTQgQEAgVEVTVChD
Q0xheWVyVHJlZUhvc3RDb21tb25UZXN0LCB2ZXJpZnlBbmltYXRpb25zRm9yUmVuZGVyU3VyZmFj
ZUhpZXJhcmNoeSkKICAgICBFWFBFQ1RfRkFMU0UoY2hpbGRPZlJTMS0+ZHJhd09wYWNpdHlJc0Fu
aW1hdGluZygpKTsKICAgICBFWFBFQ1RfRkFMU0UoZ3JhbmRDaGlsZE9mUlMxLT5kcmF3T3BhY2l0
eUlzQW5pbWF0aW5nKCkpOwogICAgIEVYUEVDVF9GQUxTRShyZW5kZXJTdXJmYWNlMi0+ZHJhd09w
YWNpdHlJc0FuaW1hdGluZygpKTsKLSAgICBFWFBFQ1RfVFJVRShyZW5kZXJTdXJmYWNlMi0+cmVu
ZGVyU3VyZmFjZSgpLT5kcmF3T3BhY2l0eUlzQW5pbWF0aW5nKCkpOworICAgIEVYUEVDVF9GQUxT
RShyZW5kZXJTdXJmYWNlMi0+cmVuZGVyU3VyZmFjZSgpLT5kcmF3T3BhY2l0eUlzQW5pbWF0aW5n
KCkpOwogICAgIEVYUEVDVF9GQUxTRShjaGlsZE9mUlMyLT5kcmF3T3BhY2l0eUlzQW5pbWF0aW5n
KCkpOwogICAgIEVYUEVDVF9GQUxTRShncmFuZENoaWxkT2ZSUzItPmRyYXdPcGFjaXR5SXNBbmlt
YXRpbmcoKSk7CiAKICAgICAvLyBWZXJpZnkgZHJhd1RyYW5zZm9ybXNBbmltYXRpbmdJblRhcmdl
dCB2YWx1ZXMKICAgICAvLwogICAgIEVYUEVDVF9GQUxTRShwYXJlbnQtPmRyYXdUcmFuc2Zvcm1J
c0FuaW1hdGluZygpKTsKLSAgICBFWFBFQ1RfVFJVRShjaGlsZE9mUm9vdC0+ZHJhd1RyYW5zZm9y
bUlzQW5pbWF0aW5nKCkpOworICAgIEVYUEVDVF9GQUxTRShjaGlsZE9mUm9vdC0+ZHJhd1RyYW5z
Zm9ybUlzQW5pbWF0aW5nKCkpOwogICAgIEVYUEVDVF9UUlVFKGdyYW5kQ2hpbGRPZlJvb3QtPmRy
YXdUcmFuc2Zvcm1Jc0FuaW1hdGluZygpKTsKICAgICBFWFBFQ1RfRkFMU0UocmVuZGVyU3VyZmFj
ZTEtPmRyYXdUcmFuc2Zvcm1Jc0FuaW1hdGluZygpKTsKICAgICBFWFBFQ1RfRkFMU0UocmVuZGVy
U3VyZmFjZTEtPnJlbmRlclN1cmZhY2UoKS0+dGFyZ2V0U3VyZmFjZVRyYW5zZm9ybXNBcmVBbmlt
YXRpbmcoKSk7CkBAIC03NjMsNyArNzYzLDcgQEAgVEVTVChDQ0xheWVyVHJlZUhvc3RDb21tb25U
ZXN0LCB2ZXJpZnlBbmltYXRpb25zRm9yUmVuZGVyU3VyZmFjZUhpZXJhcmNoeSkKICAgICAvLyBW
ZXJpZnkgZHJhd1RyYW5zZm9ybXNBbmltYXRpbmdJblNjcmVlbiB2YWx1ZXMKICAgICAvLwogICAg
IEVYUEVDVF9GQUxTRShwYXJlbnQtPnNjcmVlblNwYWNlVHJhbnNmb3JtSXNBbmltYXRpbmcoKSk7
Ci0gICAgRVhQRUNUX1RSVUUoY2hpbGRPZlJvb3QtPnNjcmVlblNwYWNlVHJhbnNmb3JtSXNBbmlt
YXRpbmcoKSk7CisgICAgRVhQRUNUX0ZBTFNFKGNoaWxkT2ZSb290LT5zY3JlZW5TcGFjZVRyYW5z
Zm9ybUlzQW5pbWF0aW5nKCkpOwogICAgIEVYUEVDVF9UUlVFKGdyYW5kQ2hpbGRPZlJvb3QtPnNj
cmVlblNwYWNlVHJhbnNmb3JtSXNBbmltYXRpbmcoKSk7CiAgICAgRVhQRUNUX0ZBTFNFKHJlbmRl
clN1cmZhY2UxLT5zY3JlZW5TcGFjZVRyYW5zZm9ybUlzQW5pbWF0aW5nKCkpOwogICAgIEVYUEVD
VF9GQUxTRShyZW5kZXJTdXJmYWNlMS0+cmVuZGVyU3VyZmFjZSgpLT5zY3JlZW5TcGFjZVRyYW5z
Zm9ybXNBcmVBbmltYXRpbmcoKSk7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>134155</attachid>
            <date>2012-03-27 15:56:54 -0700</date>
            <delta_ts>2012-03-27 16:49:21 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-82370-20120327185652.patch</filename>
            <type>text/plain</type>
            <size>11122</size>
            <attacher name="Dana Jansens">danakj</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTEyMzI3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggOWE3Yzg1MzJiZmFkMGJi
NTkxM2UyYjkwZTQ3YWEyYmEyNTYxZmJjNS4uM2ZmNzhlZDY5YTkzMDVmMmU4MWY3MTI0MTQ0MGJi
M2MwZmVmN2ExZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSw1ICsxLDMzIEBACiAyMDEyLTAzLTI3ICBEYW5h
IEphbnNlbnMgIDxkYW5ha2pAY2hyb21pdW0ub3JnPgogCisgICAgICAgIFtjaHJvbWl1bV0gVW5r
bm93biB0cmFuc2Zvcm1zIHNob3VsZCBiZSB0cmVhdGVkIGFzIG5vbi1heGlzIGFsaWduZWQgb24g
bWFpbiB0aHJlYWQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTgyMzcwCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAg
ICAgT24gbWFpbiB0aHJlYWQsIGFuaW1hdGluZyB0cmFuc2Zvcm1zIGhhdmUgInVua25vd24iIHZh
bHVlcyBhcyB0aGV5IGFyZSBjaGFuZ2luZworICAgICAgICBvdXQgb2Ygc3luYyBvbiB0aGUgaW1w
bCB0aHJlYWQuIFNvIHRyZWF0IHRoZW0gYXMgbm9uLWF4aXMtYWxpZ25lZCBzaW5jZSB0aGV5Cisg
ICAgICAgIG1heSBiZSwgd2hlbiBkZWNpZGluZyB0byBjcmVhdGUgYSByZW5kZXIgc3VyZmFjZS4K
KworICAgICAgICBJbiBhZGRpdGlvbiwgc2luY2Ugc3VyZmFjZXMgYXJlIGNoZWFwIG9uIG1haW4g
dGhyZWFkLCBjcmVhdGUgb25lIGZvciBhbGwgbGF5ZXJzCisgICAgICAgIHdpdGggYW5pbWF0aW5n
IHRyYW5zZm9ybXMgYW5kIGEgZHJhd2luZyBkZXNjZW5kYW50LCBhcyB0aGlzIGFsbG93cyBwYWlu
dCBjdWxsaW5nCisgICAgICAgIHdpdGhpbiB0aGUgbGF5ZXIncyBzdWJ0cmVlICh0aGUgYW5pbWF0
ZWQgdHJhbnNmb3JtIHdvbid0IGFmZmVjdCBkcmF3VHJhbnNmb3JtcworICAgICAgICBpbnNpZGUg
dGhlIHN1YnRyZWUpLgorCisgICAgICAgIEFsc28gcmVuYW1lZCB0aGUgbGF5ZXJJc0luQW5pbWF0
aW5nU3VidHJlZUZvciogdG8gYW5pbWF0aW5nVHJhbnNmb3JtVG8qLgorICAgICAgICBUaGUgb2xk
IG5hbWUgbWFkZSBtZSBwYXVzZSBhbmQgdGhpbmsgd2hhdCBpdCBtZWFudCBhbmQgSSdtIHRoZSBv
bmUgd2hvCisgICAgICAgIGNyZWF0ZWQgaXQuIEhvcGVmdWxseSB0aGlzIGlzIG1vcmUgY2xlYXIu
CisKKyAgICAgICAgVW5pdCB0ZXN0OiBDQ0xheWVyVHJlZUhvc3RDb21tb25UZXN0LnZlcmlmeUFu
aW1hdGlvbnNGb3JSZW5kZXJTdXJmYWNlSGllcmFyY2h5CisKKyAgICAgICAgKiBwbGF0Zm9ybS9n
cmFwaGljcy9jaHJvbWl1bS9jYy9DQ0xheWVyVHJlZUhvc3RDb21tb24uY3BwOgorICAgICAgICAo
V2ViQ29yZTo6dHJhbnNmb3JtVG9QYXJlbnRJc0tub3duKToKKyAgICAgICAgKFdlYkNvcmUpOgor
ICAgICAgICAoV2ViQ29yZTo6c3VidHJlZVNob3VsZFJlbmRlclRvU2VwYXJhdGVTdXJmYWNlKToK
KyAgICAgICAgKFdlYkNvcmU6OmNhbGN1bGF0ZURyYXdUcmFuc2Zvcm1zQW5kVmlzaWJpbGl0eUlu
dGVybmFsKToKKworMjAxMi0wMy0yNyAgRGFuYSBKYW5zZW5zICA8ZGFuYWtqQGNocm9taXVtLm9y
Zz4KKwogICAgICAgICBbY2hyb21pdW1dIFJlbmFtZSBvcGFxdWVDb250ZW50c1JlZ2lvbigpIHRv
IHZpc2libGVDb250ZW50T3BhcXVlUmVnaW9uKCkKICAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTgxNjg5CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
Y2hyb21pdW0vQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cKaW5k
ZXggOThmZmY5NGVhYjMxZjBiMDJhZjhlNjgyODU1YzUyMmZjY2RmNTJlMy4uOGQ3ZDZjZDcxMzU4
NWQ1YmFjYTRlNThkOTFkODZiMGVkMTFmNzYzNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9j
aHJvbWl1bS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cK
QEAgLTEsNSArMSwxNSBAQAogMjAxMi0wMy0yNyAgRGFuYSBKYW5zZW5zICA8ZGFuYWtqQGNocm9t
aXVtLm9yZz4KIAorICAgICAgICBbY2hyb21pdW1dIFVua25vd24gdHJhbnNmb3JtcyBzaG91bGQg
YmUgdHJlYXRlZCBhcyBub24tYXhpcyBhbGlnbmVkIG9uIG1haW4gdGhyZWFkCisgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD04MjM3MAorCisgICAgICAgIFJl
dmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogdGVzdHMvQ0NMYXllclRyZWVI
b3N0Q29tbW9uVGVzdC5jcHA6CisgICAgICAgIChXZWJLaXRUZXN0czo6VEVTVCk6CisKKzIwMTIt
MDMtMjcgIERhbmEgSmFuc2VucyAgPGRhbmFrakBjaHJvbWl1bS5vcmc+CisKICAgICAgICAgW2No
cm9taXVtXSBSZW5hbWUgb3BhcXVlQ29udGVudHNSZWdpb24oKSB0byB2aXNpYmxlQ29udGVudE9w
YXF1ZVJlZ2lvbigpCiAgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD04MTY4OQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9jaHJvbWl1bS9jYy9DQ0xheWVyVHJlZUhvc3RDb21tb24uY3BwIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vY2MvQ0NMYXllclRyZWVIb3N0Q29tbW9uLmNwcApp
bmRleCBiZDIyMTU0YjkxOGE3ZGU2MjhjM2M5ODQ2MWUwNjcyZDQ4MWZiZjI5Li5lOGFhNjg0NTA5
YmU2ZTVhYTI0MzRlOTE2MGZjNzMyZDFjNzExMGVmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9jYy9DQ0xheWVyVHJlZUhvc3RDb21tb24uY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL2NjL0NDTGF5
ZXJUcmVlSG9zdENvbW1vbi5jcHAKQEAgLTEzOSw2ICsxMzksMTYgQEAgc3RhdGljIGlubGluZSBi
b29sIGxheWVyT3BhY2l0eUlzT3BhcXVlKExheWVyQ2hyb21pdW0qIGxheWVyKQogICAgIHJldHVy
biBsYXllci0+b3BhY2l0eSgpID09IDEgJiYgIWxheWVyLT5vcGFjaXR5SXNBbmltYXRpbmcoKTsK
IH0KIAorc3RhdGljIGlubGluZSBib29sIHRyYW5zZm9ybVRvUGFyZW50SXNLbm93bihDQ0xheWVy
SW1wbCopCit7CisgICAgcmV0dXJuIHRydWU7Cit9CisKK3N0YXRpYyBpbmxpbmUgYm9vbCB0cmFu
c2Zvcm1Ub1BhcmVudElzS25vd24oTGF5ZXJDaHJvbWl1bSogbGF5ZXIpCit7CisgICAgcmV0dXJu
ICFsYXllci0+dHJhbnNmb3JtSXNBbmltYXRpbmcoKTsKK30KKwogdGVtcGxhdGU8dHlwZW5hbWUg
TGF5ZXJUeXBlPgogc3RhdGljIGJvb2wgc3VidHJlZVNob3VsZFJlbmRlclRvU2VwYXJhdGVTdXJm
YWNlKExheWVyVHlwZSogbGF5ZXIsIGJvb2wgYXhpc0FsaWduZWRXaXRoUmVzcGVjdFRvUGFyZW50
KQogewpAQCAtMTcxLDYgKzE4MSwxMiBAQCBzdGF0aWMgYm9vbCBzdWJ0cmVlU2hvdWxkUmVuZGVy
VG9TZXBhcmF0ZVN1cmZhY2UoTGF5ZXJUeXBlKiBsYXllciwgYm9vbCBheGlzQWxpZwogICAgIGlm
IChsYXllci0+cGFyZW50KCkgJiYgbGF5ZXItPnBhcmVudCgpLT5wcmVzZXJ2ZXMzRCgpICYmICFs
YXllci0+cHJlc2VydmVzM0QoKSAmJiBkZXNjZW5kYW50RHJhd3NDb250ZW50KQogICAgICAgICBy
ZXR1cm4gdHJ1ZTsKIAorICAgIC8vIE9uIHRoZSBtYWluIHRocmVhZCBzaWRlLCBhbmltYXRpbmcg
dHJhbnNmb3JtcyBhcmUgdW5rbm93biwgYW5kIG1heSBjYXVzZSBhIFJlbmRlclN1cmZhY2Ugb24g
dGhlIGltcGwgc2lkZS4KKyAgICAvLyBTaW5jZSB0aGV5IGFyZSBjaGVhcCwgd2UgY3JlYXRlIGEg
cmVuZGVyc3VyZmFjZSBmb3IgYWxsIGFuaW1hdGluZyB0cmFuc2Zvcm1zIHRvIGNvdmVyIHRoZXNl
IGNhc2VzLCBhbmQgc28KKyAgICAvLyB0aGF0IHdlIGNhbiBjb25zaWRlciBkZXNjZW5kYW50cyBh
cyBub3QgYW5pbWF0aW5nIHJlbGF0aXZlIHRvIHRoZWlyIHRhcmdldCB0byBhaWQgY3VsbGluZy4K
KyAgICBpZiAoIXRyYW5zZm9ybVRvUGFyZW50SXNLbm93bihsYXllcikgJiYgZGVzY2VuZGFudERy
YXdzQ29udGVudCkKKyAgICAgICAgcmV0dXJuIHRydWU7CisKICAgICAvLyBJZiB0aGUgbGF5ZXIg
Y2xpcHMgaXRzIGRlc2NlbmRhbnRzIGJ1dCBpdCBpcyBub3QgYXhpcy1hbGlnbmVkIHdpdGggcmVz
cGVjdCB0byBpdHMgcGFyZW50LgogICAgIGlmIChsYXllci0+bWFza3NUb0JvdW5kcygpICYmICFh
eGlzQWxpZ25lZFdpdGhSZXNwZWN0VG9QYXJlbnQgJiYgZGVzY2VuZGFudERyYXdzQ29udGVudCkK
ICAgICAgICAgcmV0dXJuIHRydWU7CkBAIC0zMTUsMTEgKzMzMSwxMSBAQCBzdGF0aWMgYm9vbCBj
YWxjdWxhdGVEcmF3VHJhbnNmb3Jtc0FuZFZpc2liaWxpdHlJbnRlcm5hbChMYXllclR5cGUqIGxh
eWVyLCBMYXllcgogICAgIFRyYW5zZm9ybWF0aW9uTWF0cml4IGNvbWJpbmVkVHJhbnNmb3JtID0g
cGFyZW50TWF0cml4OwogICAgIGNvbWJpbmVkVHJhbnNmb3JtID0gY29tYmluZWRUcmFuc2Zvcm0u
bXVsdGlwbHkobGF5ZXJMb2NhbFRyYW5zZm9ybSk7CiAKLSAgICBib29sIGxheWVySXNJbkFuaW1h
dGluZ1N1YnRyZWVGb3JTdXJmYWNlID0gbGF5ZXItPnRyYW5zZm9ybUlzQW5pbWF0aW5nKCk7Ci0g
ICAgYm9vbCBsYXllcklzSW5BbmltYXRpbmdTdWJ0cmVlRm9yU2NyZWVuID0gbGF5ZXItPnRyYW5z
Zm9ybUlzQW5pbWF0aW5nKCk7CisgICAgYm9vbCBhbmltYXRpbmdUcmFuc2Zvcm1Ub1RhcmdldCA9
IGxheWVyLT50cmFuc2Zvcm1Jc0FuaW1hdGluZygpOworICAgIGJvb2wgYW5pbWF0aW5nVHJhbnNm
b3JtVG9TY3JlZW4gPSBhbmltYXRpbmdUcmFuc2Zvcm1Ub1RhcmdldDsKICAgICBpZiAobGF5ZXIt
PnBhcmVudCgpKSB7Ci0gICAgICAgIGxheWVySXNJbkFuaW1hdGluZ1N1YnRyZWVGb3JTdXJmYWNl
IHw9IGxheWVyLT5wYXJlbnQoKS0+ZHJhd1RyYW5zZm9ybUlzQW5pbWF0aW5nKCk7Ci0gICAgICAg
IGxheWVySXNJbkFuaW1hdGluZ1N1YnRyZWVGb3JTY3JlZW4gfD0gbGF5ZXItPnBhcmVudCgpLT5z
Y3JlZW5TcGFjZVRyYW5zZm9ybUlzQW5pbWF0aW5nKCk7CisgICAgICAgIGFuaW1hdGluZ1RyYW5z
Zm9ybVRvVGFyZ2V0IHw9IGxheWVyLT5wYXJlbnQoKS0+ZHJhd1RyYW5zZm9ybUlzQW5pbWF0aW5n
KCk7CisgICAgICAgIGFuaW1hdGluZ1RyYW5zZm9ybVRvU2NyZWVuIHw9IGxheWVyLT5wYXJlbnQo
KS0+c2NyZWVuU3BhY2VUcmFuc2Zvcm1Jc0FuaW1hdGluZygpOwogICAgIH0KIAogICAgIEZsb2F0
UmVjdCBsYXllclJlY3QoLTAuNSAqIGxheWVyLT5ib3VuZHMoKS53aWR0aCgpLCAtMC41ICogbGF5
ZXItPmJvdW5kcygpLmhlaWdodCgpLCBsYXllci0+Ym91bmRzKCkud2lkdGgoKSwgbGF5ZXItPmJv
dW5kcygpLmhlaWdodCgpKTsKQEAgLTM1NiwxMSArMzcyLDExIEBAIHN0YXRpYyBib29sIGNhbGN1
bGF0ZURyYXdUcmFuc2Zvcm1zQW5kVmlzaWJpbGl0eUludGVybmFsKExheWVyVHlwZSogbGF5ZXIs
IExheWVyCiAgICAgICAgIHN1cmZhY2VPcmlnaW5UcmFuc2Zvcm0udHJhbnNsYXRlM2QoLTAuNSAq
IGJvdW5kcy53aWR0aCgpLCAtMC41ICogYm91bmRzLmhlaWdodCgpLCAwKTsKICAgICAgICAgcmVu
ZGVyU3VyZmFjZS0+c2V0T3JpZ2luVHJhbnNmb3JtKHN1cmZhY2VPcmlnaW5UcmFuc2Zvcm0pOwog
Ci0gICAgICAgIHJlbmRlclN1cmZhY2UtPnNldFRhcmdldFN1cmZhY2VUcmFuc2Zvcm1zQXJlQW5p
bWF0aW5nKGxheWVySXNJbkFuaW1hdGluZ1N1YnRyZWVGb3JTdXJmYWNlKTsKLSAgICAgICAgcmVu
ZGVyU3VyZmFjZS0+c2V0U2NyZWVuU3BhY2VUcmFuc2Zvcm1zQXJlQW5pbWF0aW5nKGxheWVySXNJ
bkFuaW1hdGluZ1N1YnRyZWVGb3JTY3JlZW4pOwotICAgICAgICBsYXllcklzSW5BbmltYXRpbmdT
dWJ0cmVlRm9yU3VyZmFjZSA9IGZhbHNlOwotICAgICAgICBsYXllci0+c2V0RHJhd1RyYW5zZm9y
bUlzQW5pbWF0aW5nKGxheWVySXNJbkFuaW1hdGluZ1N1YnRyZWVGb3JTdXJmYWNlKTsKLSAgICAg
ICAgbGF5ZXItPnNldFNjcmVlblNwYWNlVHJhbnNmb3JtSXNBbmltYXRpbmcobGF5ZXJJc0luQW5p
bWF0aW5nU3VidHJlZUZvclNjcmVlbik7CisgICAgICAgIHJlbmRlclN1cmZhY2UtPnNldFRhcmdl
dFN1cmZhY2VUcmFuc2Zvcm1zQXJlQW5pbWF0aW5nKGFuaW1hdGluZ1RyYW5zZm9ybVRvVGFyZ2V0
KTsKKyAgICAgICAgcmVuZGVyU3VyZmFjZS0+c2V0U2NyZWVuU3BhY2VUcmFuc2Zvcm1zQXJlQW5p
bWF0aW5nKGFuaW1hdGluZ1RyYW5zZm9ybVRvU2NyZWVuKTsKKyAgICAgICAgYW5pbWF0aW5nVHJh
bnNmb3JtVG9UYXJnZXQgPSBmYWxzZTsKKyAgICAgICAgbGF5ZXItPnNldERyYXdUcmFuc2Zvcm1J
c0FuaW1hdGluZyhhbmltYXRpbmdUcmFuc2Zvcm1Ub1RhcmdldCk7CisgICAgICAgIGxheWVyLT5z
ZXRTY3JlZW5TcGFjZVRyYW5zZm9ybUlzQW5pbWF0aW5nKGFuaW1hdGluZ1RyYW5zZm9ybVRvU2Ny
ZWVuKTsKIAogICAgICAgICAvLyBVcGRhdGUgdGhlIGFnZ3JlZ2F0ZSBoaWVyYXJjaHkgbWF0cml4
IHRvIGluY2x1ZGUgdGhlIHRyYW5zZm9ybSBvZiB0aGUgbmV3bHkgY3JlYXRlZCBSZW5kZXJTdXJm
YWNlLgogICAgICAgICBuZXh0SGllcmFyY2h5TWF0cml4Lm11bHRpcGx5KHN1cmZhY2VPcmlnaW5U
cmFuc2Zvcm0pOwpAQCAtMzg3LDggKzQwMyw4IEBAIHN0YXRpYyBib29sIGNhbGN1bGF0ZURyYXdU
cmFuc2Zvcm1zQW5kVmlzaWJpbGl0eUludGVybmFsKExheWVyVHlwZSogbGF5ZXIsIExheWVyCiAg
ICAgICAgIHJlbmRlclN1cmZhY2VMYXllckxpc3QuYXBwZW5kKGxheWVyKTsKICAgICB9IGVsc2Ug
ewogICAgICAgICBsYXllci0+c2V0RHJhd1RyYW5zZm9ybShjb21iaW5lZFRyYW5zZm9ybSk7Ci0g
ICAgICAgIGxheWVyLT5zZXREcmF3VHJhbnNmb3JtSXNBbmltYXRpbmcobGF5ZXJJc0luQW5pbWF0
aW5nU3VidHJlZUZvclN1cmZhY2UpOwotICAgICAgICBsYXllci0+c2V0U2NyZWVuU3BhY2VUcmFu
c2Zvcm1Jc0FuaW1hdGluZyhsYXllcklzSW5BbmltYXRpbmdTdWJ0cmVlRm9yU2NyZWVuKTsKKyAg
ICAgICAgbGF5ZXItPnNldERyYXdUcmFuc2Zvcm1Jc0FuaW1hdGluZyhhbmltYXRpbmdUcmFuc2Zv
cm1Ub1RhcmdldCk7CisgICAgICAgIGxheWVyLT5zZXRTY3JlZW5TcGFjZVRyYW5zZm9ybUlzQW5p
bWF0aW5nKGFuaW1hdGluZ1RyYW5zZm9ybVRvU2NyZWVuKTsKICAgICAgICAgdHJhbnNmb3JtZWRM
YXllclJlY3QgPSBlbmNsb3NpbmdJbnRSZWN0KGxheWVyLT5kcmF3VHJhbnNmb3JtKCkubWFwUmVj
dChsYXllclJlY3QpKTsKIAogICAgICAgICBsYXllci0+c2V0RHJhd09wYWNpdHkoZHJhd09wYWNp
dHkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS90ZXN0cy9DQ0xheWVyVHJl
ZUhvc3RDb21tb25UZXN0LmNwcCBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vdGVzdHMvQ0NMYXll
clRyZWVIb3N0Q29tbW9uVGVzdC5jcHAKaW5kZXggOTBhMzkzYTQ1NTc5MzcxY2QyZTc2NGY3Y2Q2
OTAwMGU2Mzg1Y2QzMy4uZDRmNGMyMTM5MWUwZjAzNTZlZjc2OTA1Yjg4MWMwYzUyNjJlMDVhNyAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS90ZXN0cy9DQ0xheWVyVHJlZUhvc3RD
b21tb25UZXN0LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3Rlc3RzL0NDTGF5ZXJU
cmVlSG9zdENvbW1vblRlc3QuY3BwCkBAIC02NzYsOSArNjc2LDggQEAgVEVTVChDQ0xheWVyVHJl
ZUhvc3RDb21tb25UZXN0LCB2ZXJpZnlBbmltYXRpb25zRm9yUmVuZGVyU3VyZmFjZUhpZXJhcmNo
eSkKIAogICAgIC8vIEluIGNvbWJpbmF0aW9uIHdpdGggZGVzY2VuZGFudERyYXdzQ29udGVudCwg
b3BhY2l0eSAhPSAxIGZvcmNlcyB0aGUgbGF5ZXIgdG8gaGF2ZSBhIG5ldyByZW5kZXJTdXJmYWNl
LgogICAgIGFkZE9wYWNpdHlUcmFuc2l0aW9uVG9Db250cm9sbGVyKCpyZW5kZXJTdXJmYWNlMS0+
bGF5ZXJBbmltYXRpb25Db250cm9sbGVyKCksIDEwLCAxLCAwLCBmYWxzZSk7Ci0gICAgYWRkT3Bh
Y2l0eVRyYW5zaXRpb25Ub0NvbnRyb2xsZXIoKnJlbmRlclN1cmZhY2UyLT5sYXllckFuaW1hdGlv
bkNvbnRyb2xsZXIoKSwgMTAsIDEsIDAsIGZhbHNlKTsKIAotICAgIC8vIEFsc28gcHV0IGFuIGFu
aW1hdGlvbiBvbiBhIGxheWVyIHdpdGhvdXQgZGVzY2VuZGFudHMuCisgICAgLy8gQWxzbyBwdXQg
YW4gYW5pbWF0ZWQgb3BhY2l0eSBvbiBhIGxheWVyIHdpdGhvdXQgZGVzY2VuZGFudHMuCiAgICAg
YWRkT3BhY2l0eVRyYW5zaXRpb25Ub0NvbnRyb2xsZXIoKmdyYW5kQ2hpbGRPZlJvb3QtPmxheWVy
QW5pbWF0aW9uQ29udHJvbGxlcigpLCAxMCwgMSwgMCwgZmFsc2UpOwogCiAgICAgVHJhbnNmb3Jt
YXRpb25NYXRyaXggbGF5ZXJUcmFuc2Zvcm07CkBAIC02ODYsMTAgKzY4NSwxMSBAQCBURVNUKEND
TGF5ZXJUcmVlSG9zdENvbW1vblRlc3QsIHZlcmlmeUFuaW1hdGlvbnNGb3JSZW5kZXJTdXJmYWNl
SGllcmFyY2h5KQogICAgIFRyYW5zZm9ybWF0aW9uTWF0cml4IHN1YmxheWVyVHJhbnNmb3JtOwog
ICAgIHN1YmxheWVyVHJhbnNmb3JtLnNjYWxlM2QoMTAuMCwgMS4wLCAxLjApOwogCi0gICAgLy8g
UHV0IHRyYW5zZm9ybSBhbmltYXRpb25zIG9uIGNoaWxkLCByZW5kZXJTdXJmYWNlMiwgZ3JhbmRD
aGlsZE9mUm9vdCwgYW5kIGdyYW5kQ2hpbGRPZlJTMgotICAgIGFkZEFuaW1hdGVkVHJhbnNmb3Jt
VG9Db250cm9sbGVyKCpjaGlsZE9mUm9vdC0+bGF5ZXJBbmltYXRpb25Db250cm9sbGVyKCksIDEw
LCAzMCwgMCk7Ci0gICAgYWRkQW5pbWF0ZWRUcmFuc2Zvcm1Ub0NvbnRyb2xsZXIoKmdyYW5kQ2hp
bGRPZlJvb3QtPmxheWVyQW5pbWF0aW9uQ29udHJvbGxlcigpLCAxMCwgMzAsIDApOworICAgIC8v
IEluIGNvbWJpbmF0aW9uIHdpdGggZGVzY2VuZGFudERyYXdzQ29udGVudCwgYW4gYW5pbWF0ZWQg
dHJhbnNmb3JtIGZvcmNlcyB0aGUgbGF5ZXIgdG8gaGF2ZSBhIG5ldyByZW5kZXJTdXJmYWNlLgog
ICAgIGFkZEFuaW1hdGVkVHJhbnNmb3JtVG9Db250cm9sbGVyKCpyZW5kZXJTdXJmYWNlMi0+bGF5
ZXJBbmltYXRpb25Db250cm9sbGVyKCksIDEwLCAzMCwgMCk7CisKKyAgICAvLyBBbHNvIHB1dCB0
cmFuc2Zvcm0gYW5pbWF0aW9ucyBvbiBncmFuZENoaWxkT2ZSb290LCBhbmQgZ3JhbmRDaGlsZE9m
UlMyCisgICAgYWRkQW5pbWF0ZWRUcmFuc2Zvcm1Ub0NvbnRyb2xsZXIoKmdyYW5kQ2hpbGRPZlJv
b3QtPmxheWVyQW5pbWF0aW9uQ29udHJvbGxlcigpLCAxMCwgMzAsIDApOwogICAgIGFkZEFuaW1h
dGVkVHJhbnNmb3JtVG9Db250cm9sbGVyKCpncmFuZENoaWxkT2ZSUzItPmxheWVyQW5pbWF0aW9u
Q29udHJvbGxlcigpLCAxMCwgMzAsIDApOwogCiAgICAgc2V0TGF5ZXJQcm9wZXJ0aWVzRm9yVGVz
dGluZyhwYXJlbnQuZ2V0KCksIGxheWVyVHJhbnNmb3JtLCBzdWJsYXllclRyYW5zZm9ybSwgRmxv
YXRQb2ludCgwLjI1ZiwgMC4wZiksIEZsb2F0UG9pbnQoMi41ZiwgMC4wZiksIEludFNpemUoMTAs
IDEwKSwgZmFsc2UpOwpAQCAtNzQyLDE0ICs3NDIsMTQgQEAgVEVTVChDQ0xheWVyVHJlZUhvc3RD
b21tb25UZXN0LCB2ZXJpZnlBbmltYXRpb25zRm9yUmVuZGVyU3VyZmFjZUhpZXJhcmNoeSkKICAg
ICBFWFBFQ1RfRkFMU0UoY2hpbGRPZlJTMS0+ZHJhd09wYWNpdHlJc0FuaW1hdGluZygpKTsKICAg
ICBFWFBFQ1RfRkFMU0UoZ3JhbmRDaGlsZE9mUlMxLT5kcmF3T3BhY2l0eUlzQW5pbWF0aW5nKCkp
OwogICAgIEVYUEVDVF9GQUxTRShyZW5kZXJTdXJmYWNlMi0+ZHJhd09wYWNpdHlJc0FuaW1hdGlu
ZygpKTsKLSAgICBFWFBFQ1RfVFJVRShyZW5kZXJTdXJmYWNlMi0+cmVuZGVyU3VyZmFjZSgpLT5k
cmF3T3BhY2l0eUlzQW5pbWF0aW5nKCkpOworICAgIEVYUEVDVF9GQUxTRShyZW5kZXJTdXJmYWNl
Mi0+cmVuZGVyU3VyZmFjZSgpLT5kcmF3T3BhY2l0eUlzQW5pbWF0aW5nKCkpOwogICAgIEVYUEVD
VF9GQUxTRShjaGlsZE9mUlMyLT5kcmF3T3BhY2l0eUlzQW5pbWF0aW5nKCkpOwogICAgIEVYUEVD
VF9GQUxTRShncmFuZENoaWxkT2ZSUzItPmRyYXdPcGFjaXR5SXNBbmltYXRpbmcoKSk7CiAKICAg
ICAvLyBWZXJpZnkgZHJhd1RyYW5zZm9ybXNBbmltYXRpbmdJblRhcmdldCB2YWx1ZXMKICAgICAv
LwogICAgIEVYUEVDVF9GQUxTRShwYXJlbnQtPmRyYXdUcmFuc2Zvcm1Jc0FuaW1hdGluZygpKTsK
LSAgICBFWFBFQ1RfVFJVRShjaGlsZE9mUm9vdC0+ZHJhd1RyYW5zZm9ybUlzQW5pbWF0aW5nKCkp
OworICAgIEVYUEVDVF9GQUxTRShjaGlsZE9mUm9vdC0+ZHJhd1RyYW5zZm9ybUlzQW5pbWF0aW5n
KCkpOwogICAgIEVYUEVDVF9UUlVFKGdyYW5kQ2hpbGRPZlJvb3QtPmRyYXdUcmFuc2Zvcm1Jc0Fu
aW1hdGluZygpKTsKICAgICBFWFBFQ1RfRkFMU0UocmVuZGVyU3VyZmFjZTEtPmRyYXdUcmFuc2Zv
cm1Jc0FuaW1hdGluZygpKTsKICAgICBFWFBFQ1RfRkFMU0UocmVuZGVyU3VyZmFjZTEtPnJlbmRl
clN1cmZhY2UoKS0+dGFyZ2V0U3VyZmFjZVRyYW5zZm9ybXNBcmVBbmltYXRpbmcoKSk7CkBAIC03
NjMsNyArNzYzLDcgQEAgVEVTVChDQ0xheWVyVHJlZUhvc3RDb21tb25UZXN0LCB2ZXJpZnlBbmlt
YXRpb25zRm9yUmVuZGVyU3VyZmFjZUhpZXJhcmNoeSkKICAgICAvLyBWZXJpZnkgZHJhd1RyYW5z
Zm9ybXNBbmltYXRpbmdJblNjcmVlbiB2YWx1ZXMKICAgICAvLwogICAgIEVYUEVDVF9GQUxTRShw
YXJlbnQtPnNjcmVlblNwYWNlVHJhbnNmb3JtSXNBbmltYXRpbmcoKSk7Ci0gICAgRVhQRUNUX1RS
VUUoY2hpbGRPZlJvb3QtPnNjcmVlblNwYWNlVHJhbnNmb3JtSXNBbmltYXRpbmcoKSk7CisgICAg
RVhQRUNUX0ZBTFNFKGNoaWxkT2ZSb290LT5zY3JlZW5TcGFjZVRyYW5zZm9ybUlzQW5pbWF0aW5n
KCkpOwogICAgIEVYUEVDVF9UUlVFKGdyYW5kQ2hpbGRPZlJvb3QtPnNjcmVlblNwYWNlVHJhbnNm
b3JtSXNBbmltYXRpbmcoKSk7CiAgICAgRVhQRUNUX0ZBTFNFKHJlbmRlclN1cmZhY2UxLT5zY3Jl
ZW5TcGFjZVRyYW5zZm9ybUlzQW5pbWF0aW5nKCkpOwogICAgIEVYUEVDVF9GQUxTRShyZW5kZXJT
dXJmYWNlMS0+cmVuZGVyU3VyZmFjZSgpLT5zY3JlZW5TcGFjZVRyYW5zZm9ybXNBcmVBbmltYXRp
bmcoKSk7Cg==
</data>

          </attachment>
      

    </bug>

</bugzilla>