<?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>79841</bug_id>
          
          <creation_ts>2012-02-28 15:33:28 -0800</creation_ts>
          <short_desc>[chromium] Don&apos;t let invalidation for next frame prevent tile upload</short_desc>
          <delta_ts>2012-02-29 14:35:16 -0800</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>
          
          
          <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>vangelis</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>567169</commentid>
    <comment_count>0</comment_count>
    <who name="Dana Jansens">danakj</who>
    <bug_when>2012-02-28 15:33:28 -0800</bug_when>
    <thetext>[chromium] Don&apos;t let invalidation for next frame prevent tile upload</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>567170</commentid>
    <comment_count>1</comment_count>
      <attachid>129344</attachid>
    <who name="Dana Jansens">danakj</who>
    <bug_when>2012-02-28 15:34:00 -0800</bug_when>
    <thetext>Created attachment 129344
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>567171</commentid>
    <comment_count>2</comment_count>
    <who name="Dana Jansens">danakj</who>
    <bug_when>2012-02-28 15:34:23 -0800</bug_when>
    <thetext>I&apos;ll make tests if you like this idea.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>567175</commentid>
    <comment_count>3</comment_count>
      <attachid>129344</attachid>
    <who name="James Robinson">jamesr</who>
    <bug_when>2012-02-28 15:39:54 -0800</bug_when>
    <thetext>Comment on attachment 129344
Patch

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

I think this approach will work well. Definitely want tests

&gt; Source/WebCore/platform/graphics/chromium/TiledLayerChromium.cpp:78
&gt; +        m_dirtyRect.unite(m_nextFrameDirtyRect);

should be safe to just be m_dirtyRect = m_nextFrame... right? m_dirtyRect should always be empty here unless some other layer has damaged us

maybe ASSERT() and unite() just to be careful</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>567180</commentid>
    <comment_count>4</comment_count>
    <who name="Dana Jansens">danakj</who>
    <bug_when>2012-02-28 15:50:04 -0800</bug_when>
    <thetext>@reveman seems okay for threaded compositor/async commit/etc?

We&apos;re assuming WebKit will only ever invalidate the layer it is painting, not other layers.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>567206</commentid>
    <comment_count>5</comment_count>
    <who name="Dana Jansens">danakj</who>
    <bug_when>2012-02-28 16:28:11 -0800</bug_when>
    <thetext>The following code seems to show that WebKit can and will invalidate a different layer than it is currently painting (tested with asserts):

&lt;!DOCTYPE html&gt;
&lt;html lang=&quot;en_US&quot;&gt;
  &lt;head&gt;
    &lt;title&gt;Missing tiles&lt;/title&gt;
  &lt;/head&gt;
  &lt;body style=&quot;background-color:red; margin:0; overflow:hidden&quot;&gt;
    &lt;div style=&quot;background-color:white;&quot;&gt;
      &lt;img src=&quot;http://www.google.com/logos/2012/hertz-2011-hp.gif&quot;/&gt;
    &lt;/div&gt;
    &lt;div style=&quot;background-color:white; height:1000px; -webkit-transform:translateZ(0)&quot;&gt;
      &lt;img src=&quot;http://www.google.com/logos/2012/hertz-2011-hp.gif&quot;/&gt;
    &lt;/div&gt;
  &lt;/body&gt;
&lt;/html&gt;

I save the layer being painted before calling prepareToUpdate, and in TLC::invalidateRect(), I asserted that the layer being painted is NULL or equal to the layer being invalidated. This assert fails.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>567207</commentid>
    <comment_count>6</comment_count>
    <who name="David Reveman">reveman</who>
    <bug_when>2012-02-28 16:29:07 -0800</bug_when>
    <thetext>Could we check tile-&gt;m_updateRect in pushPropertiesTo instead?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>567226</commentid>
    <comment_count>7</comment_count>
    <who name="Dana Jansens">danakj</who>
    <bug_when>2012-02-28 16:43:36 -0800</bug_when>
    <thetext>For background:

The problem currently is that a layer may have tiles that are dirty but not visible. These tiles may have arbitrary contents in them. If the layout were to change and the tiles became visible, we don&apos;t want them to exist in the impl thread before they are repainted.

Thus there is a check on tile-&gt;isDirty() that prevents these tiles from existing on impl thread.

However, it assumes that tiles are never dirty after they have been painted. But WebKit can set dirty on any layer during the paint of any other layer (including itself).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>567228</commentid>
    <comment_count>8</comment_count>
    <who name="Dana Jansens">danakj</who>
    <bug_when>2012-02-28 16:47:55 -0800</bug_when>
    <thetext>(In reply to comment #6)
&gt; Could we check tile-&gt;m_updateRect in pushPropertiesTo instead?

m_updateRect does not differentiate between tiles that were not painted because they had valid contents, and tiles that were not painted because they were not visible.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>567286</commentid>
    <comment_count>9</comment_count>
      <attachid>129364</attachid>
    <who name="Dana Jansens">danakj</who>
    <bug_when>2012-02-28 17:49:31 -0800</bug_when>
    <thetext>Created attachment 129364
Patch

Testing m_updateRect along with m_dirtyRect works, as long as we reset m_updateRect every frame (not just when &gt;= 1 tile ends up getting painted).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>567295</commentid>
    <comment_count>10</comment_count>
      <attachid>129364</attachid>
    <who name="Adrienne Walker">enne</who>
    <bug_when>2012-02-28 18:04:50 -0800</bug_when>
    <thetext>Comment on attachment 129364
Patch

Unofficially looks good to me.  Nice work finding a way to determine if a tile is dirty this frame without using any extra memory to track it.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>567333</commentid>
    <comment_count>11</comment_count>
    <who name="David Reveman">reveman</who>
    <bug_when>2012-02-28 19:39:31 -0800</bug_when>
    <thetext>Thanks for the background! Latest patch looks good to me.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>567603</commentid>
    <comment_count>12</comment_count>
      <attachid>129447</attachid>
    <who name="Dana Jansens">danakj</who>
    <bug_when>2012-02-29 07:20:50 -0800</bug_when>
    <thetext>Created attachment 129447
Patch

Added some tests for invalidation on layers other than the one being painted</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>567771</commentid>
    <comment_count>13</comment_count>
      <attachid>129447</attachid>
    <who name="James Robinson">jamesr</who>
    <bug_when>2012-02-29 11:24:10 -0800</bug_when>
    <thetext>Comment on attachment 129447
Patch

R=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>567954</commentid>
    <comment_count>14</comment_count>
      <attachid>129447</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-02-29 14:35:08 -0800</bug_when>
    <thetext>Comment on attachment 129447
Patch

Clearing flags on attachment: 129447

Committed r109263: &lt;http://trac.webkit.org/changeset/109263&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>567955</commentid>
    <comment_count>15</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-02-29 14:35:16 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>129344</attachid>
            <date>2012-02-28 15:34:00 -0800</date>
            <delta_ts>2012-02-28 17:49:27 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-79841-20120228183359.patch</filename>
            <type>text/plain</type>
            <size>3097</size>
            <attacher name="Dana Jansens">danakj</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTA5MTA5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZGY0NTAyNWI0NjU3YjI4
NmU4NTM0NzkzNWVjM2FjNzNjNzIzZDNlOC4uMTk3MTdjZjgzNDQ0ZTRmZjY2MzE3MjA5YTVjZDg2
MTI5ZDY3ZDRiMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE3IEBACisyMDEyLTAyLTI4ICBEYW5h
IEphbnNlbnMgIDxkYW5ha2pAY2hyb21pdW0ub3JnPgorCisgICAgICAgIFtjaHJvbWl1bV0gRG9u
J3QgbGV0IGludmFsaWRhdGlvbiBmb3IgbmV4dCBmcmFtZSBwcmV2ZW50IHRpbGUgdXBsb2FkCisg
ICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD03OTg0MQorCisg
ICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogcGxhdGZvcm0v
Z3JhcGhpY3MvY2hyb21pdW0vVGlsZWRMYXllckNocm9taXVtLmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OlVwZGF0YWJsZVRpbGU6OnNhdmVEaXJ0eVJlY3RGb3JOZXh0RnJhbWUpOgorICAgICAgICAo
V2ViQ29yZTo6VXBkYXRhYmxlVGlsZTo6YXBwbHlEaXJ0eVJlY3RGb3JOZXh0RnJhbWUpOgorICAg
ICAgICAoVXBkYXRhYmxlVGlsZSk6CisgICAgICAgIChXZWJDb3JlOjpUaWxlZExheWVyQ2hyb21p
dW06OnB1c2hQcm9wZXJ0aWVzVG8pOgorICAgICAgICAoV2ViQ29yZTo6VGlsZWRMYXllckNocm9t
aXVtOjpwcmVwYXJlVG9VcGRhdGVUaWxlcyk6CisKIDIwMTItMDItMjggIFl1cnkgU2VtaWtoYXRz
a3kgIDx5dXJ5c0BjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgV2ViIEluc3BlY3RvcjogcHJlc2Vy
dmUgbWVtb3J5IGNvdW50ZXJzIHNpemUgYWZ0ZXIgZnJvbnRlbmQgcmVvcGVuaW5nCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9UaWxlZExheWVy
Q2hyb21pdW0uY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0v
VGlsZWRMYXllckNocm9taXVtLmNwcAppbmRleCA3YmYwYzk3NTcyYzYwYjljM2VjODdiZjk4NTRi
ODc1MTU4ZmVlYmMyLi42MTFiMGExNWExNTcwYTQ3YjYyOTljYTE4ZGFlYTIzZmQ1ZGE1YjU4IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9UaWxl
ZExheWVyQ2hyb21pdW0uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L2Nocm9taXVtL1RpbGVkTGF5ZXJDaHJvbWl1bS5jcHAKQEAgLTY4LDkgKzY4LDIwIEBAIHB1Ymxp
YzoKICAgICAgICAgbV9kaXJ0eVJlY3QgPSBJbnRSZWN0KCk7CiAgICAgfQogCisgICAgdm9pZCBz
YXZlRGlydHlSZWN0Rm9yTmV4dEZyYW1lKCkKKyAgICB7CisgICAgICAgIG1fbmV4dEZyYW1lRGly
dHlSZWN0ID0gbV9kaXJ0eVJlY3Q7CisgICAgICAgIG1fZGlydHlSZWN0ID0gSW50UmVjdCgpOwor
ICAgIH0KKyAgICB2b2lkIGFwcGx5RGlydHlSZWN0Rm9yTmV4dEZyYW1lKCkKKyAgICB7CisgICAg
ICAgIG1fZGlydHlSZWN0LnVuaXRlKG1fbmV4dEZyYW1lRGlydHlSZWN0KTsKKyAgICB9CisKICAg
ICBJbnRSZWN0IG1fZGlydHlSZWN0OwogICAgIEludFJlY3QgbV91cGRhdGVSZWN0OwogICAgIElu
dFJlY3QgbV9vcGFxdWVSZWN0OworICAgIEludFJlY3QgbV9uZXh0RnJhbWVEaXJ0eVJlY3Q7CiAg
ICAgYm9vbCBtX3BhcnRpYWxVcGRhdGU7CiBwcml2YXRlOgogICAgIGV4cGxpY2l0IFVwZGF0YWJs
ZVRpbGUoUGFzc093blB0cjxMYXllclRleHR1cmVVcGRhdGVyOjpUZXh0dXJlPiB0ZXh0dXJlKQpA
QCAtMjY3LDYgKzI3OCw5IEBAIHZvaWQgVGlsZWRMYXllckNocm9taXVtOjpwdXNoUHJvcGVydGll
c1RvKENDTGF5ZXJJbXBsKiBsYXllcikKICAgICAgICAgICAgIGNvbnRpbnVlOwogCiAgICAgICAg
IHRpbGVkTGF5ZXItPnB1c2hUaWxlUHJvcGVydGllcyhpLCBqLCB0aWxlLT5tYW5hZ2VkVGV4dHVy
ZSgpLT50ZXh0dXJlSWQoKSwgdGlsZS0+bV9vcGFxdWVSZWN0KTsKKworICAgICAgICAvLyBBbnkg
aW52YWxpZGF0aW9ucyBmb3IgdGhlIG5leHQgZnJhbWUgY2FuIGJlIGFwcGxpZWQgdG8gdGhlIHRp
bGUgYWZ0ZXIgaXQgaGFzIGJlZW4gcHVzaGVkIHRvIHRoZSBpbXBsIHRocmVhZC4KKyAgICAgICAg
dGlsZS0+YXBwbHlEaXJ0eVJlY3RGb3JOZXh0RnJhbWUoKTsKICAgICB9CiAgICAgZm9yIChWZWN0
b3I8VXBkYXRhYmxlVGlsZSo+Ojpjb25zdF9pdGVyYXRvciBpdGVyID0gaW52YWxpZFRpbGVzLmJl
Z2luKCk7IGl0ZXIgIT0gaW52YWxpZFRpbGVzLmVuZCgpOyArK2l0ZXIpCiAgICAgICAgIG1fdGls
ZXItPnRha2VUaWxlKCgqaXRlciktPmkoKSwgKCppdGVyKS0+aigpKTsKQEAgLTQ4Nyw2ICs1MDEs
MTAgQEAgdm9pZCBUaWxlZExheWVyQ2hyb21pdW06OnByZXBhcmVUb1VwZGF0ZVRpbGVzKGJvb2wg
aWRsZSwgaW50IGxlZnQsIGludCB0b3AsIGludAogICAgICAgICAgICAgICAgICAgICB0aWxlLT5t
X29wYXF1ZVJlY3QgPSB0aWxlUGFpbnRlZE9wYXF1ZVJlY3Q7CiAgICAgICAgICAgICB9CiAKKyAg
ICAgICAgICAgIC8vIFRoZSB0aWxlIG1heSBoYXZlIGJlZW4gaW52YWxpZGF0ZWQgZHVyaW5nIHRo
ZSBwYWludCwgYnV0IHRoaXMgZGFtYWdlIGlzIGZvciB0aGUgbmV4dCBmcmFtZSwgc28gd2Ugc2F2
ZSBpdCBhbmQgcmVtb3ZlIGl0CisgICAgICAgICAgICAvLyBmcm9tIHRoZSBkaXJ0eSBpbmZvcm1h
dGlvbiBmb3IgdGhpcyBmcmFtZSAod2hpY2ggc2hvdWxkIG5vdyBiZSBlbXB0eSkuCisgICAgICAg
ICAgICB0aWxlLT5zYXZlRGlydHlSZWN0Rm9yTmV4dEZyYW1lKCk7CisKICAgICAgICAgICAgIC8v
IFVzZSBtX3VwZGF0ZVJlY3QgYXMgY29weUFuZENsZWFyRGlydHkgYWJvdmUgbW92ZWQgdGhlIGV4
aXN0aW5nIGRpcnR5IHJlY3QgdG8gbV91cGRhdGVSZWN0LgogICAgICAgICAgICAgY29uc3QgSW50
UmVjdCYgZGlydHlSZWN0ID0gdGlsZS0+bV91cGRhdGVSZWN0OwogICAgICAgICAgICAgaWYgKGRp
cnR5UmVjdC5pc0VtcHR5KCkpCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>129364</attachid>
            <date>2012-02-28 17:49:31 -0800</date>
            <delta_ts>2012-02-29 07:20:45 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-79841-20120228204930.patch</filename>
            <type>text/plain</type>
            <size>7847</size>
            <attacher name="Dana Jansens">danakj</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTA5MTA5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZGY0NTAyNWI0NjU3YjI4
NmU4NTM0NzkzNWVjM2FjNzNjNzIzZDNlOC4uNzJhMTU2NmM2MTZjNTg2MDlhZWQ4YTJhYTc5MWY1
NTkxZmY4NzYwOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMyIEBACisyMDEyLTAyLTI4ICBEYW5h
IEphbnNlbnMgIDxkYW5ha2pAY2hyb21pdW0ub3JnPgorCisgICAgICAgIFtjaHJvbWl1bV0gRG9u
J3QgbGV0IGludmFsaWRhdGlvbiBmb3IgbmV4dCBmcmFtZSBwcmV2ZW50IHRpbGUgdXBsb2FkCisg
ICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD03OTg0MQorCisg
ICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFdlIGN1cnJlbnRs
eSBkb24ndCBwdXNoIGRpcnR5IHRpbGVzIHRvIHRoZSBpbXBsIHRocmVhZCBzbyB0aGVyZSBhcmUg
bm8KKyAgICAgICAgdGlsZXMgd2l0aCBnYXJiYWdlIGRhdGEgb24gdGhlIGltcGwgdGhyZWFkLiBI
b3dldmVyLCB0aGlzIGp1ZGdlbWVudCBpcworICAgICAgICBvdmVyemVhbG91cyBhbmQgYmxvY2tz
IHRpbGVzIHRoYXQgZ2V0IGludmFsaWRhdGVkIGJ5IFdlYktpdCBmb3IgdGhlCisgICAgICAgIG5l
eHQgZnJhbWUgZHVyaW5nIHRoZSBwYWludCBvZiB0aGUgY3VycmVudCBmcmFtZS4KKworICAgICAg
ICBJbnN0ZWFkLCBjaGVjayBpZiBhIHRpbGUgaXMgZGlydHkgYW5kIHdhcyBub3QgcGFpbnRlZCBm
b3IgdGhlIGN1cnJlbnQKKyAgICAgICAgZnJhbWUgd2hlbiBkZWNpZGluZyB0byBwdXNoIHRoZSB0
aWxlIHRvIHRoZSBpbXBsIHRocmVhZC4gVGhpcyByZXF1aXJlcworICAgICAgICB0aGF0IHdlIGtu
b3cgaWYgYSB0aWxlIHdhcyBwYWludGVkIGR1cmluZyB0aGUgY3VycmVudCBmcmFtZSwgd2hpY2gg
d2UKKyAgICAgICAgY2FuIGRvIGlmIHdlIGFsd2F5cyByZXNldCBtX3VwZGF0ZVJlY3QgdG8gYmUg
ZW1wdHkgZWFjaCBmcmFtZS4KKworICAgICAgICBOZXcgdW5pdCB0ZXN0czogVGlsZWRMYXllckNo
cm9taXVtVGVzdC5wdXNoVGlsZXNNYXJrZWREaXJ0eUR1cmluZ1BhaW50CisKKyAgICAgICAgKiBw
bGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9UaWxlZExheWVyQ2hyb21pdW0uY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6VXBkYXRhYmxlVGlsZTo6aXNEaXJ0eUZvckN1cnJlbnRGcmFtZSk6CisgICAg
ICAgIChXZWJDb3JlOjpUaWxlZExheWVyQ2hyb21pdW06OnB1c2hQcm9wZXJ0aWVzVG8pOgorICAg
ICAgICAoV2ViQ29yZTo6VGlsZWRMYXllckNocm9taXVtOjpwcmVwYXJlVG9VcGRhdGVUaWxlcyk6
CisgICAgICAgIChXZWJDb3JlOjpUaWxlZExheWVyQ2hyb21pdW06OnJlc2V0VXBkYXRlU3RhdGUp
OgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgIChXZWJDb3JlOjpUaWxlZExheWVyQ2hyb21p
dW06OnByZXBhcmVUb1VwZGF0ZSk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21p
dW0vVGlsZWRMYXllckNocm9taXVtLmg6CisgICAgICAgIChUaWxlZExheWVyQ2hyb21pdW0pOgor
CiAyMDEyLTAyLTI4ICBZdXJ5IFNlbWlraGF0c2t5ICA8eXVyeXNAY2hyb21pdW0ub3JnPgogCiAg
ICAgICAgIFdlYiBJbnNwZWN0b3I6IHByZXNlcnZlIG1lbW9yeSBjb3VudGVycyBzaXplIGFmdGVy
IGZyb250ZW5kIHJlb3BlbmluZwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZwppbmRleCAyM2Y3OGI0
MDMxMzAwNzEzYTgxOGY5MmI0NzdiZGYwOTZmNjcwODViLi5kM2E2MDM0ZGM5YzNjMjg4ZDNhYWI3
NzVlMjRjNmQ0OTg0YWMwM2MyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL0No
YW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZwpAQCAtMSwzICsx
LDEzIEBACisyMDEyLTAyLTI4ICBEYW5hIEphbnNlbnMgIDxkYW5ha2pAY2hyb21pdW0ub3JnPgor
CisgICAgICAgIFtjaHJvbWl1bV0gRG9uJ3QgbGV0IGludmFsaWRhdGlvbiBmb3IgbmV4dCBmcmFt
ZSBwcmV2ZW50IHRpbGUgdXBsb2FkCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD03OTg0MQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEp
LgorCisgICAgICAgICogdGVzdHMvVGlsZWRMYXllckNocm9taXVtVGVzdC5jcHA6CisgICAgICAg
IChXVEY6OlRFU1QpOgorCiAyMDEyLTAyLTI4ICBTaGVyaWZmIEJvdCAgPHdlYmtpdC5yZXZpZXcu
Ym90QGdtYWlsLmNvbT4KIAogICAgICAgICBVbnJldmlld2VkLiAgUm9sbGVkIERFUFMuCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9UaWxlZExh
eWVyQ2hyb21pdW0uY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21p
dW0vVGlsZWRMYXllckNocm9taXVtLmNwcAppbmRleCA3YmYwYzk3NTcyYzYwYjljM2VjODdiZjk4
NTRiODc1MTU4ZmVlYmMyLi5lYmM5ZDU1YWFmNWMyMjgyZWU2ZjQyYThkMjNhOWE5N2ZhN2MyMzE1
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9U
aWxlZExheWVyQ2hyb21pdW0uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL2Nocm9taXVtL1RpbGVkTGF5ZXJDaHJvbWl1bS5jcHAKQEAgLTY3LDYgKzY3LDcgQEAgcHVi
bGljOgogICAgICAgICBtX3VwZGF0ZVJlY3QgPSBtX2RpcnR5UmVjdDsKICAgICAgICAgbV9kaXJ0
eVJlY3QgPSBJbnRSZWN0KCk7CiAgICAgfQorICAgIGJvb2wgaXNEaXJ0eUZvckN1cnJlbnRGcmFt
ZSgpIHsgcmV0dXJuICFtX2RpcnR5UmVjdC5pc0VtcHR5KCkgJiYgbV91cGRhdGVSZWN0LmlzRW1w
dHkoKTsgfQogCiAgICAgSW50UmVjdCBtX2RpcnR5UmVjdDsKICAgICBJbnRSZWN0IG1fdXBkYXRl
UmVjdDsKQEAgLTI2Myw3ICsyNjQsNyBAQCB2b2lkIFRpbGVkTGF5ZXJDaHJvbWl1bTo6cHVzaFBy
b3BlcnRpZXNUbyhDQ0xheWVySW1wbCogbGF5ZXIpCiAgICAgICAgICAgICBpbnZhbGlkVGlsZXMu
YXBwZW5kKHRpbGUpOwogICAgICAgICAgICAgY29udGludWU7CiAgICAgICAgIH0KLSAgICAgICAg
aWYgKHRpbGUtPmlzRGlydHkoKSkKKyAgICAgICAgaWYgKHRpbGUtPmlzRGlydHlGb3JDdXJyZW50
RnJhbWUoKSkKICAgICAgICAgICAgIGNvbnRpbnVlOwogCiAgICAgICAgIHRpbGVkTGF5ZXItPnB1
c2hUaWxlUHJvcGVydGllcyhpLCBqLCB0aWxlLT5tYW5hZ2VkVGV4dHVyZSgpLT50ZXh0dXJlSWQo
KSwgdGlsZS0+bV9vcGFxdWVSZWN0KTsKQEAgLTM5OCwxMyArMzk5LDYgQEAgYm9vbCBUaWxlZExh
eWVyQ2hyb21pdW06OnRpbGVOZWVkc0J1ZmZlcmVkVXBkYXRlKFVwZGF0YWJsZVRpbGUqIHRpbGUp
CiAKIHZvaWQgVGlsZWRMYXllckNocm9taXVtOjpwcmVwYXJlVG9VcGRhdGVUaWxlcyhib29sIGlk
bGUsIGludCBsZWZ0LCBpbnQgdG9wLCBpbnQgcmlnaHQsIGludCBib3R0b20pCiB7Ci0gICAgLy8g
UmVzZXQgbV91cGRhdGVSZWN0IGZvciBhbGwgdGlsZXMuCi0gICAgZm9yIChDQ0xheWVyVGlsaW5n
RGF0YTo6VGlsZU1hcDo6Y29uc3RfaXRlcmF0b3IgaXRlciA9IG1fdGlsZXItPnRpbGVzKCkuYmVn
aW4oKTsgaXRlciAhPSBtX3RpbGVyLT50aWxlcygpLmVuZCgpOyArK2l0ZXIpIHsKLSAgICAgICAg
VXBkYXRhYmxlVGlsZSogdGlsZSA9IHN0YXRpY19jYXN0PFVwZGF0YWJsZVRpbGUqPihpdGVyLT5z
ZWNvbmQuZ2V0KCkpOwotICAgICAgICB0aWxlLT5tX3VwZGF0ZVJlY3QgPSBJbnRSZWN0KCk7Ci0g
ICAgICAgIHRpbGUtPm1fcGFydGlhbFVwZGF0ZSA9IGZhbHNlOwotICAgIH0KLQogICAgIGNyZWF0
ZVRleHR1cmVVcGRhdGVySWZOZWVkZWQoKTsKIAogICAgIC8vIENyZWF0ZSB0aWxlcyBhcyBuZWVk
ZWQsIGV4cGFuZGluZyBhIGRpcnR5IHJlY3QgdG8gY29udGFpbiBhbGwKQEAgLTU2Niw2ICs1NjAs
MTcgQEAgdm9pZCBUaWxlZExheWVyQ2hyb21pdW06OmFkZFNlbGZUb09jY2x1ZGVkU2NyZWVuU3Bh
Y2UoUmVnaW9uJiBvY2NsdWRlZFNjcmVlblNwYWMKICAgICB9CiB9CiAKK3ZvaWQgVGlsZWRMYXll
ckNocm9taXVtOjpyZXNldFVwZGF0ZVN0YXRlKCkKK3sKKyAgICAvLyBSZXNldCBtX3VwZGF0ZVJl
Y3QgZm9yIGFsbCB0aWxlcy4KKyAgICBDQ0xheWVyVGlsaW5nRGF0YTo6VGlsZU1hcDo6Y29uc3Rf
aXRlcmF0b3IgZW5kID0gbV90aWxlci0+dGlsZXMoKS5lbmQoKTsKKyAgICBmb3IgKENDTGF5ZXJU
aWxpbmdEYXRhOjpUaWxlTWFwOjpjb25zdF9pdGVyYXRvciBpdGVyID0gbV90aWxlci0+dGlsZXMo
KS5iZWdpbigpOyBpdGVyICE9IGVuZDsgKytpdGVyKSB7CisgICAgICAgIFVwZGF0YWJsZVRpbGUq
IHRpbGUgPSBzdGF0aWNfY2FzdDxVcGRhdGFibGVUaWxlKj4oaXRlci0+c2Vjb25kLmdldCgpKTsK
KyAgICAgICAgdGlsZS0+bV91cGRhdGVSZWN0ID0gSW50UmVjdCgpOworICAgICAgICB0aWxlLT5t
X3BhcnRpYWxVcGRhdGUgPSBmYWxzZTsKKyAgICB9Cit9CisKIHZvaWQgVGlsZWRMYXllckNocm9t
aXVtOjpwcmVwYXJlVG9VcGRhdGUoY29uc3QgSW50UmVjdCYgbGF5ZXJSZWN0KQogewogICAgIG1f
c2tpcHNEcmF3ID0gZmFsc2U7CkBAIC01NzUsNiArNTgwLDggQEAgdm9pZCBUaWxlZExheWVyQ2hy
b21pdW06OnByZXBhcmVUb1VwZGF0ZShjb25zdCBJbnRSZWN0JiBsYXllclJlY3QpCiAKICAgICB1
cGRhdGVCb3VuZHMoKTsKIAorICAgIHJlc2V0VXBkYXRlU3RhdGUoKTsKKwogICAgIGlmIChsYXll
clJlY3QuaXNFbXB0eSgpIHx8ICFtX3RpbGVyLT5udW1UaWxlcygpKQogICAgICAgICByZXR1cm47
CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVt
L1RpbGVkTGF5ZXJDaHJvbWl1bS5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
Y2hyb21pdW0vVGlsZWRMYXllckNocm9taXVtLmgKaW5kZXggYTZjMjExOTUxZDc4NTE0MzQwZjU2
N2JkZjM2MGVhNjc0MTA5NGU5NC4uNmZjN2QxZDkyYmM1YWI5NzM3NmFhYmMxMTZkMzQ0MGNjNzlh
OGVmNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21p
dW0vVGlsZWRMYXllckNocm9taXVtLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvY2hyb21pdW0vVGlsZWRMYXllckNocm9taXVtLmgKQEAgLTg2LDYgKzg2LDkgQEAgcHJv
dGVjdGVkOgogICAgIC8vIFNldCBpbnZhbGlkYXRpb25zIHRvIGJlIHBvdGVudGlhbGx5IHJlcGFp
bnRlZCBkdXJpbmcgdXBkYXRlKCkuCiAgICAgdm9pZCBpbnZhbGlkYXRlUmVjdChjb25zdCBJbnRS
ZWN0JiBsYXllclJlY3QpOwogCisgICAgLy8gUmVzZXQgc3RhdGUgb24gdGlsZXMgdGhhdCB3aWxs
IGJlIHVzZWQgZm9yIHVwZGF0aW5nIHRoZSBsYXllci4KKyAgICB2b2lkIHJlc2V0VXBkYXRlU3Rh
dGUoKTsKKwogICAgIC8vIFByZXBhcmUgZGF0YSBuZWVkZWQgdG8gdXBkYXRlIHRleHR1cmVzIHRo
YXQgaW50ZXJzZWN0IHdpdGggbGF5ZXJSZWN0LgogICAgIHZvaWQgcHJlcGFyZVRvVXBkYXRlKGNv
bnN0IEludFJlY3QmIGxheWVyUmVjdCk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hy
b21pdW0vdGVzdHMvVGlsZWRMYXllckNocm9taXVtVGVzdC5jcHAgYi9Tb3VyY2UvV2ViS2l0L2No
cm9taXVtL3Rlc3RzL1RpbGVkTGF5ZXJDaHJvbWl1bVRlc3QuY3BwCmluZGV4IDUzZGU0M2FhMjM5
ODNjNmZlNjZlNDU0OGRkM2ZlZjk5YmIxYzRmOTMuLmU4NzkxZDY4ZjU2MDFkYmEzZTNmZmMwYzNj
NzdjZGUwZDQ1ZDM1NzEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vdGVzdHMv
VGlsZWRMYXllckNocm9taXVtVGVzdC5jcHAKKysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS90
ZXN0cy9UaWxlZExheWVyQ2hyb21pdW1UZXN0LmNwcApAQCAtMzE4LDYgKzMxOCwzMCBAQCBURVNU
KFRpbGVkTGF5ZXJDaHJvbWl1bVRlc3QsIHB1c2hJZGxlUGFpbnRUaWxlcykKICAgICB9CiB9CiAK
K1RFU1QoVGlsZWRMYXllckNocm9taXVtVGVzdCwgcHVzaFRpbGVzTWFya2VkRGlydHlEdXJpbmdQ
YWludCkKK3sKKyAgICBPd25QdHI8VGV4dHVyZU1hbmFnZXI+IHRleHR1cmVNYW5hZ2VyID0gVGV4
dHVyZU1hbmFnZXI6OmNyZWF0ZSg0KjEwMjQqMTAyNCwgMioxMDI0KjEwMjQsIDEwMjQpOworICAg
IFJlZlB0cjxGYWtlVGlsZWRMYXllckNocm9taXVtPiBsYXllciA9IGFkb3B0UmVmKG5ldyBGYWtl
VGlsZWRMYXllckNocm9taXVtKHRleHR1cmVNYW5hZ2VyLmdldCgpKSk7CisgICAgRGVidWdTY29w
ZWRTZXRJbXBsVGhyZWFkIGltcGxUaHJlYWQ7CisgICAgT3duUHRyPEZha2VDQ1RpbGVkTGF5ZXJJ
bXBsPiBsYXllckltcGwoYWRvcHRQdHIobmV3IEZha2VDQ1RpbGVkTGF5ZXJJbXBsKDApKSk7CisK
KyAgICBGYWtlVGV4dHVyZUFsbG9jYXRvciB0ZXh0dXJlQWxsb2NhdG9yOworICAgIENDVGV4dHVy
ZVVwZGF0ZXIgdXBkYXRlcigmdGV4dHVyZUFsbG9jYXRvcik7CisKKyAgICAvLyBUaGUgdGlsZSBz
aXplIGlzIDEwMHgxMDAsIHNvIHRoaXMgaW52YWxpZGF0ZXMgYW5kIHRoZW4gcGFpbnRzIHR3byB0
aWxlcy4KKyAgICAvLyBIb3dldmVyLCBkdXJpbmcgdGhlIHBhaW50LCB3ZSBpbnZhbGlkYXRlIG9u
ZSBvZiB0aGUgdGlsZXMuIFRoaXMgc2hvdWxkCisgICAgLy8gbm90IHByZXZlbnQgdGhlIHRpbGUg
ZnJvbSBiZWluZyBwdXNoZWQuCisgICAgbGF5ZXItPnNldEJvdW5kcyhJbnRTaXplKDEwMCwgMjAw
KSk7CisgICAgbGF5ZXItPmludmFsaWRhdGVSZWN0KEludFJlY3QoMCwgMCwgMTAwLCAyMDApKTsK
KyAgICBsYXllci0+ZmFrZUxheWVyVGV4dHVyZVVwZGF0ZXIoKS0+c2V0UmVjdFRvSW52YWxpZGF0
ZShJbnRSZWN0KDAsIDAsIDEwMCwgMTAwKSwgbGF5ZXIuZ2V0KCkpOworICAgIGxheWVyLT5wcmVw
YXJlVG9VcGRhdGUoSW50UmVjdCgwLCAwLCAxMDAsIDIwMCkpOworICAgIGxheWVyLT51cGRhdGVD
b21wb3NpdG9yUmVzb3VyY2VzKDAsIHVwZGF0ZXIpOworICAgIGxheWVyLT5wdXNoUHJvcGVydGll
c1RvKGxheWVySW1wbC5nZXQoKSk7CisKKyAgICAvLyBXZSBzaG91bGQgaGF2ZSBib3RoIHRpbGVz
IG9uIHRoZSBpbXBsIHNpZGUuCisgICAgRVhQRUNUX1RSVUUobGF5ZXJJbXBsLT5oYXNUaWxlQXQo
MCwgMCkpOworICAgIEVYUEVDVF9UUlVFKGxheWVySW1wbC0+aGFzVGlsZUF0KDAsIDEpKTsKK30K
IAogVEVTVChUaWxlZExheWVyQ2hyb21pdW1UZXN0LCBpZGxlUGFpbnRPdXRPZk1lbW9yeSkKIHsK
QEAgLTQ4Niw2ICs1MTAsNyBAQCBURVNUKFRpbGVkTGF5ZXJDaHJvbWl1bVRlc3QsIHZlcmlmeUlu
dmFsaWRhdGlvbldoZW5Db250ZW50c1NjYWxlQ2hhbmdlcykKICAgICAvLyBJbnZhbGlkYXRlIHRo
ZSBlbnRpcmUgbGF5ZXIgYWdhaW4sIGJ1dCBkbyBub3QgcGFpbnQuIEFsbCB0aWxlcyBzaG91bGQg
YmUgZ29uZSBub3cgZnJvbSB0aGUKICAgICAvLyBpbXBsIHNpZGUuCiAgICAgbGF5ZXItPnNldE5l
ZWRzRGlzcGxheSgpOworICAgIGxheWVyLT5wcmVwYXJlVG9VcGRhdGUoSW50UmVjdCgwLCAwLCAw
LCAwKSk7CiAgICAgbGF5ZXItPnVwZGF0ZUNvbXBvc2l0b3JSZXNvdXJjZXMoMCwgdXBkYXRlcik7
CiAgICAgbGF5ZXItPnB1c2hQcm9wZXJ0aWVzVG8obGF5ZXJJbXBsLmdldCgpKTsKICAgICBFWFBF
Q1RfRkFMU0UobGF5ZXJJbXBsLT5oYXNUaWxlQXQoMCwgMCkpOwo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>129447</attachid>
            <date>2012-02-29 07:20:50 -0800</date>
            <delta_ts>2012-02-29 14:35:08 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-79841-20120229102048.patch</filename>
            <type>text/plain</type>
            <size>11278</size>
            <attacher name="Dana Jansens">danakj</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTA5MTA5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZGY0NTAyNWI0NjU3YjI4
NmU4NTM0NzkzNWVjM2FjNzNjNzIzZDNlOC4uODUzZDIyYTFkMWIyMjEzMzlhZjZhNGJhNDAyYjNj
OTk0MjhkYWI1OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM0IEBACisyMDEyLTAyLTI4ICBEYW5h
IEphbnNlbnMgIDxkYW5ha2pAY2hyb21pdW0ub3JnPgorCisgICAgICAgIFtjaHJvbWl1bV0gRG9u
J3QgbGV0IGludmFsaWRhdGlvbiBmb3IgbmV4dCBmcmFtZSBwcmV2ZW50IHRpbGUgdXBsb2FkCisg
ICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD03OTg0MQorCisg
ICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFdlIGN1cnJlbnRs
eSBkb24ndCBwdXNoIGRpcnR5IHRpbGVzIHRvIHRoZSBpbXBsIHRocmVhZCBzbyB0aGVyZSBhcmUg
bm8KKyAgICAgICAgdGlsZXMgd2l0aCBnYXJiYWdlIGRhdGEgb24gdGhlIGltcGwgdGhyZWFkLiBI
b3dldmVyLCB0aGlzIGp1ZGdlbWVudCBpcworICAgICAgICBvdmVyemVhbG91cyBhbmQgYmxvY2tz
IHRpbGVzIHRoYXQgZ2V0IGludmFsaWRhdGVkIGJ5IFdlYktpdCBmb3IgdGhlCisgICAgICAgIG5l
eHQgZnJhbWUgZHVyaW5nIHRoZSBwYWludCBvZiB0aGUgY3VycmVudCBmcmFtZS4KKworICAgICAg
ICBJbnN0ZWFkLCBjaGVjayBpZiBhIHRpbGUgaXMgZGlydHkgYW5kIHdhcyBub3QgcGFpbnRlZCBm
b3IgdGhlIGN1cnJlbnQKKyAgICAgICAgZnJhbWUgd2hlbiBkZWNpZGluZyB0byBwdXNoIHRoZSB0
aWxlIHRvIHRoZSBpbXBsIHRocmVhZC4gVGhpcyByZXF1aXJlcworICAgICAgICB0aGF0IHdlIGtu
b3cgaWYgYSB0aWxlIHdhcyBwYWludGVkIGR1cmluZyB0aGUgY3VycmVudCBmcmFtZSwgd2hpY2gg
d2UKKyAgICAgICAgY2FuIGRvIGlmIHdlIGFsd2F5cyByZXNldCBtX3VwZGF0ZVJlY3QgdG8gYmUg
ZW1wdHkgZWFjaCBmcmFtZS4KKworICAgICAgICBOZXcgdW5pdCB0ZXN0czogVGlsZWRMYXllckNo
cm9taXVtVGVzdC5wdXNoVGlsZXNNYXJrZWREaXJ0eUR1cmluZ1BhaW50CisgICAgICAgICAgICAg
ICAgICAgICAgICBUaWxlZExheWVyQ2hyb21pdW1UZXN0LnB1c2hUaWxlc0xheWVyTWFya2VkRGly
dHlEdXJpbmdQYWludE9uTmV4dExheWVyCisgICAgICAgICAgICAgICAgICAgICAgICBUaWxlZExh
eWVyQ2hyb21pdW1UZXN0LnB1c2hUaWxlc0xheWVyTWFya2VkRGlydHlEdXJpbmdQYWludE9uUHJl
dmlvdXNMYXllcgorCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vVGlsZWRM
YXllckNocm9taXVtLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlVwZGF0YWJsZVRpbGU6OmlzRGly
dHlGb3JDdXJyZW50RnJhbWUpOgorICAgICAgICAoV2ViQ29yZTo6VGlsZWRMYXllckNocm9taXVt
OjpwdXNoUHJvcGVydGllc1RvKToKKyAgICAgICAgKFdlYkNvcmU6OlRpbGVkTGF5ZXJDaHJvbWl1
bTo6cHJlcGFyZVRvVXBkYXRlVGlsZXMpOgorICAgICAgICAoV2ViQ29yZTo6VGlsZWRMYXllckNo
cm9taXVtOjpyZXNldFVwZGF0ZVN0YXRlKToKKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAgICAo
V2ViQ29yZTo6VGlsZWRMYXllckNocm9taXVtOjpwcmVwYXJlVG9VcGRhdGUpOgorICAgICAgICAq
IHBsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL1RpbGVkTGF5ZXJDaHJvbWl1bS5oOgorICAgICAg
ICAoVGlsZWRMYXllckNocm9taXVtKToKKwogMjAxMi0wMi0yOCAgWXVyeSBTZW1pa2hhdHNreSAg
PHl1cnlzQGNocm9taXVtLm9yZz4KIAogICAgICAgICBXZWIgSW5zcGVjdG9yOiBwcmVzZXJ2ZSBt
ZW1vcnkgY291bnRlcnMgc2l6ZSBhZnRlciBmcm9udGVuZCByZW9wZW5pbmcKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9jaHJvbWl1
bS9DaGFuZ2VMb2cKaW5kZXggMjNmNzhiNDAzMTMwMDcxM2E4MThmOTJiNDc3YmRmMDk2ZjY3MDg1
Yi4uZDNhNjAzNGRjOWMzYzI4OGQzYWFiNzc1ZTI0YzZkNDk4NGFjMDNjMiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9jaHJv
bWl1bS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxMyBAQAorMjAxMi0wMi0yOCAgRGFuYSBKYW5zZW5z
ICA8ZGFuYWtqQGNocm9taXVtLm9yZz4KKworICAgICAgICBbY2hyb21pdW1dIERvbid0IGxldCBp
bnZhbGlkYXRpb24gZm9yIG5leHQgZnJhbWUgcHJldmVudCB0aWxlIHVwbG9hZAorICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Nzk4NDEKKworICAgICAgICBS
ZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIHRlc3RzL1RpbGVkTGF5ZXJD
aHJvbWl1bVRlc3QuY3BwOgorICAgICAgICAoV1RGOjpURVNUKToKKwogMjAxMi0wMi0yOCAgU2hl
cmlmZiBCb3QgIDx3ZWJraXQucmV2aWV3LmJvdEBnbWFpbC5jb20+CiAKICAgICAgICAgVW5yZXZp
ZXdlZC4gIFJvbGxlZCBERVBTLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvY2hyb21pdW0vVGlsZWRMYXllckNocm9taXVtLmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL1RpbGVkTGF5ZXJDaHJvbWl1bS5jcHAKaW5kZXgg
N2JmMGM5NzU3MmM2MGI5YzNlYzg3YmY5ODU0Yjg3NTE1OGZlZWJjMi4uZWJjOWQ1NWFhZjVjMjI4
MmVlNmY0MmE4ZDIzYTlhOTdmYTdjMjMxNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vVGlsZWRMYXllckNocm9taXVtLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9UaWxlZExheWVyQ2hyb21pdW0u
Y3BwCkBAIC02Nyw2ICs2Nyw3IEBAIHB1YmxpYzoKICAgICAgICAgbV91cGRhdGVSZWN0ID0gbV9k
aXJ0eVJlY3Q7CiAgICAgICAgIG1fZGlydHlSZWN0ID0gSW50UmVjdCgpOwogICAgIH0KKyAgICBi
b29sIGlzRGlydHlGb3JDdXJyZW50RnJhbWUoKSB7IHJldHVybiAhbV9kaXJ0eVJlY3QuaXNFbXB0
eSgpICYmIG1fdXBkYXRlUmVjdC5pc0VtcHR5KCk7IH0KIAogICAgIEludFJlY3QgbV9kaXJ0eVJl
Y3Q7CiAgICAgSW50UmVjdCBtX3VwZGF0ZVJlY3Q7CkBAIC0yNjMsNyArMjY0LDcgQEAgdm9pZCBU
aWxlZExheWVyQ2hyb21pdW06OnB1c2hQcm9wZXJ0aWVzVG8oQ0NMYXllckltcGwqIGxheWVyKQog
ICAgICAgICAgICAgaW52YWxpZFRpbGVzLmFwcGVuZCh0aWxlKTsKICAgICAgICAgICAgIGNvbnRp
bnVlOwogICAgICAgICB9Ci0gICAgICAgIGlmICh0aWxlLT5pc0RpcnR5KCkpCisgICAgICAgIGlm
ICh0aWxlLT5pc0RpcnR5Rm9yQ3VycmVudEZyYW1lKCkpCiAgICAgICAgICAgICBjb250aW51ZTsK
IAogICAgICAgICB0aWxlZExheWVyLT5wdXNoVGlsZVByb3BlcnRpZXMoaSwgaiwgdGlsZS0+bWFu
YWdlZFRleHR1cmUoKS0+dGV4dHVyZUlkKCksIHRpbGUtPm1fb3BhcXVlUmVjdCk7CkBAIC0zOTgs
MTMgKzM5OSw2IEBAIGJvb2wgVGlsZWRMYXllckNocm9taXVtOjp0aWxlTmVlZHNCdWZmZXJlZFVw
ZGF0ZShVcGRhdGFibGVUaWxlKiB0aWxlKQogCiB2b2lkIFRpbGVkTGF5ZXJDaHJvbWl1bTo6cHJl
cGFyZVRvVXBkYXRlVGlsZXMoYm9vbCBpZGxlLCBpbnQgbGVmdCwgaW50IHRvcCwgaW50IHJpZ2h0
LCBpbnQgYm90dG9tKQogewotICAgIC8vIFJlc2V0IG1fdXBkYXRlUmVjdCBmb3IgYWxsIHRpbGVz
LgotICAgIGZvciAoQ0NMYXllclRpbGluZ0RhdGE6OlRpbGVNYXA6OmNvbnN0X2l0ZXJhdG9yIGl0
ZXIgPSBtX3RpbGVyLT50aWxlcygpLmJlZ2luKCk7IGl0ZXIgIT0gbV90aWxlci0+dGlsZXMoKS5l
bmQoKTsgKytpdGVyKSB7Ci0gICAgICAgIFVwZGF0YWJsZVRpbGUqIHRpbGUgPSBzdGF0aWNfY2Fz
dDxVcGRhdGFibGVUaWxlKj4oaXRlci0+c2Vjb25kLmdldCgpKTsKLSAgICAgICAgdGlsZS0+bV91
cGRhdGVSZWN0ID0gSW50UmVjdCgpOwotICAgICAgICB0aWxlLT5tX3BhcnRpYWxVcGRhdGUgPSBm
YWxzZTsKLSAgICB9Ci0KICAgICBjcmVhdGVUZXh0dXJlVXBkYXRlcklmTmVlZGVkKCk7CiAKICAg
ICAvLyBDcmVhdGUgdGlsZXMgYXMgbmVlZGVkLCBleHBhbmRpbmcgYSBkaXJ0eSByZWN0IHRvIGNv
bnRhaW4gYWxsCkBAIC01NjYsNiArNTYwLDE3IEBAIHZvaWQgVGlsZWRMYXllckNocm9taXVtOjph
ZGRTZWxmVG9PY2NsdWRlZFNjcmVlblNwYWNlKFJlZ2lvbiYgb2NjbHVkZWRTY3JlZW5TcGFjCiAg
ICAgfQogfQogCit2b2lkIFRpbGVkTGF5ZXJDaHJvbWl1bTo6cmVzZXRVcGRhdGVTdGF0ZSgpCit7
CisgICAgLy8gUmVzZXQgbV91cGRhdGVSZWN0IGZvciBhbGwgdGlsZXMuCisgICAgQ0NMYXllclRp
bGluZ0RhdGE6OlRpbGVNYXA6OmNvbnN0X2l0ZXJhdG9yIGVuZCA9IG1fdGlsZXItPnRpbGVzKCku
ZW5kKCk7CisgICAgZm9yIChDQ0xheWVyVGlsaW5nRGF0YTo6VGlsZU1hcDo6Y29uc3RfaXRlcmF0
b3IgaXRlciA9IG1fdGlsZXItPnRpbGVzKCkuYmVnaW4oKTsgaXRlciAhPSBlbmQ7ICsraXRlcikg
eworICAgICAgICBVcGRhdGFibGVUaWxlKiB0aWxlID0gc3RhdGljX2Nhc3Q8VXBkYXRhYmxlVGls
ZSo+KGl0ZXItPnNlY29uZC5nZXQoKSk7CisgICAgICAgIHRpbGUtPm1fdXBkYXRlUmVjdCA9IElu
dFJlY3QoKTsKKyAgICAgICAgdGlsZS0+bV9wYXJ0aWFsVXBkYXRlID0gZmFsc2U7CisgICAgfQor
fQorCiB2b2lkIFRpbGVkTGF5ZXJDaHJvbWl1bTo6cHJlcGFyZVRvVXBkYXRlKGNvbnN0IEludFJl
Y3QmIGxheWVyUmVjdCkKIHsKICAgICBtX3NraXBzRHJhdyA9IGZhbHNlOwpAQCAtNTc1LDYgKzU4
MCw4IEBAIHZvaWQgVGlsZWRMYXllckNocm9taXVtOjpwcmVwYXJlVG9VcGRhdGUoY29uc3QgSW50
UmVjdCYgbGF5ZXJSZWN0KQogCiAgICAgdXBkYXRlQm91bmRzKCk7CiAKKyAgICByZXNldFVwZGF0
ZVN0YXRlKCk7CisKICAgICBpZiAobGF5ZXJSZWN0LmlzRW1wdHkoKSB8fCAhbV90aWxlci0+bnVt
VGlsZXMoKSkKICAgICAgICAgcmV0dXJuOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9UaWxlZExheWVyQ2hyb21pdW0uaCBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL1RpbGVkTGF5ZXJDaHJvbWl1bS5oCmlu
ZGV4IGE2YzIxMTk1MWQ3ODUxNDM0MGY1NjdiZGYzNjBlYTY3NDEwOTRlOTQuLjZmYzdkMWQ5MmJj
NWFiOTczNzZhYWJjMTE2ZDM0NDBjYzc5YThlZjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL1RpbGVkTGF5ZXJDaHJvbWl1bS5oCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL1RpbGVkTGF5ZXJDaHJvbWl1
bS5oCkBAIC04Niw2ICs4Niw5IEBAIHByb3RlY3RlZDoKICAgICAvLyBTZXQgaW52YWxpZGF0aW9u
cyB0byBiZSBwb3RlbnRpYWxseSByZXBhaW50ZWQgZHVyaW5nIHVwZGF0ZSgpLgogICAgIHZvaWQg
aW52YWxpZGF0ZVJlY3QoY29uc3QgSW50UmVjdCYgbGF5ZXJSZWN0KTsKIAorICAgIC8vIFJlc2V0
IHN0YXRlIG9uIHRpbGVzIHRoYXQgd2lsbCBiZSB1c2VkIGZvciB1cGRhdGluZyB0aGUgbGF5ZXIu
CisgICAgdm9pZCByZXNldFVwZGF0ZVN0YXRlKCk7CisKICAgICAvLyBQcmVwYXJlIGRhdGEgbmVl
ZGVkIHRvIHVwZGF0ZSB0ZXh0dXJlcyB0aGF0IGludGVyc2VjdCB3aXRoIGxheWVyUmVjdC4KICAg
ICB2b2lkIHByZXBhcmVUb1VwZGF0ZShjb25zdCBJbnRSZWN0JiBsYXllclJlY3QpOwogCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3Rlc3RzL1RpbGVkTGF5ZXJDaHJvbWl1bVRl
c3QuY3BwIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS90ZXN0cy9UaWxlZExheWVyQ2hyb21pdW1U
ZXN0LmNwcAppbmRleCA1M2RlNDNhYTIzOTgzYzZmZTY2ZTQ1NDhkZDNmZWY5OWJiMWM0ZjkzLi4z
MWNkZjM1YjdlMWNlMmY4ZGY3ZDM1ODA2OTVhNDNlMmM5N2JiM2ViIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L2Nocm9taXVtL3Rlc3RzL1RpbGVkTGF5ZXJDaHJvbWl1bVRlc3QuY3BwCisrKyBi
L1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vdGVzdHMvVGlsZWRMYXllckNocm9taXVtVGVzdC5jcHAK
QEAgLTMxOCw2ICszMTgsMTAyIEBAIFRFU1QoVGlsZWRMYXllckNocm9taXVtVGVzdCwgcHVzaElk
bGVQYWludFRpbGVzKQogICAgIH0KIH0KIAorVEVTVChUaWxlZExheWVyQ2hyb21pdW1UZXN0LCBw
dXNoVGlsZXNNYXJrZWREaXJ0eUR1cmluZ1BhaW50KQoreworICAgIE93blB0cjxUZXh0dXJlTWFu
YWdlcj4gdGV4dHVyZU1hbmFnZXIgPSBUZXh0dXJlTWFuYWdlcjo6Y3JlYXRlKDQqMTAyNCoxMDI0
LCAyKjEwMjQqMTAyNCwgMTAyNCk7CisgICAgUmVmUHRyPEZha2VUaWxlZExheWVyQ2hyb21pdW0+
IGxheWVyID0gYWRvcHRSZWYobmV3IEZha2VUaWxlZExheWVyQ2hyb21pdW0odGV4dHVyZU1hbmFn
ZXIuZ2V0KCkpKTsKKyAgICBEZWJ1Z1Njb3BlZFNldEltcGxUaHJlYWQgaW1wbFRocmVhZDsKKyAg
ICBPd25QdHI8RmFrZUNDVGlsZWRMYXllckltcGw+IGxheWVySW1wbChhZG9wdFB0cihuZXcgRmFr
ZUNDVGlsZWRMYXllckltcGwoMCkpKTsKKworICAgIEZha2VUZXh0dXJlQWxsb2NhdG9yIHRleHR1
cmVBbGxvY2F0b3I7CisgICAgQ0NUZXh0dXJlVXBkYXRlciB1cGRhdGVyKCZ0ZXh0dXJlQWxsb2Nh
dG9yKTsKKworICAgIC8vIFRoZSB0aWxlIHNpemUgaXMgMTAweDEwMCwgc28gdGhpcyBpbnZhbGlk
YXRlcyBhbmQgdGhlbiBwYWludHMgdHdvIHRpbGVzLgorICAgIC8vIEhvd2V2ZXIsIGR1cmluZyB0
aGUgcGFpbnQsIHdlIGludmFsaWRhdGUgb25lIG9mIHRoZSB0aWxlcy4gVGhpcyBzaG91bGQKKyAg
ICAvLyBub3QgcHJldmVudCB0aGUgdGlsZSBmcm9tIGJlaW5nIHB1c2hlZC4KKyAgICBsYXllci0+
c2V0Qm91bmRzKEludFNpemUoMTAwLCAyMDApKTsKKyAgICBsYXllci0+aW52YWxpZGF0ZVJlY3Qo
SW50UmVjdCgwLCAwLCAxMDAsIDIwMCkpOworICAgIGxheWVyLT5mYWtlTGF5ZXJUZXh0dXJlVXBk
YXRlcigpLT5zZXRSZWN0VG9JbnZhbGlkYXRlKEludFJlY3QoMCwgNTAsIDEwMCwgNTApLCBsYXll
ci5nZXQoKSk7CisgICAgbGF5ZXItPnByZXBhcmVUb1VwZGF0ZShJbnRSZWN0KDAsIDAsIDEwMCwg
MjAwKSk7CisgICAgbGF5ZXItPnVwZGF0ZUNvbXBvc2l0b3JSZXNvdXJjZXMoMCwgdXBkYXRlcik7
CisgICAgbGF5ZXItPnB1c2hQcm9wZXJ0aWVzVG8obGF5ZXJJbXBsLmdldCgpKTsKKworICAgIC8v
IFdlIHNob3VsZCBoYXZlIGJvdGggdGlsZXMgb24gdGhlIGltcGwgc2lkZS4KKyAgICBFWFBFQ1Rf
VFJVRShsYXllckltcGwtPmhhc1RpbGVBdCgwLCAwKSk7CisgICAgRVhQRUNUX1RSVUUobGF5ZXJJ
bXBsLT5oYXNUaWxlQXQoMCwgMSkpOworfQorCitURVNUKFRpbGVkTGF5ZXJDaHJvbWl1bVRlc3Qs
IHB1c2hUaWxlc0xheWVyTWFya2VkRGlydHlEdXJpbmdQYWludE9uTmV4dExheWVyKQoreworICAg
IE93blB0cjxUZXh0dXJlTWFuYWdlcj4gdGV4dHVyZU1hbmFnZXIgPSBUZXh0dXJlTWFuYWdlcjo6
Y3JlYXRlKDQqMTAyNCoxMDI0LCAyKjEwMjQqMTAyNCwgMTAyNCk7CisgICAgUmVmUHRyPEZha2VU
aWxlZExheWVyQ2hyb21pdW0+IGxheWVyMSA9IGFkb3B0UmVmKG5ldyBGYWtlVGlsZWRMYXllckNo
cm9taXVtKHRleHR1cmVNYW5hZ2VyLmdldCgpKSk7CisgICAgUmVmUHRyPEZha2VUaWxlZExheWVy
Q2hyb21pdW0+IGxheWVyMiA9IGFkb3B0UmVmKG5ldyBGYWtlVGlsZWRMYXllckNocm9taXVtKHRl
eHR1cmVNYW5hZ2VyLmdldCgpKSk7CisgICAgRGVidWdTY29wZWRTZXRJbXBsVGhyZWFkIGltcGxU
aHJlYWQ7CisgICAgT3duUHRyPEZha2VDQ1RpbGVkTGF5ZXJJbXBsPiBsYXllcjFJbXBsKGFkb3B0
UHRyKG5ldyBGYWtlQ0NUaWxlZExheWVySW1wbCgwKSkpOworICAgIE93blB0cjxGYWtlQ0NUaWxl
ZExheWVySW1wbD4gbGF5ZXIySW1wbChhZG9wdFB0cihuZXcgRmFrZUNDVGlsZWRMYXllckltcGwo
MCkpKTsKKworICAgIEZha2VUZXh0dXJlQWxsb2NhdG9yIHRleHR1cmVBbGxvY2F0b3I7CisgICAg
Q0NUZXh0dXJlVXBkYXRlciB1cGRhdGVyKCZ0ZXh0dXJlQWxsb2NhdG9yKTsKKworICAgIGxheWVy
MS0+c2V0Qm91bmRzKEludFNpemUoMTAwLCAyMDApKTsKKyAgICBsYXllcjEtPmludmFsaWRhdGVS
ZWN0KEludFJlY3QoMCwgMCwgMTAwLCAyMDApKTsKKyAgICBsYXllcjItPnNldEJvdW5kcyhJbnRT
aXplKDEwMCwgMjAwKSk7CisgICAgbGF5ZXIyLT5pbnZhbGlkYXRlUmVjdChJbnRSZWN0KDAsIDAs
IDEwMCwgMjAwKSk7CisKKyAgICBsYXllcjEtPnByZXBhcmVUb1VwZGF0ZShJbnRSZWN0KDAsIDAs
IDEwMCwgMjAwKSk7CisKKyAgICAvLyBJbnZhbGlkYXRlIGEgdGlsZSBvbiBsYXllcjEKKyAgICBs
YXllcjItPmZha2VMYXllclRleHR1cmVVcGRhdGVyKCktPnNldFJlY3RUb0ludmFsaWRhdGUoSW50
UmVjdCgwLCA1MCwgMTAwLCA1MCksIGxheWVyMS5nZXQoKSk7CisgICAgbGF5ZXIyLT5wcmVwYXJl
VG9VcGRhdGUoSW50UmVjdCgwLCAwLCAxMDAsIDIwMCkpOworCisgICAgbGF5ZXIxLT51cGRhdGVD
b21wb3NpdG9yUmVzb3VyY2VzKDAsIHVwZGF0ZXIpOworICAgIGxheWVyMi0+dXBkYXRlQ29tcG9z
aXRvclJlc291cmNlcygwLCB1cGRhdGVyKTsKKworICAgIGxheWVyMS0+cHVzaFByb3BlcnRpZXNU
byhsYXllcjFJbXBsLmdldCgpKTsKKyAgICBsYXllcjItPnB1c2hQcm9wZXJ0aWVzVG8obGF5ZXIy
SW1wbC5nZXQoKSk7CisKKyAgICAvLyBXZSBzaG91bGQgaGF2ZSBib3RoIHRpbGVzIG9uIHRoZSBp
bXBsIHNpZGUgZm9yIGFsbCBsYXllcnMuCisgICAgRVhQRUNUX1RSVUUobGF5ZXIxSW1wbC0+aGFz
VGlsZUF0KDAsIDApKTsKKyAgICBFWFBFQ1RfVFJVRShsYXllcjFJbXBsLT5oYXNUaWxlQXQoMCwg
MSkpOworICAgIEVYUEVDVF9UUlVFKGxheWVyMkltcGwtPmhhc1RpbGVBdCgwLCAwKSk7CisgICAg
RVhQRUNUX1RSVUUobGF5ZXIySW1wbC0+aGFzVGlsZUF0KDAsIDEpKTsKK30KKworVEVTVChUaWxl
ZExheWVyQ2hyb21pdW1UZXN0LCBwdXNoVGlsZXNMYXllck1hcmtlZERpcnR5RHVyaW5nUGFpbnRP
blByZXZpb3VzTGF5ZXIpCit7CisgICAgT3duUHRyPFRleHR1cmVNYW5hZ2VyPiB0ZXh0dXJlTWFu
YWdlciA9IFRleHR1cmVNYW5hZ2VyOjpjcmVhdGUoNCoxMDI0KjEwMjQsIDIqMTAyNCoxMDI0LCAx
MDI0KTsKKyAgICBSZWZQdHI8RmFrZVRpbGVkTGF5ZXJDaHJvbWl1bT4gbGF5ZXIxID0gYWRvcHRS
ZWYobmV3IEZha2VUaWxlZExheWVyQ2hyb21pdW0odGV4dHVyZU1hbmFnZXIuZ2V0KCkpKTsKKyAg
ICBSZWZQdHI8RmFrZVRpbGVkTGF5ZXJDaHJvbWl1bT4gbGF5ZXIyID0gYWRvcHRSZWYobmV3IEZh
a2VUaWxlZExheWVyQ2hyb21pdW0odGV4dHVyZU1hbmFnZXIuZ2V0KCkpKTsKKyAgICBEZWJ1Z1Nj
b3BlZFNldEltcGxUaHJlYWQgaW1wbFRocmVhZDsKKyAgICBPd25QdHI8RmFrZUNDVGlsZWRMYXll
ckltcGw+IGxheWVyMUltcGwoYWRvcHRQdHIobmV3IEZha2VDQ1RpbGVkTGF5ZXJJbXBsKDApKSk7
CisgICAgT3duUHRyPEZha2VDQ1RpbGVkTGF5ZXJJbXBsPiBsYXllcjJJbXBsKGFkb3B0UHRyKG5l
dyBGYWtlQ0NUaWxlZExheWVySW1wbCgwKSkpOworCisgICAgRmFrZVRleHR1cmVBbGxvY2F0b3Ig
dGV4dHVyZUFsbG9jYXRvcjsKKyAgICBDQ1RleHR1cmVVcGRhdGVyIHVwZGF0ZXIoJnRleHR1cmVB
bGxvY2F0b3IpOworCisgICAgbGF5ZXIxLT5zZXRCb3VuZHMoSW50U2l6ZSgxMDAsIDIwMCkpOwor
ICAgIGxheWVyMS0+aW52YWxpZGF0ZVJlY3QoSW50UmVjdCgwLCAwLCAxMDAsIDIwMCkpOworICAg
IGxheWVyMi0+c2V0Qm91bmRzKEludFNpemUoMTAwLCAyMDApKTsKKyAgICBsYXllcjItPmludmFs
aWRhdGVSZWN0KEludFJlY3QoMCwgMCwgMTAwLCAyMDApKTsKKworICAgIC8vIEludmFsaWRhdGUg
YSB0aWxlIG9uIGxheWVyMgorICAgIGxheWVyMS0+ZmFrZUxheWVyVGV4dHVyZVVwZGF0ZXIoKS0+
c2V0UmVjdFRvSW52YWxpZGF0ZShJbnRSZWN0KDAsIDUwLCAxMDAsIDUwKSwgbGF5ZXIyLmdldCgp
KTsKKyAgICBsYXllcjEtPnByZXBhcmVUb1VwZGF0ZShJbnRSZWN0KDAsIDAsIDEwMCwgMjAwKSk7
CisKKyAgICBsYXllcjItPnByZXBhcmVUb1VwZGF0ZShJbnRSZWN0KDAsIDAsIDEwMCwgMjAwKSk7
CisKKyAgICBsYXllcjEtPnVwZGF0ZUNvbXBvc2l0b3JSZXNvdXJjZXMoMCwgdXBkYXRlcik7Cisg
ICAgbGF5ZXIyLT51cGRhdGVDb21wb3NpdG9yUmVzb3VyY2VzKDAsIHVwZGF0ZXIpOworCisgICAg
bGF5ZXIxLT5wdXNoUHJvcGVydGllc1RvKGxheWVyMUltcGwuZ2V0KCkpOworICAgIGxheWVyMi0+
cHVzaFByb3BlcnRpZXNUbyhsYXllcjJJbXBsLmdldCgpKTsKKworICAgIC8vIFdlIHNob3VsZCBo
YXZlIGJvdGggdGlsZXMgb24gdGhlIGltcGwgc2lkZSBmb3IgYWxsIGxheWVycy4KKyAgICBFWFBF
Q1RfVFJVRShsYXllcjFJbXBsLT5oYXNUaWxlQXQoMCwgMCkpOworICAgIEVYUEVDVF9UUlVFKGxh
eWVyMUltcGwtPmhhc1RpbGVBdCgwLCAxKSk7CisgICAgRVhQRUNUX1RSVUUobGF5ZXIySW1wbC0+
aGFzVGlsZUF0KDAsIDApKTsKKyAgICBFWFBFQ1RfVFJVRShsYXllcjJJbXBsLT5oYXNUaWxlQXQo
MCwgMSkpOworfQogCiBURVNUKFRpbGVkTGF5ZXJDaHJvbWl1bVRlc3QsIGlkbGVQYWludE91dE9m
TWVtb3J5KQogewpAQCAtNDg2LDYgKzU4Miw3IEBAIFRFU1QoVGlsZWRMYXllckNocm9taXVtVGVz
dCwgdmVyaWZ5SW52YWxpZGF0aW9uV2hlbkNvbnRlbnRzU2NhbGVDaGFuZ2VzKQogICAgIC8vIElu
dmFsaWRhdGUgdGhlIGVudGlyZSBsYXllciBhZ2FpbiwgYnV0IGRvIG5vdCBwYWludC4gQWxsIHRp
bGVzIHNob3VsZCBiZSBnb25lIG5vdyBmcm9tIHRoZQogICAgIC8vIGltcGwgc2lkZS4KICAgICBs
YXllci0+c2V0TmVlZHNEaXNwbGF5KCk7CisgICAgbGF5ZXItPnByZXBhcmVUb1VwZGF0ZShJbnRS
ZWN0KDAsIDAsIDAsIDApKTsKICAgICBsYXllci0+dXBkYXRlQ29tcG9zaXRvclJlc291cmNlcygw
LCB1cGRhdGVyKTsKICAgICBsYXllci0+cHVzaFByb3BlcnRpZXNUbyhsYXllckltcGwuZ2V0KCkp
OwogICAgIEVYUEVDVF9GQUxTRShsYXllckltcGwtPmhhc1RpbGVBdCgwLCAwKSk7Cg==
</data>

          </attachment>
      

    </bug>

</bugzilla>