<?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>82107</bug_id>
          
          <creation_ts>2012-03-23 17:43:57 -0700</creation_ts>
          <short_desc>[chromium] When prepainting fails, tiles dirty rects may be cleared</short_desc>
          <delta_ts>2012-05-17 23:13:47 -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>
          
          
          <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>epenner</cc>
    
    <cc>jamesr</cc>
    
    <cc>piman</cc>
    
    <cc>reveman</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>586909</commentid>
    <comment_count>0</comment_count>
    <who name="Dana Jansens">danakj</who>
    <bug_when>2012-03-23 17:43:57 -0700</bug_when>
    <thetext>[chromium] When prepainting fails, tiles dirty rects may be cleared</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>586997</commentid>
    <comment_count>1</comment_count>
    <who name="Dana Jansens">danakj</who>
    <bug_when>2012-03-23 20:36:26 -0700</bug_when>
    <thetext>This is a super yummy bug. If a layer was prepainting and failed halfway through, it would lose the dirty bit on all the tiles it had already looked at. But those tiles would also have a valid reserved texture and a textureId of 0.

These tiles are no longer considered dirty (even though they are) so they would get pushed to impl, but they have a textureId of 0 so they would not display.

Then when it went to paint the layer if it became visible, those tiles would not be invalid, or dirty. So they would not get updated and keep a textureId of 0 on the impl thread.

Once the tile became dirty thru invalidation, it would paint the invalidated region, leaving the rest black if it was able to do a partial update.

Simple fix: don&apos;t clear dirty rects until you know you&apos;re going to update the layer.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>586998</commentid>
    <comment_count>2</comment_count>
      <attachid>133617</attachid>
    <who name="Dana Jansens">danakj</who>
    <bug_when>2012-03-23 20:43:51 -0700</bug_when>
    <thetext>Created attachment 133617
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>587008</commentid>
    <comment_count>3</comment_count>
      <attachid>133617</attachid>
    <who name="Adrienne Walker">enne</who>
    <bug_when>2012-03-23 21:56:22 -0700</bug_when>
    <thetext>Comment on attachment 133617
Patch

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

&gt; Source/WebKit/chromium/tests/TiledLayerChromiumTest.cpp:160
&gt; +    bool hasTextureIdForTileAt(int i, int j)
&gt; +    {
&gt; +        return CCTiledLayerImpl::hasTextureIdForTileAt(i, j);
&gt; +    }

You could shorten this and the function above to just &quot;using CCTiledLayerImpl::hasTextureIdForTileAt;&quot;

&gt; Source/WebKit/chromium/tests/TiledLayerChromiumTest.cpp:505
&gt; +    EXPECT_TRUE(layerImpl2-&gt;hasTextureIdForTileAt(0, 0));

Was hasTileAt not enough? I would have expected the isValid call to fail during pushPropertiesTo if the textureId was zero.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>587009</commentid>
    <comment_count>4</comment_count>
      <attachid>133617</attachid>
    <who name="Dana Jansens">danakj</who>
    <bug_when>2012-03-23 21:59:23 -0700</bug_when>
    <thetext>Comment on attachment 133617
Patch

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

&gt;&gt; Source/WebKit/chromium/tests/TiledLayerChromiumTest.cpp:160
&gt;&gt; +    }
&gt; 
&gt; You could shorten this and the function above to just &quot;using CCTiledLayerImpl::hasTextureIdForTileAt;&quot;

ah, nice.

&gt;&gt; Source/WebKit/chromium/tests/TiledLayerChromiumTest.cpp:505
&gt;&gt; +    EXPECT_TRUE(layerImpl2-&gt;hasTextureIdForTileAt(0, 0));
&gt; 
&gt; Was hasTileAt not enough? I would have expected the isValid call to fail during pushPropertiesTo if the textureId was zero.

Yeh, it just checks the tile is present. And most tests are okay with that. Making this a condition would make those tests fail at present (lack of calling updater.update()).

bool CCTiledLayerImpl::hasTileAt(int i, int j) const { return m_tiler-&gt;tileAt(i, j); }</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>587013</commentid>
    <comment_count>5</comment_count>
      <attachid>133619</attachid>
    <who name="Dana Jansens">danakj</who>
    <bug_when>2012-03-23 22:12:50 -0700</bug_when>
    <thetext>Created attachment 133619
Patch

Using using.

I like having separate checks for hasTileAt() and hasTextureForTileAt(). It lets me check FALSE of the hasTileAt() separately so I can know that I didn&apos;t push a dirty texture (I noticed that we were in this situation because of this unit test).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>587014</commentid>
    <comment_count>6</comment_count>
    <who name="Adrienne Walker">enne</who>
    <bug_when>2012-03-23 22:14:37 -0700</bug_when>
    <thetext>(In reply to comment #4)
&gt; (From update of attachment 133617 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=133617&amp;action=review
&gt; 
&gt; &gt;&gt; Source/WebKit/chromium/tests/TiledLayerChromiumTest.cpp:505
&gt; &gt;&gt; +    EXPECT_TRUE(layerImpl2-&gt;hasTextureIdForTileAt(0, 0));
&gt; &gt; 
&gt; &gt; Was hasTileAt not enough? I would have expected the isValid call to fail during pushPropertiesTo if the textureId was zero.
&gt; 
&gt; Yeh, it just checks the tile is present. And most tests are okay with that. Making this a condition would make those tests fail at present (lack of calling updater.update()).
&gt; 
&gt; bool CCTiledLayerImpl::hasTileAt(int i, int j) const { return m_tiler-&gt;tileAt(i, j); }

Ah, right.  isValid would still succeed even if textureId is zero.  The texture doesn&apos;t care about whether it was allocated or not, just whether its token has been evicted yet.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>587018</commentid>
    <comment_count>7</comment_count>
      <attachid>133619</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-03-23 22:54:54 -0700</bug_when>
    <thetext>Comment on attachment 133619
Patch

Clearing flags on attachment: 133619

Committed r111978: &lt;http://trac.webkit.org/changeset/111978&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>587019</commentid>
    <comment_count>8</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-03-23 22:54:59 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>627374</commentid>
    <comment_count>9</comment_count>
    <who name="Eric Penner">epenner</who>
    <bug_when>2012-05-17 23:13:47 -0700</bug_when>
    <thetext>This was yummy to track down indeed! ;) It looks like this was a knock-on from the lost-invalidations fix and then this fix didn&apos;t quite make it into m18.   I&apos;m going to cherry-pick it.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>133617</attachid>
            <date>2012-03-23 20:43:51 -0700</date>
            <delta_ts>2012-03-23 22:12:45 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-82107-20120323234349.patch</filename>
            <type>text/plain</type>
            <size>10616</size>
            <attacher name="Dana Jansens">danakj</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTExODkyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggY2I1MzI3Yjk4ZmQ0MzFh
ZjFmODE1MzUxZTEyMjllYmU5YmUxOTc4NS4uODJjNGE1MGU3MDVkMGRmZWM4MTU2NjVjZDQ4ZjVk
MTI1NDJjZjkzMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMyIEBACisyMDEyLTAzLTIzICBEYW5h
IEphbnNlbnMgIDxkYW5ha2pAY2hyb21pdW0ub3JnPgorCisgICAgICAgIFtjaHJvbWl1bV0gV2hl
biBwcmVwYWludGluZyBmYWlscywgdGlsZXMgZGlydHkgcmVjdHMgbWF5IGJlIGNsZWFyZWQKKyAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTgyMTA3CisKKyAg
ICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgV2hlbiBwcmVwYWlu
dGluZywgaWYgYSB0aWxlIGlzIHVuYWJsZSB0byBiZSByZXNlcnZlZCBkdWUgdG8gbWVtb3J5Cisg
ICAgICAgIGxpbWl0cywgd2UgYmFpbCBvdXQgb2YgcHJlcGFyZVRvVXBkYXRlVGlsZXMuIEJ1dCB3
ZSB3b3VsZCBoYXZlCisgICAgICAgIGNsZWFyZWQgdGhlIGRpcnR5IHJlY3Qgb2YgYW55IHByZXZp
b3VzIHRpbGVzLiBUaGlzIGxlYXZlcyB0aGVtCisgICAgICAgIGluIGEgYmFkIHN0YXRlIHdoZXJl
IHRoZWlyIHRleHR1cmVzIGFyZSByZXNlcnZlZCwgYnV0IHRoZWlyIHRleHR1cmVJZHMKKyAgICAg
ICAgYXJlIHNldCB0byAwLCBhbmQgdGhleSBhcmUgbm90IG1hcmtlZCBkaXJ0eS4gVGhpcyBtZWFu
cyB0aGF0IHRoZXkgd2lsbAorICAgICAgICBub3QgYmUgdXBkYXRlZCBhbmQgZGlzcGxheWVkIGlm
IHRoZXkgYmVjb21lIHZpc2libGUsIHNpbmNlIGl0IGlzCisgICAgICAgIGFzc3VtZWQgdGhhdCB2
YWxpZCB0ZXh0dXJlcyB3aXRoIHplcm8gdGV4dHVyZUlkIG11c3QgaGF2ZSBhIGRpcnR5CisgICAg
ICAgIHJlZ2lvbi4KKworICAgICAgICBXZSBmaXggdGhpcyBieSBub3QgY2xlYXJpbmcgdGhlIGRp
cnR5IHJlY3RzIHVudGlsIHdlIGtub3cgd2UgYXJlCisgICAgICAgIGdvaW5nIHRvIHVwZGF0ZSB0
aGUgbGF5ZXIuCisKKyAgICAgICAgVW5pdCB0ZXN0OiBUaWxlZExheWVyQ2hyb21pdW1UZXN0LnB1
c2hUaWxlc0FmdGVySWRsZVBhaW50RmFpbGVkCisKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGlj
cy9jaHJvbWl1bS9UaWxlZExheWVyQ2hyb21pdW0uY3BwOgorICAgICAgICAoV2ViQ29yZTo6VGls
ZWRMYXllckNocm9taXVtOjpwcmVwYXJlVG9VcGRhdGVUaWxlcyk6CisgICAgICAgICogcGxhdGZv
cm0vZ3JhcGhpY3MvY2hyb21pdW0vY2MvQ0NUaWxlZExheWVySW1wbC5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpDQ1RpbGVkTGF5ZXJJbXBsOjpoYXNUZXh0dXJlSWRGb3JUaWxlQXQpOgorICAgICAg
ICAoV2ViQ29yZSk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vY2MvQ0NU
aWxlZExheWVySW1wbC5oOgorICAgICAgICAoQ0NUaWxlZExheWVySW1wbCk6CisKIDIwMTItMDMt
MjMgIERhdmUgTWljaGFlbCAgPGRtaWNoYWVsQGNocm9taXVtLm9yZz4KIAogICAgICAgICBSZWxh
bmRpbmcocjExMTc1NCk6IEhUTUxQbHVnaW5FbGVtZW50IGlzIG5vdCBkZXN0cm95ZWQgb24gcmVs
b2FkIG9yIG5hdmlnYXRpb24gaWYgZ2V0TlBPYmplY3QgaXMgY2FsbGVkCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0v
Q2hhbmdlTG9nCmluZGV4IDkyNTY3YWM5MWY3OTc4ZTE5ZjIwZDIxYTEwZmUzMzgyYTkxYzk5ZGMu
LmI0ZjljZjIyMzY2NjQ4MTU2Y2FiMjFhYTVkYzIxN2JhOGU2OGU1OGEgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21p
dW0vQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTggQEAKKzIwMTItMDMtMjMgIERhbmEgSmFuc2VucyAg
PGRhbmFrakBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgW2Nocm9taXVtXSBXaGVuIHByZXBhaW50
aW5nIGZhaWxzLCB0aWxlcyBkaXJ0eSByZWN0cyBtYXkgYmUgY2xlYXJlZAorICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9ODIxMDcKKworICAgICAgICBSZXZp
ZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIHRlc3RzL1RpbGVkTGF5ZXJDaHJv
bWl1bVRlc3QuY3BwOgorICAgICAgICAoV1RGOjpGYWtlVGV4dHVyZUFsbG9jYXRvcjo6Y3JlYXRl
VGV4dHVyZSk6CisgICAgICAgIChXVEY6OkZha2VMYXllclRleHR1cmVVcGRhdGVyOjpUZXh0dXJl
Ojp1cGRhdGVSZWN0KToKKyAgICAgICAgKEZha2VDQ1RpbGVkTGF5ZXJJbXBsKToKKyAgICAgICAg
KFdURjo6RmFrZUNDVGlsZWRMYXllckltcGw6Omhhc1RleHR1cmVJZEZvclRpbGVBdCk6CisgICAg
ICAgIChXVEY6OlRFU1QpOgorICAgICAgICAoV1RGKToKKwogMjAxMi0wMy0yMyAgQWRyaWVubmUg
V2Fsa2VyICA8ZW5uZUBnb29nbGUuY29tPgogCiAgICAgICAgIFtjaHJvbWl1bV0gRml4IHNjcm9s
bGJhckxheWVyTG9zdENvbnRleHQgZmxha3kgdGVzdCBjcmFzaCBvbiAxMC42CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9UaWxlZExheWVyQ2hy
b21pdW0uY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vVGls
ZWRMYXllckNocm9taXVtLmNwcAppbmRleCAwODk0NGQxNTA4MGYwMTk5NWQxM2U0N2MwOTYwMjY4
Njc4ZDEwNGFlLi4zYWI5YTZkOTlkNzI1MjE2YmQyMDA5ZjdmOWU5NThlNzJhNTY5ZmFjIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9UaWxlZExh
eWVyQ2hyb21pdW0uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2No
cm9taXVtL1RpbGVkTGF5ZXJDaHJvbWl1bS5jcHAKQEAgLTQ2Nyw3ICs0NjcsMTYgQEAgdm9pZCBU
aWxlZExheWVyQ2hyb21pdW06OnByZXBhcmVUb1VwZGF0ZVRpbGVzKGJvb2wgaWRsZSwgaW50IGxl
ZnQsIGludCB0b3AsIGludAogICAgICAgICAgICAgfQogCiAgICAgICAgICAgICBkaXJ0eUxheWVy
UmVjdC51bml0ZSh0aWxlLT5tX2RpcnR5UmVjdCk7Ci0gICAgICAgICAgICB0aWxlLT5jb3B5QW5k
Q2xlYXJEaXJ0eSgpOworICAgICAgICB9CisgICAgfQorCisgICAgLy8gRm9yIHRpbGVzIHRoYXQg
d2VyZSBub3QgY3VsbGVkLCB3ZSBhcmUgZ29pbmcgdG8gdXBkYXRlIHRoZSBhcmVhIGN1cnJlbnRs
eSBtYXJrZWQgYXMgZGlydHkuIFNvCisgICAgLy8gY2xlYXIgdGhhdCBkaXJ0eSBhcmVhIGFuZCBt
YXJrIGl0IGZvciB1cGRhdGUgaW5zdGVhZC4KKyAgICBmb3IgKGludCBqID0gdG9wOyBqIDw9IGJv
dHRvbTsgKytqKSB7CisgICAgICAgIGZvciAoaW50IGkgPSBsZWZ0OyBpIDw9IHJpZ2h0OyArK2kp
IHsKKyAgICAgICAgICAgIFVwZGF0YWJsZVRpbGUqIHRpbGUgPSB0aWxlQXQoaSwgaik7CisgICAg
ICAgICAgICBpZiAodGlsZS0+bV91cGRhdGVkKQorICAgICAgICAgICAgICAgIHRpbGUtPmNvcHlB
bmRDbGVhckRpcnR5KCk7CiAgICAgICAgIH0KICAgICB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL2NjL0NDVGlsZWRMYXllckltcGwuY3Bw
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vY2MvQ0NUaWxlZExh
eWVySW1wbC5jcHAKaW5kZXggM2Y3YjBiM2FjMjE5YTc2MDc3NWE1ZWJmMDAxOGRmZDg5NDIzNzc3
OS4uNDg5MWMxMGVjMDA4ZDI4YTMyNDFkMmIzZDgwZTBjYzAwYmU4ZDhlNCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vY2MvQ0NUaWxlZExheWVy
SW1wbC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0v
Y2MvQ0NUaWxlZExheWVySW1wbC5jcHAKQEAgLTk1LDYgKzk1LDExIEBAIGJvb2wgQ0NUaWxlZExh
eWVySW1wbDo6aGFzVGlsZUF0KGludCBpLCBpbnQgaikgY29uc3QKICAgICByZXR1cm4gbV90aWxl
ci0+dGlsZUF0KGksIGopOwogfQogCitib29sIENDVGlsZWRMYXllckltcGw6Omhhc1RleHR1cmVJ
ZEZvclRpbGVBdChpbnQgaSwgaW50IGopIGNvbnN0Cit7CisgICAgcmV0dXJuIGhhc1RpbGVBdChp
LCBqKSAmJiB0aWxlQXQoaSwgaiktPnRleHR1cmVJZCgpOworfQorCiBEcmF3YWJsZVRpbGUqIEND
VGlsZWRMYXllckltcGw6OnRpbGVBdChpbnQgaSwgaW50IGopIGNvbnN0CiB7CiAgICAgcmV0dXJu
IHN0YXRpY19jYXN0PERyYXdhYmxlVGlsZSo+KG1fdGlsZXItPnRpbGVBdChpLCBqKSk7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9jYy9DQ1Rp
bGVkTGF5ZXJJbXBsLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1
bS9jYy9DQ1RpbGVkTGF5ZXJJbXBsLmgKaW5kZXggMzBhNGFhNjM4ZmFlMjhhYjhiOTBmZDUxMGQ0
ZGY4ZWNjZGM4YWViYS4uNjhhMWRiMTQzOTBlNDU0YzJhMzAxNGZmYWQxMjYzYjJmZTgxOTdjYiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vY2Mv
Q0NUaWxlZExheWVySW1wbC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L2Nocm9taXVtL2NjL0NDVGlsZWRMYXllckltcGwuaApAQCAtNzUsNiArNzUsNyBAQCBwcm90ZWN0
ZWQ6CiAgICAgZXhwbGljaXQgQ0NUaWxlZExheWVySW1wbChpbnQgaWQpOwogICAgIC8vIEV4cG9z
ZWQgZm9yIHRlc3RpbmcuCiAgICAgYm9vbCBoYXNUaWxlQXQoaW50LCBpbnQpIGNvbnN0OworICAg
IGJvb2wgaGFzVGV4dHVyZUlkRm9yVGlsZUF0KGludCwgaW50KSBjb25zdDsKIAogICAgIHZpcnR1
YWwgVHJhbnNmb3JtYXRpb25NYXRyaXggcXVhZFRyYW5zZm9ybSgpIGNvbnN0OwogCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3Rlc3RzL1RpbGVkTGF5ZXJDaHJvbWl1bVRlc3Qu
Y3BwIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS90ZXN0cy9UaWxlZExheWVyQ2hyb21pdW1UZXN0
LmNwcAppbmRleCA5NGY5ZWI0ZDhhMjY2YjZhM2Y2M2Y3YmM5MDczMjI1Mjc0ZmE1YzFmLi5iMDkz
ZTk0ZWM3MmFiZDhkMzVjZjcxNGIzZGE5NjcyZmQyYTBkYzFhIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L2Nocm9taXVtL3Rlc3RzL1RpbGVkTGF5ZXJDaHJvbWl1bVRlc3QuY3BwCisrKyBiL1Nv
dXJjZS9XZWJLaXQvY2hyb21pdW0vdGVzdHMvVGlsZWRMYXllckNocm9taXVtVGVzdC5jcHAKQEAg
LTY5LDcgKzY5LDcgQEAgcHJpdmF0ZToKIAogY2xhc3MgRmFrZVRleHR1cmVBbGxvY2F0b3IgOiBw
dWJsaWMgVGV4dHVyZUFsbG9jYXRvciB7CiBwdWJsaWM6Ci0gICAgdmlydHVhbCB1bnNpZ25lZCBj
cmVhdGVUZXh0dXJlKGNvbnN0IEludFNpemUmLCBHQzNEZW51bSkgeyByZXR1cm4gMDsgfQorICAg
IHZpcnR1YWwgdW5zaWduZWQgY3JlYXRlVGV4dHVyZShjb25zdCBJbnRTaXplJiwgR0MzRGVudW0p
IHsgcmV0dXJuIDE7IH0KICAgICB2aXJ0dWFsIHZvaWQgZGVsZXRlVGV4dHVyZSh1bnNpZ25lZCwg
Y29uc3QgSW50U2l6ZSYsIEdDM0RlbnVtKSB7IH0KIH07CiAKQEAgLTg2LDcgKzg2LDEyIEBAIHB1
YmxpYzoKICAgICAgICAgfQogICAgICAgICB2aXJ0dWFsIH5UZXh0dXJlKCkgeyB9CiAKLSAgICAg
ICAgdmlydHVhbCB2b2lkIHVwZGF0ZVJlY3QoR3JhcGhpY3NDb250ZXh0M0QqLCBUZXh0dXJlQWxs
b2NhdG9yKiwgY29uc3QgSW50UmVjdCYsIGNvbnN0IEludFJlY3QmKSB7IG1fbGF5ZXItPnVwZGF0
ZVJlY3QoKTsgfQorICAgICAgICB2aXJ0dWFsIHZvaWQgdXBkYXRlUmVjdChHcmFwaGljc0NvbnRl
eHQzRCosIFRleHR1cmVBbGxvY2F0b3IqIGFsbG9jYXRvciwgY29uc3QgSW50UmVjdCYsIGNvbnN0
IEludFJlY3QmKQorICAgICAgICB7CisgICAgICAgICAgICBpZiAoYWxsb2NhdG9yKQorICAgICAg
ICAgICAgICAgIHRleHR1cmUoKS0+YWxsb2NhdGUoYWxsb2NhdG9yKTsKKyAgICAgICAgICAgIG1f
bGF5ZXItPnVwZGF0ZVJlY3QoKTsKKyAgICAgICAgfQogICAgICAgICB2aXJ0dWFsIHZvaWQgcHJl
cGFyZVJlY3QoY29uc3QgSW50UmVjdCYpIHsgbV9sYXllci0+cHJlcGFyZVJlY3QoKTsgfQogCiAg
ICAgcHJpdmF0ZToKQEAgLTE0OCw2ICsxNTMsMTEgQEAgcHVibGljOgogICAgIHsKICAgICAgICAg
cmV0dXJuIENDVGlsZWRMYXllckltcGw6Omhhc1RpbGVBdChpLCBqKTsKICAgICB9CisKKyAgICBi
b29sIGhhc1RleHR1cmVJZEZvclRpbGVBdChpbnQgaSwgaW50IGopCisgICAgeworICAgICAgICBy
ZXR1cm4gQ0NUaWxlZExheWVySW1wbDo6aGFzVGV4dHVyZUlkRm9yVGlsZUF0KGksIGopOworICAg
IH0KIH07CiAKIGNsYXNzIEZha2VUaWxlZExheWVyQ2hyb21pdW0gOiBwdWJsaWMgVGlsZWRMYXll
ckNocm9taXVtIHsKQEAgLTQzNCw2ICs0NDQsODggQEAgVEVTVChUaWxlZExheWVyQ2hyb21pdW1U
ZXN0LCBwdXNoSWRsZVBhaW50VGlsZXMpCiAgICAgfQogfQogCitURVNUKFRpbGVkTGF5ZXJDaHJv
bWl1bVRlc3QsIHB1c2hUaWxlc0FmdGVySWRsZVBhaW50RmFpbGVkKQoreworICAgIE93blB0cjxU
ZXh0dXJlTWFuYWdlcj4gdGV4dHVyZU1hbmFnZXIgPSBUZXh0dXJlTWFuYWdlcjo6Y3JlYXRlKDEw
MjQqMTAyNCwgMTAyNCoxMDI0LCAxMDI0KTsKKyAgICBEZWJ1Z1Njb3BlZFNldEltcGxUaHJlYWQg
aW1wbFRocmVhZDsKKyAgICBSZWZQdHI8RmFrZVRpbGVkTGF5ZXJDaHJvbWl1bT4gbGF5ZXIxID0g
YWRvcHRSZWYobmV3IEZha2VUaWxlZExheWVyQ2hyb21pdW0odGV4dHVyZU1hbmFnZXIuZ2V0KCkp
KTsKKyAgICBPd25QdHI8RmFrZUNDVGlsZWRMYXllckltcGw+IGxheWVySW1wbDEoYWRvcHRQdHIo
bmV3IEZha2VDQ1RpbGVkTGF5ZXJJbXBsKDApKSk7CisgICAgUmVmUHRyPEZha2VUaWxlZExheWVy
Q2hyb21pdW0+IGxheWVyMiA9IGFkb3B0UmVmKG5ldyBGYWtlVGlsZWRMYXllckNocm9taXVtKHRl
eHR1cmVNYW5hZ2VyLmdldCgpKSk7CisgICAgT3duUHRyPEZha2VDQ1RpbGVkTGF5ZXJJbXBsPiBs
YXllckltcGwyKGFkb3B0UHRyKG5ldyBGYWtlQ0NUaWxlZExheWVySW1wbCgwKSkpOworCisgICAg
RmFrZVRleHR1cmVBbGxvY2F0b3IgdGV4dHVyZUFsbG9jYXRvcjsKKyAgICBDQ1RleHR1cmVVcGRh
dGVyIHVwZGF0ZXIoJnRleHR1cmVBbGxvY2F0b3IpOworCisgICAgLy8gRm9yIHRoaXMgdGVzdCB3
ZSBoYXZlIHR3byBsYXllcnMuIGxheWVyMSBleGhhdXN0cyBtb3N0IHRleHR1cmUgbWVtb3J5LCBs
ZWF2aW5nIHJvb20gZm9yIDIgbW9yZSB0aWxlcyBmcm9tCisgICAgLy8gbGF5ZXIyLCBidXQgbm90
IGFsbCB0aHJlZSB0aWxlcy4gRmlyc3Qgd2UgcGFpbnQgbGF5ZXIxLCBhbmQgb25lIHRpbGUgZnJv
bSBsYXllcjIuIFRoZW4gd2hlbiB3ZSBpZGxlIHBhaW50CisgICAgLy8gbGF5ZXIyLCB3ZSB3aWxs
IGZhaWwgb24gdGhlIHRoaXJkIHRpbGUgb2YgbGF5ZXIyLCBhbmQgdGhpcyBzaG91bGQgbm90IGxl
YXZlIHRoZSBzZWNvbmQgdGlsZSBpbiBhIGJhZCBzdGF0ZS4KKworICAgIC8vIFRoaXMgcmVxdWly
ZXMgNCozMDAwMCBieXRlcyBvZiBtZW1vcnkuCisgICAgSW50UmVjdCBsYXllcjJSZWN0KDAsIDAs
IDEwMCwgMzAwKTsKKyAgICBsYXllcjItPnNldEJvdW5kcyhsYXllcjJSZWN0LnNpemUoKSk7Cisg
ICAgbGF5ZXIyLT5zZXRWaXNpYmxlTGF5ZXJSZWN0KGxheWVyMlJlY3QpOworICAgIGxheWVyMi0+
aW52YWxpZGF0ZVJlY3QobGF5ZXIyUmVjdCk7CisKKyAgICAvLyBUaGlzIHVzZXMgOTYwMDAwIGJ5
dGVzLCBsZWF2aW5nIDg4NTc2IGJ5dGVzIG9mIG1lbW9yeSBsZWZ0LCB3aGljaCBpcyBlbm91Z2gg
Zm9yIDIgdGlsZXMgb25seSBpbiB0aGUgb3RoZXIgbGF5ZXIuCisgICAgSW50UmVjdCBsYXllclJl
Y3QoSW50UG9pbnQ6Onplcm8oKSwgSW50U2l6ZSgxMDAsIDI0MDApKTsKKyAgICBsYXllcjEtPnNl
dEJvdW5kcyhsYXllclJlY3Quc2l6ZSgpKTsKKyAgICBsYXllcjEtPnNldFZpc2libGVMYXllclJl
Y3QobGF5ZXJSZWN0KTsKKyAgICBsYXllcjEtPmludmFsaWRhdGVSZWN0KGxheWVyUmVjdCk7Cisg
ICAgbGF5ZXIxLT5wcmVwYXJlVG9VcGRhdGUobGF5ZXJSZWN0LCAwKTsKKworICAgIC8vIFBhaW50
IGEgc2luZ2xlIHRpbGUgaW4gbGF5ZXIyIHNvIHRoYXQgaXQgd2lsbCBpZGxlIHBhaW50LgorICAg
IGxheWVyMi0+cHJlcGFyZVRvVXBkYXRlKEludFJlY3QoMCwgMCwgMTAwLCAxMDApLCAwKTsKKwor
ICAgIC8vIFdlIHNob3VsZCBuZWVkIGlkbGUtcGFpbnRpbmcgZm9yIGJvdGggcmVtYWluaW5nIHRp
bGVzIGluIGxheWVyMi4KKyAgICBFWFBFQ1RfVFJVRShsYXllcjItPm5lZWRzSWRsZVBhaW50KGxh
eWVyMlJlY3QpKTsKKworICAgIC8vIENvbW1pdCB0aGUgZnJhbWUgb3ZlciB0byBpbXBsLgorICAg
IGxheWVyMS0+dXBkYXRlQ29tcG9zaXRvclJlc291cmNlcygwLCB1cGRhdGVyKTsKKyAgICBsYXll
cjItPnVwZGF0ZUNvbXBvc2l0b3JSZXNvdXJjZXMoMCwgdXBkYXRlcik7CisgICAgdXBkYXRlci51
cGRhdGUoMCwgNTAwMCk7CisgICAgbGF5ZXIxLT5wdXNoUHJvcGVydGllc1RvKGxheWVySW1wbDEu
Z2V0KCkpOworICAgIGxheWVyMi0+cHVzaFByb3BlcnRpZXNUbyhsYXllckltcGwyLmdldCgpKTsK
KworICAgIC8vIE5vdyBpZGxlIHBhaW50IGxheWVyMi4gV2UgYXJlIGdvaW5nIHRvIHJ1biBvdXQg
b2YgbWVtb3J5IHRob3VnaCEKKyAgICBsYXllcjItPnByZXBhcmVUb1VwZGF0ZShJbnRSZWN0KDAs
IDAsIDEwMCwgMTAwKSwgMCk7CisgICAgbGF5ZXIyLT5wcmVwYXJlVG9VcGRhdGVJZGxlKGxheWVy
MlJlY3QsIDApOworCisgICAgLy8gT2ggd2VsbCwgY29tbWl0IHRoZSBmcmFtZSBhbmQgcHVzaC4K
KyAgICBsYXllcjEtPnVwZGF0ZUNvbXBvc2l0b3JSZXNvdXJjZXMoMCwgdXBkYXRlcik7CisgICAg
bGF5ZXIyLT51cGRhdGVDb21wb3NpdG9yUmVzb3VyY2VzKDAsIHVwZGF0ZXIpOworICAgIHVwZGF0
ZXIudXBkYXRlKDAsIDUwMDApOworICAgIGxheWVyMS0+cHVzaFByb3BlcnRpZXNUbyhsYXllcklt
cGwxLmdldCgpKTsKKyAgICBsYXllcjItPnB1c2hQcm9wZXJ0aWVzVG8obGF5ZXJJbXBsMi5nZXQo
KSk7CisKKyAgICAvLyBTYW5pdHkgY2hlY2ssIHdlIHNob3VsZCBoYXZlIHRleHR1cmVzIGZvciB0
aGUgYmlnIGxheWVyLgorICAgIEVYUEVDVF9UUlVFKGxheWVySW1wbDEtPmhhc1RleHR1cmVJZEZv
clRpbGVBdCgwLCAwKSk7CisKKyAgICAvLyBXZSBzaG91bGQgb25seSBoYXZlIHRoZSBmaXJzdCB0
aWxlIGZyb20gbGF5ZXIyIHNpbmNlIGl0IGZhaWxlZCB0byBpZGxlIHVwZGF0ZS4KKyAgICBFWFBF
Q1RfVFJVRShsYXllckltcGwyLT5oYXNUaWxlQXQoMCwgMCkpOworICAgIEVYUEVDVF9UUlVFKGxh
eWVySW1wbDItPmhhc1RleHR1cmVJZEZvclRpbGVBdCgwLCAwKSk7CisgICAgRVhQRUNUX0ZBTFNF
KGxheWVySW1wbDItPmhhc1RpbGVBdCgwLCAxKSk7CisgICAgRVhQRUNUX0ZBTFNFKGxheWVySW1w
bDItPmhhc1RpbGVBdCgwLCAyKSk7CisKKyAgICAvLyBOb3cgaWYgbGF5ZXIyIGJlY29tZXMgZnVs
bHkgdmlzaWJsZSwgd2Ugc2hvdWxkIGJlIGFibGUgdG8gcGFpbnQgaXQgYW5kIHB1c2ggdmFsaWQg
dGV4dHVyZXMuCisgICAgdGV4dHVyZU1hbmFnZXItPnVucHJvdGVjdEFsbFRleHR1cmVzKCk7CisK
KyAgICBsYXllcjItPnByZXBhcmVUb1VwZGF0ZShsYXllcjJSZWN0LCAwKTsKKyAgICBsYXllcjEt
PnByZXBhcmVUb1VwZGF0ZShJbnRSZWN0KCksIDApOworCisgICAgbGF5ZXIxLT51cGRhdGVDb21w
b3NpdG9yUmVzb3VyY2VzKDAsIHVwZGF0ZXIpOworICAgIGxheWVyMi0+dXBkYXRlQ29tcG9zaXRv
clJlc291cmNlcygwLCB1cGRhdGVyKTsKKyAgICB1cGRhdGVyLnVwZGF0ZSgwLCA1MDAwKTsKKyAg
ICBsYXllcjEtPnB1c2hQcm9wZXJ0aWVzVG8obGF5ZXJJbXBsMS5nZXQoKSk7CisgICAgbGF5ZXIy
LT5wdXNoUHJvcGVydGllc1RvKGxheWVySW1wbDIuZ2V0KCkpOworCisgICAgRVhQRUNUX1RSVUUo
bGF5ZXJJbXBsMi0+aGFzVGlsZUF0KDAsIDApKTsKKyAgICBFWFBFQ1RfVFJVRShsYXllckltcGwy
LT5oYXNUaWxlQXQoMCwgMSkpOworICAgIEVYUEVDVF9UUlVFKGxheWVySW1wbDItPmhhc1RpbGVB
dCgwLCAyKSk7CisgICAgRVhQRUNUX1RSVUUobGF5ZXJJbXBsMi0+aGFzVGV4dHVyZUlkRm9yVGls
ZUF0KDAsIDApKTsKKyAgICBFWFBFQ1RfVFJVRShsYXllckltcGwyLT5oYXNUZXh0dXJlSWRGb3JU
aWxlQXQoMCwgMSkpOworICAgIEVYUEVDVF9UUlVFKGxheWVySW1wbDItPmhhc1RleHR1cmVJZEZv
clRpbGVBdCgwLCAyKSk7Cit9CisKIFRFU1QoVGlsZWRMYXllckNocm9taXVtVGVzdCwgcHVzaElk
bGVQYWludGVkT2NjbHVkZWRUaWxlcykKIHsKICAgICBPd25QdHI8VGV4dHVyZU1hbmFnZXI+IHRl
eHR1cmVNYW5hZ2VyID0gVGV4dHVyZU1hbmFnZXI6OmNyZWF0ZSg0KjEwMjQqMTAyNCwgMioxMDI0
KjEwMjQsIDEwMjQpOwo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>133619</attachid>
            <date>2012-03-23 22:12:50 -0700</date>
            <delta_ts>2012-03-23 22:54:54 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-82107-20120324011248.patch</filename>
            <type>text/plain</type>
            <size>10696</size>
            <attacher name="Dana Jansens">danakj</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTExODkyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggY2I1MzI3Yjk4ZmQ0MzFh
ZjFmODE1MzUxZTEyMjllYmU5YmUxOTc4NS4uODJjNGE1MGU3MDVkMGRmZWM4MTU2NjVjZDQ4ZjVk
MTI1NDJjZjkzMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMyIEBACisyMDEyLTAzLTIzICBEYW5h
IEphbnNlbnMgIDxkYW5ha2pAY2hyb21pdW0ub3JnPgorCisgICAgICAgIFtjaHJvbWl1bV0gV2hl
biBwcmVwYWludGluZyBmYWlscywgdGlsZXMgZGlydHkgcmVjdHMgbWF5IGJlIGNsZWFyZWQKKyAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTgyMTA3CisKKyAg
ICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgV2hlbiBwcmVwYWlu
dGluZywgaWYgYSB0aWxlIGlzIHVuYWJsZSB0byBiZSByZXNlcnZlZCBkdWUgdG8gbWVtb3J5Cisg
ICAgICAgIGxpbWl0cywgd2UgYmFpbCBvdXQgb2YgcHJlcGFyZVRvVXBkYXRlVGlsZXMuIEJ1dCB3
ZSB3b3VsZCBoYXZlCisgICAgICAgIGNsZWFyZWQgdGhlIGRpcnR5IHJlY3Qgb2YgYW55IHByZXZp
b3VzIHRpbGVzLiBUaGlzIGxlYXZlcyB0aGVtCisgICAgICAgIGluIGEgYmFkIHN0YXRlIHdoZXJl
IHRoZWlyIHRleHR1cmVzIGFyZSByZXNlcnZlZCwgYnV0IHRoZWlyIHRleHR1cmVJZHMKKyAgICAg
ICAgYXJlIHNldCB0byAwLCBhbmQgdGhleSBhcmUgbm90IG1hcmtlZCBkaXJ0eS4gVGhpcyBtZWFu
cyB0aGF0IHRoZXkgd2lsbAorICAgICAgICBub3QgYmUgdXBkYXRlZCBhbmQgZGlzcGxheWVkIGlm
IHRoZXkgYmVjb21lIHZpc2libGUsIHNpbmNlIGl0IGlzCisgICAgICAgIGFzc3VtZWQgdGhhdCB2
YWxpZCB0ZXh0dXJlcyB3aXRoIHplcm8gdGV4dHVyZUlkIG11c3QgaGF2ZSBhIGRpcnR5CisgICAg
ICAgIHJlZ2lvbi4KKworICAgICAgICBXZSBmaXggdGhpcyBieSBub3QgY2xlYXJpbmcgdGhlIGRp
cnR5IHJlY3RzIHVudGlsIHdlIGtub3cgd2UgYXJlCisgICAgICAgIGdvaW5nIHRvIHVwZGF0ZSB0
aGUgbGF5ZXIuCisKKyAgICAgICAgVW5pdCB0ZXN0OiBUaWxlZExheWVyQ2hyb21pdW1UZXN0LnB1
c2hUaWxlc0FmdGVySWRsZVBhaW50RmFpbGVkCisKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGlj
cy9jaHJvbWl1bS9UaWxlZExheWVyQ2hyb21pdW0uY3BwOgorICAgICAgICAoV2ViQ29yZTo6VGls
ZWRMYXllckNocm9taXVtOjpwcmVwYXJlVG9VcGRhdGVUaWxlcyk6CisgICAgICAgICogcGxhdGZv
cm0vZ3JhcGhpY3MvY2hyb21pdW0vY2MvQ0NUaWxlZExheWVySW1wbC5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpDQ1RpbGVkTGF5ZXJJbXBsOjpoYXNUZXh0dXJlSWRGb3JUaWxlQXQpOgorICAgICAg
ICAoV2ViQ29yZSk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vY2MvQ0NU
aWxlZExheWVySW1wbC5oOgorICAgICAgICAoQ0NUaWxlZExheWVySW1wbCk6CisKIDIwMTItMDMt
MjMgIERhdmUgTWljaGFlbCAgPGRtaWNoYWVsQGNocm9taXVtLm9yZz4KIAogICAgICAgICBSZWxh
bmRpbmcocjExMTc1NCk6IEhUTUxQbHVnaW5FbGVtZW50IGlzIG5vdCBkZXN0cm95ZWQgb24gcmVs
b2FkIG9yIG5hdmlnYXRpb24gaWYgZ2V0TlBPYmplY3QgaXMgY2FsbGVkCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0v
Q2hhbmdlTG9nCmluZGV4IDkyNTY3YWM5MWY3OTc4ZTE5ZjIwZDIxYTEwZmUzMzgyYTkxYzk5ZGMu
LmI0ZjljZjIyMzY2NjQ4MTU2Y2FiMjFhYTVkYzIxN2JhOGU2OGU1OGEgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21p
dW0vQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTggQEAKKzIwMTItMDMtMjMgIERhbmEgSmFuc2VucyAg
PGRhbmFrakBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgW2Nocm9taXVtXSBXaGVuIHByZXBhaW50
aW5nIGZhaWxzLCB0aWxlcyBkaXJ0eSByZWN0cyBtYXkgYmUgY2xlYXJlZAorICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9ODIxMDcKKworICAgICAgICBSZXZp
ZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIHRlc3RzL1RpbGVkTGF5ZXJDaHJv
bWl1bVRlc3QuY3BwOgorICAgICAgICAoV1RGOjpGYWtlVGV4dHVyZUFsbG9jYXRvcjo6Y3JlYXRl
VGV4dHVyZSk6CisgICAgICAgIChXVEY6OkZha2VMYXllclRleHR1cmVVcGRhdGVyOjpUZXh0dXJl
Ojp1cGRhdGVSZWN0KToKKyAgICAgICAgKEZha2VDQ1RpbGVkTGF5ZXJJbXBsKToKKyAgICAgICAg
KFdURjo6RmFrZUNDVGlsZWRMYXllckltcGw6Omhhc1RleHR1cmVJZEZvclRpbGVBdCk6CisgICAg
ICAgIChXVEY6OlRFU1QpOgorICAgICAgICAoV1RGKToKKwogMjAxMi0wMy0yMyAgQWRyaWVubmUg
V2Fsa2VyICA8ZW5uZUBnb29nbGUuY29tPgogCiAgICAgICAgIFtjaHJvbWl1bV0gRml4IHNjcm9s
bGJhckxheWVyTG9zdENvbnRleHQgZmxha3kgdGVzdCBjcmFzaCBvbiAxMC42CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9UaWxlZExheWVyQ2hy
b21pdW0uY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vVGls
ZWRMYXllckNocm9taXVtLmNwcAppbmRleCAwODk0NGQxNTA4MGYwMTk5NWQxM2U0N2MwOTYwMjY4
Njc4ZDEwNGFlLi4zYWI5YTZkOTlkNzI1MjE2YmQyMDA5ZjdmOWU5NThlNzJhNTY5ZmFjIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9UaWxlZExh
eWVyQ2hyb21pdW0uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2No
cm9taXVtL1RpbGVkTGF5ZXJDaHJvbWl1bS5jcHAKQEAgLTQ2Nyw3ICs0NjcsMTYgQEAgdm9pZCBU
aWxlZExheWVyQ2hyb21pdW06OnByZXBhcmVUb1VwZGF0ZVRpbGVzKGJvb2wgaWRsZSwgaW50IGxl
ZnQsIGludCB0b3AsIGludAogICAgICAgICAgICAgfQogCiAgICAgICAgICAgICBkaXJ0eUxheWVy
UmVjdC51bml0ZSh0aWxlLT5tX2RpcnR5UmVjdCk7Ci0gICAgICAgICAgICB0aWxlLT5jb3B5QW5k
Q2xlYXJEaXJ0eSgpOworICAgICAgICB9CisgICAgfQorCisgICAgLy8gRm9yIHRpbGVzIHRoYXQg
d2VyZSBub3QgY3VsbGVkLCB3ZSBhcmUgZ29pbmcgdG8gdXBkYXRlIHRoZSBhcmVhIGN1cnJlbnRs
eSBtYXJrZWQgYXMgZGlydHkuIFNvCisgICAgLy8gY2xlYXIgdGhhdCBkaXJ0eSBhcmVhIGFuZCBt
YXJrIGl0IGZvciB1cGRhdGUgaW5zdGVhZC4KKyAgICBmb3IgKGludCBqID0gdG9wOyBqIDw9IGJv
dHRvbTsgKytqKSB7CisgICAgICAgIGZvciAoaW50IGkgPSBsZWZ0OyBpIDw9IHJpZ2h0OyArK2kp
IHsKKyAgICAgICAgICAgIFVwZGF0YWJsZVRpbGUqIHRpbGUgPSB0aWxlQXQoaSwgaik7CisgICAg
ICAgICAgICBpZiAodGlsZS0+bV91cGRhdGVkKQorICAgICAgICAgICAgICAgIHRpbGUtPmNvcHlB
bmRDbGVhckRpcnR5KCk7CiAgICAgICAgIH0KICAgICB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL2NjL0NDVGlsZWRMYXllckltcGwuY3Bw
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vY2MvQ0NUaWxlZExh
eWVySW1wbC5jcHAKaW5kZXggM2Y3YjBiM2FjMjE5YTc2MDc3NWE1ZWJmMDAxOGRmZDg5NDIzNzc3
OS4uNDg5MWMxMGVjMDA4ZDI4YTMyNDFkMmIzZDgwZTBjYzAwYmU4ZDhlNCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vY2MvQ0NUaWxlZExheWVy
SW1wbC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0v
Y2MvQ0NUaWxlZExheWVySW1wbC5jcHAKQEAgLTk1LDYgKzk1LDExIEBAIGJvb2wgQ0NUaWxlZExh
eWVySW1wbDo6aGFzVGlsZUF0KGludCBpLCBpbnQgaikgY29uc3QKICAgICByZXR1cm4gbV90aWxl
ci0+dGlsZUF0KGksIGopOwogfQogCitib29sIENDVGlsZWRMYXllckltcGw6Omhhc1RleHR1cmVJ
ZEZvclRpbGVBdChpbnQgaSwgaW50IGopIGNvbnN0Cit7CisgICAgcmV0dXJuIGhhc1RpbGVBdChp
LCBqKSAmJiB0aWxlQXQoaSwgaiktPnRleHR1cmVJZCgpOworfQorCiBEcmF3YWJsZVRpbGUqIEND
VGlsZWRMYXllckltcGw6OnRpbGVBdChpbnQgaSwgaW50IGopIGNvbnN0CiB7CiAgICAgcmV0dXJu
IHN0YXRpY19jYXN0PERyYXdhYmxlVGlsZSo+KG1fdGlsZXItPnRpbGVBdChpLCBqKSk7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9jYy9DQ1Rp
bGVkTGF5ZXJJbXBsLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1
bS9jYy9DQ1RpbGVkTGF5ZXJJbXBsLmgKaW5kZXggMzBhNGFhNjM4ZmFlMjhhYjhiOTBmZDUxMGQ0
ZGY4ZWNjZGM4YWViYS4uNjhhMWRiMTQzOTBlNDU0YzJhMzAxNGZmYWQxMjYzYjJmZTgxOTdjYiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vY2Mv
Q0NUaWxlZExheWVySW1wbC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L2Nocm9taXVtL2NjL0NDVGlsZWRMYXllckltcGwuaApAQCAtNzUsNiArNzUsNyBAQCBwcm90ZWN0
ZWQ6CiAgICAgZXhwbGljaXQgQ0NUaWxlZExheWVySW1wbChpbnQgaWQpOwogICAgIC8vIEV4cG9z
ZWQgZm9yIHRlc3RpbmcuCiAgICAgYm9vbCBoYXNUaWxlQXQoaW50LCBpbnQpIGNvbnN0OworICAg
IGJvb2wgaGFzVGV4dHVyZUlkRm9yVGlsZUF0KGludCwgaW50KSBjb25zdDsKIAogICAgIHZpcnR1
YWwgVHJhbnNmb3JtYXRpb25NYXRyaXggcXVhZFRyYW5zZm9ybSgpIGNvbnN0OwogCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3Rlc3RzL1RpbGVkTGF5ZXJDaHJvbWl1bVRlc3Qu
Y3BwIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS90ZXN0cy9UaWxlZExheWVyQ2hyb21pdW1UZXN0
LmNwcAppbmRleCA5NGY5ZWI0ZDhhMjY2YjZhM2Y2M2Y3YmM5MDczMjI1Mjc0ZmE1YzFmLi44ZDFm
OWJhODUzY2RjYmRmODRjNTU2NjU3NTYxYjNjODY1ZGU1YWY2IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L2Nocm9taXVtL3Rlc3RzL1RpbGVkTGF5ZXJDaHJvbWl1bVRlc3QuY3BwCisrKyBiL1Nv
dXJjZS9XZWJLaXQvY2hyb21pdW0vdGVzdHMvVGlsZWRMYXllckNocm9taXVtVGVzdC5jcHAKQEAg
LTY5LDcgKzY5LDcgQEAgcHJpdmF0ZToKIAogY2xhc3MgRmFrZVRleHR1cmVBbGxvY2F0b3IgOiBw
dWJsaWMgVGV4dHVyZUFsbG9jYXRvciB7CiBwdWJsaWM6Ci0gICAgdmlydHVhbCB1bnNpZ25lZCBj
cmVhdGVUZXh0dXJlKGNvbnN0IEludFNpemUmLCBHQzNEZW51bSkgeyByZXR1cm4gMDsgfQorICAg
IHZpcnR1YWwgdW5zaWduZWQgY3JlYXRlVGV4dHVyZShjb25zdCBJbnRTaXplJiwgR0MzRGVudW0p
IHsgcmV0dXJuIDE7IH0KICAgICB2aXJ0dWFsIHZvaWQgZGVsZXRlVGV4dHVyZSh1bnNpZ25lZCwg
Y29uc3QgSW50U2l6ZSYsIEdDM0RlbnVtKSB7IH0KIH07CiAKQEAgLTg2LDcgKzg2LDEyIEBAIHB1
YmxpYzoKICAgICAgICAgfQogICAgICAgICB2aXJ0dWFsIH5UZXh0dXJlKCkgeyB9CiAKLSAgICAg
ICAgdmlydHVhbCB2b2lkIHVwZGF0ZVJlY3QoR3JhcGhpY3NDb250ZXh0M0QqLCBUZXh0dXJlQWxs
b2NhdG9yKiwgY29uc3QgSW50UmVjdCYsIGNvbnN0IEludFJlY3QmKSB7IG1fbGF5ZXItPnVwZGF0
ZVJlY3QoKTsgfQorICAgICAgICB2aXJ0dWFsIHZvaWQgdXBkYXRlUmVjdChHcmFwaGljc0NvbnRl
eHQzRCosIFRleHR1cmVBbGxvY2F0b3IqIGFsbG9jYXRvciwgY29uc3QgSW50UmVjdCYsIGNvbnN0
IEludFJlY3QmKQorICAgICAgICB7CisgICAgICAgICAgICBpZiAoYWxsb2NhdG9yKQorICAgICAg
ICAgICAgICAgIHRleHR1cmUoKS0+YWxsb2NhdGUoYWxsb2NhdG9yKTsKKyAgICAgICAgICAgIG1f
bGF5ZXItPnVwZGF0ZVJlY3QoKTsKKyAgICAgICAgfQogICAgICAgICB2aXJ0dWFsIHZvaWQgcHJl
cGFyZVJlY3QoY29uc3QgSW50UmVjdCYpIHsgbV9sYXllci0+cHJlcGFyZVJlY3QoKTsgfQogCiAg
ICAgcHJpdmF0ZToKQEAgLTE0NCwxMCArMTQ5LDggQEAgcHVibGljOgogICAgICAgICA6IENDVGls
ZWRMYXllckltcGwoaWQpIHsgfQogICAgIHZpcnR1YWwgfkZha2VDQ1RpbGVkTGF5ZXJJbXBsKCkg
eyB9CiAKLSAgICBib29sIGhhc1RpbGVBdChpbnQgaSwgaW50IGopCi0gICAgewotICAgICAgICBy
ZXR1cm4gQ0NUaWxlZExheWVySW1wbDo6aGFzVGlsZUF0KGksIGopOwotICAgIH0KKyAgICB1c2lu
ZyBDQ1RpbGVkTGF5ZXJJbXBsOjpoYXNUaWxlQXQ7CisgICAgdXNpbmcgQ0NUaWxlZExheWVySW1w
bDo6aGFzVGV4dHVyZUlkRm9yVGlsZUF0OwogfTsKIAogY2xhc3MgRmFrZVRpbGVkTGF5ZXJDaHJv
bWl1bSA6IHB1YmxpYyBUaWxlZExheWVyQ2hyb21pdW0gewpAQCAtNDM0LDYgKzQzNyw4OCBAQCBU
RVNUKFRpbGVkTGF5ZXJDaHJvbWl1bVRlc3QsIHB1c2hJZGxlUGFpbnRUaWxlcykKICAgICB9CiB9
CiAKK1RFU1QoVGlsZWRMYXllckNocm9taXVtVGVzdCwgcHVzaFRpbGVzQWZ0ZXJJZGxlUGFpbnRG
YWlsZWQpCit7CisgICAgT3duUHRyPFRleHR1cmVNYW5hZ2VyPiB0ZXh0dXJlTWFuYWdlciA9IFRl
eHR1cmVNYW5hZ2VyOjpjcmVhdGUoMTAyNCoxMDI0LCAxMDI0KjEwMjQsIDEwMjQpOworICAgIERl
YnVnU2NvcGVkU2V0SW1wbFRocmVhZCBpbXBsVGhyZWFkOworICAgIFJlZlB0cjxGYWtlVGlsZWRM
YXllckNocm9taXVtPiBsYXllcjEgPSBhZG9wdFJlZihuZXcgRmFrZVRpbGVkTGF5ZXJDaHJvbWl1
bSh0ZXh0dXJlTWFuYWdlci5nZXQoKSkpOworICAgIE93blB0cjxGYWtlQ0NUaWxlZExheWVySW1w
bD4gbGF5ZXJJbXBsMShhZG9wdFB0cihuZXcgRmFrZUNDVGlsZWRMYXllckltcGwoMCkpKTsKKyAg
ICBSZWZQdHI8RmFrZVRpbGVkTGF5ZXJDaHJvbWl1bT4gbGF5ZXIyID0gYWRvcHRSZWYobmV3IEZh
a2VUaWxlZExheWVyQ2hyb21pdW0odGV4dHVyZU1hbmFnZXIuZ2V0KCkpKTsKKyAgICBPd25QdHI8
RmFrZUNDVGlsZWRMYXllckltcGw+IGxheWVySW1wbDIoYWRvcHRQdHIobmV3IEZha2VDQ1RpbGVk
TGF5ZXJJbXBsKDApKSk7CisKKyAgICBGYWtlVGV4dHVyZUFsbG9jYXRvciB0ZXh0dXJlQWxsb2Nh
dG9yOworICAgIENDVGV4dHVyZVVwZGF0ZXIgdXBkYXRlcigmdGV4dHVyZUFsbG9jYXRvcik7CisK
KyAgICAvLyBGb3IgdGhpcyB0ZXN0IHdlIGhhdmUgdHdvIGxheWVycy4gbGF5ZXIxIGV4aGF1c3Rz
IG1vc3QgdGV4dHVyZSBtZW1vcnksIGxlYXZpbmcgcm9vbSBmb3IgMiBtb3JlIHRpbGVzIGZyb20K
KyAgICAvLyBsYXllcjIsIGJ1dCBub3QgYWxsIHRocmVlIHRpbGVzLiBGaXJzdCB3ZSBwYWludCBs
YXllcjEsIGFuZCBvbmUgdGlsZSBmcm9tIGxheWVyMi4gVGhlbiB3aGVuIHdlIGlkbGUgcGFpbnQK
KyAgICAvLyBsYXllcjIsIHdlIHdpbGwgZmFpbCBvbiB0aGUgdGhpcmQgdGlsZSBvZiBsYXllcjIs
IGFuZCB0aGlzIHNob3VsZCBub3QgbGVhdmUgdGhlIHNlY29uZCB0aWxlIGluIGEgYmFkIHN0YXRl
LgorCisgICAgLy8gVGhpcyByZXF1aXJlcyA0KjMwMDAwIGJ5dGVzIG9mIG1lbW9yeS4KKyAgICBJ
bnRSZWN0IGxheWVyMlJlY3QoMCwgMCwgMTAwLCAzMDApOworICAgIGxheWVyMi0+c2V0Qm91bmRz
KGxheWVyMlJlY3Quc2l6ZSgpKTsKKyAgICBsYXllcjItPnNldFZpc2libGVMYXllclJlY3QobGF5
ZXIyUmVjdCk7CisgICAgbGF5ZXIyLT5pbnZhbGlkYXRlUmVjdChsYXllcjJSZWN0KTsKKworICAg
IC8vIFRoaXMgdXNlcyA5NjAwMDAgYnl0ZXMsIGxlYXZpbmcgODg1NzYgYnl0ZXMgb2YgbWVtb3J5
IGxlZnQsIHdoaWNoIGlzIGVub3VnaCBmb3IgMiB0aWxlcyBvbmx5IGluIHRoZSBvdGhlciBsYXll
ci4KKyAgICBJbnRSZWN0IGxheWVyUmVjdChJbnRQb2ludDo6emVybygpLCBJbnRTaXplKDEwMCwg
MjQwMCkpOworICAgIGxheWVyMS0+c2V0Qm91bmRzKGxheWVyUmVjdC5zaXplKCkpOworICAgIGxh
eWVyMS0+c2V0VmlzaWJsZUxheWVyUmVjdChsYXllclJlY3QpOworICAgIGxheWVyMS0+aW52YWxp
ZGF0ZVJlY3QobGF5ZXJSZWN0KTsKKyAgICBsYXllcjEtPnByZXBhcmVUb1VwZGF0ZShsYXllclJl
Y3QsIDApOworCisgICAgLy8gUGFpbnQgYSBzaW5nbGUgdGlsZSBpbiBsYXllcjIgc28gdGhhdCBp
dCB3aWxsIGlkbGUgcGFpbnQuCisgICAgbGF5ZXIyLT5wcmVwYXJlVG9VcGRhdGUoSW50UmVjdCgw
LCAwLCAxMDAsIDEwMCksIDApOworCisgICAgLy8gV2Ugc2hvdWxkIG5lZWQgaWRsZS1wYWludGlu
ZyBmb3IgYm90aCByZW1haW5pbmcgdGlsZXMgaW4gbGF5ZXIyLgorICAgIEVYUEVDVF9UUlVFKGxh
eWVyMi0+bmVlZHNJZGxlUGFpbnQobGF5ZXIyUmVjdCkpOworCisgICAgLy8gQ29tbWl0IHRoZSBm
cmFtZSBvdmVyIHRvIGltcGwuCisgICAgbGF5ZXIxLT51cGRhdGVDb21wb3NpdG9yUmVzb3VyY2Vz
KDAsIHVwZGF0ZXIpOworICAgIGxheWVyMi0+dXBkYXRlQ29tcG9zaXRvclJlc291cmNlcygwLCB1
cGRhdGVyKTsKKyAgICB1cGRhdGVyLnVwZGF0ZSgwLCA1MDAwKTsKKyAgICBsYXllcjEtPnB1c2hQ
cm9wZXJ0aWVzVG8obGF5ZXJJbXBsMS5nZXQoKSk7CisgICAgbGF5ZXIyLT5wdXNoUHJvcGVydGll
c1RvKGxheWVySW1wbDIuZ2V0KCkpOworCisgICAgLy8gTm93IGlkbGUgcGFpbnQgbGF5ZXIyLiBX
ZSBhcmUgZ29pbmcgdG8gcnVuIG91dCBvZiBtZW1vcnkgdGhvdWdoIQorICAgIGxheWVyMi0+cHJl
cGFyZVRvVXBkYXRlKEludFJlY3QoMCwgMCwgMTAwLCAxMDApLCAwKTsKKyAgICBsYXllcjItPnBy
ZXBhcmVUb1VwZGF0ZUlkbGUobGF5ZXIyUmVjdCwgMCk7CisKKyAgICAvLyBPaCB3ZWxsLCBjb21t
aXQgdGhlIGZyYW1lIGFuZCBwdXNoLgorICAgIGxheWVyMS0+dXBkYXRlQ29tcG9zaXRvclJlc291
cmNlcygwLCB1cGRhdGVyKTsKKyAgICBsYXllcjItPnVwZGF0ZUNvbXBvc2l0b3JSZXNvdXJjZXMo
MCwgdXBkYXRlcik7CisgICAgdXBkYXRlci51cGRhdGUoMCwgNTAwMCk7CisgICAgbGF5ZXIxLT5w
dXNoUHJvcGVydGllc1RvKGxheWVySW1wbDEuZ2V0KCkpOworICAgIGxheWVyMi0+cHVzaFByb3Bl
cnRpZXNUbyhsYXllckltcGwyLmdldCgpKTsKKworICAgIC8vIFNhbml0eSBjaGVjaywgd2Ugc2hv
dWxkIGhhdmUgdGV4dHVyZXMgZm9yIHRoZSBiaWcgbGF5ZXIuCisgICAgRVhQRUNUX1RSVUUobGF5
ZXJJbXBsMS0+aGFzVGV4dHVyZUlkRm9yVGlsZUF0KDAsIDApKTsKKworICAgIC8vIFdlIHNob3Vs
ZCBvbmx5IGhhdmUgdGhlIGZpcnN0IHRpbGUgZnJvbSBsYXllcjIgc2luY2UgaXQgZmFpbGVkIHRv
IGlkbGUgdXBkYXRlLgorICAgIEVYUEVDVF9UUlVFKGxheWVySW1wbDItPmhhc1RpbGVBdCgwLCAw
KSk7CisgICAgRVhQRUNUX1RSVUUobGF5ZXJJbXBsMi0+aGFzVGV4dHVyZUlkRm9yVGlsZUF0KDAs
IDApKTsKKyAgICBFWFBFQ1RfRkFMU0UobGF5ZXJJbXBsMi0+aGFzVGlsZUF0KDAsIDEpKTsKKyAg
ICBFWFBFQ1RfRkFMU0UobGF5ZXJJbXBsMi0+aGFzVGlsZUF0KDAsIDIpKTsKKworICAgIC8vIE5v
dyBpZiBsYXllcjIgYmVjb21lcyBmdWxseSB2aXNpYmxlLCB3ZSBzaG91bGQgYmUgYWJsZSB0byBw
YWludCBpdCBhbmQgcHVzaCB2YWxpZCB0ZXh0dXJlcy4KKyAgICB0ZXh0dXJlTWFuYWdlci0+dW5w
cm90ZWN0QWxsVGV4dHVyZXMoKTsKKworICAgIGxheWVyMi0+cHJlcGFyZVRvVXBkYXRlKGxheWVy
MlJlY3QsIDApOworICAgIGxheWVyMS0+cHJlcGFyZVRvVXBkYXRlKEludFJlY3QoKSwgMCk7CisK
KyAgICBsYXllcjEtPnVwZGF0ZUNvbXBvc2l0b3JSZXNvdXJjZXMoMCwgdXBkYXRlcik7CisgICAg
bGF5ZXIyLT51cGRhdGVDb21wb3NpdG9yUmVzb3VyY2VzKDAsIHVwZGF0ZXIpOworICAgIHVwZGF0
ZXIudXBkYXRlKDAsIDUwMDApOworICAgIGxheWVyMS0+cHVzaFByb3BlcnRpZXNUbyhsYXllcklt
cGwxLmdldCgpKTsKKyAgICBsYXllcjItPnB1c2hQcm9wZXJ0aWVzVG8obGF5ZXJJbXBsMi5nZXQo
KSk7CisKKyAgICBFWFBFQ1RfVFJVRShsYXllckltcGwyLT5oYXNUaWxlQXQoMCwgMCkpOworICAg
IEVYUEVDVF9UUlVFKGxheWVySW1wbDItPmhhc1RpbGVBdCgwLCAxKSk7CisgICAgRVhQRUNUX1RS
VUUobGF5ZXJJbXBsMi0+aGFzVGlsZUF0KDAsIDIpKTsKKyAgICBFWFBFQ1RfVFJVRShsYXllcklt
cGwyLT5oYXNUZXh0dXJlSWRGb3JUaWxlQXQoMCwgMCkpOworICAgIEVYUEVDVF9UUlVFKGxheWVy
SW1wbDItPmhhc1RleHR1cmVJZEZvclRpbGVBdCgwLCAxKSk7CisgICAgRVhQRUNUX1RSVUUobGF5
ZXJJbXBsMi0+aGFzVGV4dHVyZUlkRm9yVGlsZUF0KDAsIDIpKTsKK30KKwogVEVTVChUaWxlZExh
eWVyQ2hyb21pdW1UZXN0LCBwdXNoSWRsZVBhaW50ZWRPY2NsdWRlZFRpbGVzKQogewogICAgIE93
blB0cjxUZXh0dXJlTWFuYWdlcj4gdGV4dHVyZU1hbmFnZXIgPSBUZXh0dXJlTWFuYWdlcjo6Y3Jl
YXRlKDQqMTAyNCoxMDI0LCAyKjEwMjQqMTAyNCwgMTAyNCk7Cg==
</data>

          </attachment>
      

    </bug>

</bugzilla>