<?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>81879</bug_id>
          
          <creation_ts>2012-03-22 00:35:30 -0700</creation_ts>
          <short_desc>[chromium] Target surface should be damaged for a new layers even when layer had no changes</short_desc>
          <delta_ts>2012-03-22 20:03:01 -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>Layout and Rendering</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="Shawn Singh">shawnsingh</reporter>
          <assigned_to name="Shawn Singh">shawnsingh</assigned_to>
          <cc>backer</cc>
    
    <cc>cc-bugs</cc>
    
    <cc>danakj</cc>
    
    <cc>dglazkov</cc>
    
    <cc>enne</cc>
    
    <cc>jamesr</cc>
    
    <cc>mmocny</cc>
    
    <cc>nduca</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>585029</commentid>
    <comment_count>0</comment_count>
    <who name="Shawn Singh">shawnsingh</who>
    <bug_when>2012-03-22 00:35:30 -0700</bug_when>
    <thetext>In the CCDamageTracker, if a new layer was added to contribute to a target surface, but the layer itself had no change, then it was not causing damage to the target surface.

I don&apos;t think this bug actually caused any of our known issues, but of course it should be fixed anyway.

Patch coming in a moment.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>585033</commentid>
    <comment_count>1</comment_count>
      <attachid>133200</attachid>
    <who name="Shawn Singh">shawnsingh</who>
    <bug_when>2012-03-22 00:43:17 -0700</bug_when>
    <thetext>Created attachment 133200
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>585045</commentid>
    <comment_count>2</comment_count>
      <attachid>133200</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-03-22 01:01:26 -0700</bug_when>
    <thetext>Comment on attachment 133200
Patch

Attachment 133200 did not pass chromium-ews (chromium-xvfb):
Output: http://queues.webkit.org/results/12072802</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>585202</commentid>
    <comment_count>3</comment_count>
    <who name="Michal Mocny">mmocny</who>
    <bug_when>2012-03-22 06:32:38 -0700</bug_when>
    <thetext>Shawn, I really doubt it will matter, but that patch of mine you tried would not have done anything without also applying https://chromiumcodereview.appspot.com/9699125/ to chrome.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>585204</commentid>
    <comment_count>4</comment_count>
    <who name="Dana Jansens">danakj</who>
    <bug_when>2012-03-22 06:36:55 -0700</bug_when>
    <thetext>Is this the iphone page bug?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>585208</commentid>
    <comment_count>5</comment_count>
    <who name="Michal Mocny">mmocny</who>
    <bug_when>2012-03-22 06:41:32 -0700</bug_when>
    <thetext>Dana: I dont think so, shawn found this while debugging that issue, but he seemed to think it didnt fix any known issues -- its just the right thing to do(TM).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>585377</commentid>
    <comment_count>6</comment_count>
      <attachid>133200</attachid>
    <who name="Adrienne Walker">enne</who>
    <bug_when>2012-03-22 09:32:11 -0700</bug_when>
    <thetext>Comment on attachment 133200
Patch

Out of curiosity, should getting a new parent or being assigned as a mask or replica layer cause &quot;layerPropertyHasChanged()&quot;?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>585513</commentid>
    <comment_count>7</comment_count>
    <who name="Shawn Singh">shawnsingh</who>
    <bug_when>2012-03-22 11:27:18 -0700</bug_when>
    <thetext>(In reply to comment #3)
&gt; Shawn, I really doubt it will matter, but that patch of mine you tried would not have done anything without also applying https://chromiumcodereview.appspot.com/9699125/ to chrome.

I guess this suggestion actually applies to http://code.google.com/p/chromium/issues/detail?id=119121 ?   OK, I&apos;ll try it... And thanks again for the offline discussion yesterday, very helpful.


(In reply to comment #4)
&gt; Is this the iphone page bug?

Nope - as mmocny@ pointed out already =)

(In reply to comment #6)
&gt; (From update of attachment 133200 [details])
&gt; Out of curiosity, should getting a new parent or being assigned as a mask or replica layer cause &quot;layerPropertyHasChanged()&quot;?

probably not, at least not any time soon.  Tree manipulations and mask/replica setting occurs during synchronizeTrees and (at least for now) it does that forcibly every time, even when it should not be considered a &quot;change&quot;.  We could conceivably catch these on the LayerChromium side in a later patch?  But I also feel that even if we did do that, this patch is still appropriate.  What do you think?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>585516</commentid>
    <comment_count>8</comment_count>
    <who name="Michal Mocny">mmocny</who>
    <bug_when>2012-03-22 11:29:21 -0700</bug_when>
    <thetext>Shawn, yes you are right, I meant to post that there.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>585520</commentid>
    <comment_count>9</comment_count>
    <who name="Dana Jansens">danakj</who>
    <bug_when>2012-03-22 11:30:17 -0700</bug_when>
    <thetext>&gt; (In reply to comment #6)
&gt; &gt; (From update of attachment 133200 [details] [details])
&gt; &gt; Out of curiosity, should getting a new parent or being assigned as a mask or replica layer cause &quot;layerPropertyHasChanged()&quot;?
&gt; 
&gt; probably not, at least not any time soon.  Tree manipulations and mask/replica setting occurs during synchronizeTrees and (at least for now) it does that forcibly every time, even when it should not be considered a &quot;change&quot;.  We could conceivably catch these on the LayerChromium side in a later patch?  But I also feel that even if we did do that, this patch is still appropriate.  What do you think?

I think you can if (parent != m_parent) the change. They are not set to 0 or anything AIUI.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>585529</commentid>
    <comment_count>10</comment_count>
    <who name="Shawn Singh">shawnsingh</who>
    <bug_when>2012-03-22 11:39:08 -0700</bug_when>
    <thetext>(In reply to comment #9)
&gt; &gt; (In reply to comment #6)
&gt; &gt; &gt; (From update of attachment 133200 [details] [details] [details])
&gt; &gt; &gt; Out of curiosity, should getting a new parent or being assigned as a mask or replica layer cause &quot;layerPropertyHasChanged()&quot;?
&gt; &gt; 
&gt; &gt; probably not, at least not any time soon.  Tree manipulations and mask/replica setting occurs during synchronizeTrees and (at least for now) it does that forcibly every time, even when it should not be considered a &quot;change&quot;.  We could conceivably catch these on the LayerChromium side in a later patch?  But I also feel that even if we did do that, this patch is still appropriate.  What do you think?
&gt; 
&gt; I think you can if (parent != m_parent) the change. They are not set to 0 or anything AIUI.


CCLayerImpl::removeFromParent() does set m_parent to 0   ... and personally I think that&apos;s desired behavior, anyway, when thinking about an API of adding/removing nodes from a tree in general.  The &quot;correct&quot; solution in my opinion is to make the tree synchronizer avoid unnecessary tree manipulations; but its unclear how hairy and tangled that will become.

uploading a new patch in a moment,,,</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>585531</commentid>
    <comment_count>11</comment_count>
    <who name="Dana Jansens">danakj</who>
    <bug_when>2012-03-22 11:40:50 -0700</bug_when>
    <thetext>(In reply to comment #10)
&gt; (In reply to comment #9)
&gt; &gt; &gt; (In reply to comment #6)
&gt; &gt; &gt; &gt; (From update of attachment 133200 [details] [details] [details] [details])
&gt; &gt; &gt; &gt; Out of curiosity, should getting a new parent or being assigned as a mask or replica layer cause &quot;layerPropertyHasChanged()&quot;?
&gt; &gt; &gt; 
&gt; &gt; &gt; probably not, at least not any time soon.  Tree manipulations and mask/replica setting occurs during synchronizeTrees and (at least for now) it does that forcibly every time, even when it should not be considered a &quot;change&quot;.  We could conceivably catch these on the LayerChromium side in a later patch?  But I also feel that even if we did do that, this patch is still appropriate.  What do you think?
&gt; &gt; 
&gt; &gt; I think you can if (parent != m_parent) the change. They are not set to 0 or anything AIUI.
&gt; 
&gt; 
&gt; CCLayerImpl::removeFromParent() does set m_parent to 0   ... and personally I think that&apos;s desired behavior, anyway, when thinking about an API of adding/removing nodes from a tree in general.  The &quot;correct&quot; solution in my opinion is to make the tree synchronizer avoid unnecessary tree manipulations; but its unclear how hairy and tangled that will become.

Oh! Oops sorry, bad memory.

&gt; uploading a new patch in a moment,,,</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>585533</commentid>
    <comment_count>12</comment_count>
      <attachid>133303</attachid>
    <who name="Shawn Singh">shawnsingh</who>
    <bug_when>2012-03-22 11:42:15 -0700</bug_when>
    <thetext>Created attachment 133303
Should build on linux now</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>585729</commentid>
    <comment_count>13</comment_count>
    <who name="James Robinson">jamesr</who>
    <bug_when>2012-03-22 14:50:56 -0700</bug_when>
    <thetext>I think if you want to know about tree structure changes on the impl side the right thing to do is to compare layer IDs before/after the sync. They IDs are persistent by design, but the TreeSynchronizer makes no attempt to preserve tree structure (I don&apos;t know of an efficient+simple way to do that).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>585794</commentid>
    <comment_count>14</comment_count>
    <who name="Shawn Singh">shawnsingh</who>
    <bug_when>2012-03-22 15:38:51 -0700</bug_when>
    <thetext>(In reply to comment #13)
&gt; I think if you want to know about tree structure changes on the impl side the right thing to do is to compare layer IDs before/after the sync. They IDs are persistent by design, but the TreeSynchronizer makes no attempt to preserve tree structure (I don&apos;t know of an efficient+simple way to do that).

(1) James and Enne, just for clarity to me... are you guys suggesting that we should consider doing that before this patch?  If so, I disagree.  The more I think about it now, I&apos;m not convinced we&apos;ll ever need to make layer properties as changed when the tree structure changes.  The damage tracker doesn&apos;t care about that, it only cares whether layers are &quot;new&quot;, &quot;disappeared&quot; or &quot;the layer is damaged&quot;, with respect to its target render surface.

(2) &quot;compare layer IDs before / after sync&quot; --&gt; are you suggesting that we look at how the layer ID changed from the &quot;before&quot; snapshot of the tree to the &quot;after&quot; snapshot of the tree?  How is that any less complex than detecting changes during tree synchronization?    On the other hand, if you mean that we compare layer IDs of the  host tree versus the impl tree, before synchronizing, and then mark the appropriate subtrees as &quot;changed&quot; ... that&apos;s is not too much different than simply makring layerChromiums as &quot;propertyChanged&quot; and propagating that to the impl side, except the latter would be simpler.

Thanks for all the feedback so far =)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>585915</commentid>
    <comment_count>15</comment_count>
      <attachid>133303</attachid>
    <who name="Adrienne Walker">enne</who>
    <bug_when>2012-03-22 17:39:18 -0700</bug_when>
    <thetext>Comment on attachment 133303
Should build on linux now

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

Yeah, I think this does end up being cleaner than marking properties on the layer as changing elsewhere.  R=me.

&gt; Source/WebKit/chromium/tests/CCDamageTrackerTest.cpp:380
&gt; +    ASSERT_EQ(static_cast&lt;size_t&gt;(3), root-&gt;renderSurface()-&gt;layerList().size());

You can just say &quot;3u&quot; here, if that&apos;s easier.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>585930</commentid>
    <comment_count>16</comment_count>
    <who name="Shawn Singh">shawnsingh</who>
    <bug_when>2012-03-22 17:53:39 -0700</bug_when>
    <thetext>Enne, if its OK with you I&apos;ll change the static_cast everywhere in CCDamageTrackerTest.cpp when landing.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>585931</commentid>
    <comment_count>17</comment_count>
    <who name="Adrienne Walker">enne</who>
    <bug_when>2012-03-22 17:54:31 -0700</bug_when>
    <thetext>(In reply to comment #16)
&gt; Enne, if its OK with you I&apos;ll change the static_cast everywhere in CCDamageTrackerTest.cpp when landing.

Sounds good!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>585945</commentid>
    <comment_count>18</comment_count>
      <attachid>133404</attachid>
    <who name="Shawn Singh">shawnsingh</who>
    <bug_when>2012-03-22 18:14:57 -0700</bug_when>
    <thetext>Created attachment 133404
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>586031</commentid>
    <comment_count>19</comment_count>
      <attachid>133404</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-03-22 20:02:56 -0700</bug_when>
    <thetext>Comment on attachment 133404
Patch for landing

Clearing flags on attachment: 133404

Committed r111817: &lt;http://trac.webkit.org/changeset/111817&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>586032</commentid>
    <comment_count>20</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-03-22 20:03:01 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>133200</attachid>
            <date>2012-03-22 00:43:17 -0700</date>
            <delta_ts>2012-03-22 11:42:11 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-81879-20120322004316.patch</filename>
            <type>text/plain</type>
            <size>9097</size>
            <attacher name="Shawn Singh">shawnsingh</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTExNTk1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggOGZkNDk1NGE5ZDM0YWY2
NzlhNjIzMzI5Y2EyMTVjZDU3ZTU1MTRmMi4uMWFjN2U0ZTg2YTc5ZDUzMjU5MzkxNGQ3YzZjOTMy
NzNkNWQwYTZlZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI2IEBACisyMDEyLTAzLTIyICBTaGF3
biBTaW5naCAgPHNoYXduc2luZ2hAY2hyb21pdW0ub3JnPgorCisgICAgICAgIFtjaHJvbWl1bV0g
VGFyZ2V0IHN1cmZhY2Ugc2hvdWxkIGJlIGRhbWFnZWQgZm9yIGEgbmV3IGxheWVycyBldmVuIHdo
ZW4gbGF5ZXIgaGFkIG5vIGNoYW5nZXMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTgxODc5CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BT
ISkuCisKKyAgICAgICAgVW5pdCB0ZXN0IGFkZGVkIHRvIENDRGFtYWdlVHJhY2tlclRlc3QuCisK
KyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9jYy9DQ0RhbWFnZVRyYWNrZXIu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6Q0NEYW1hZ2VUcmFja2VyOjpyZW1vdmVSZWN0RnJvbUN1
cnJlbnRGcmFtZSk6IGFkZGVkIGEKKyAgICAgICAgYm9vbGVhbiBhcmcgdG8gZGV0ZWN0IGlmIHRo
ZSBsYXllciBpcyBuZXcgb24gdGhpcyB1cGRhdGUuCisKKyAgICAgICAgKFdlYkNvcmU6OkNDRGFt
YWdlVHJhY2tlcjo6ZXh0ZW5kRGFtYWdlRm9yTGF5ZXIpOiBhZGRlZCBsb2dpYyB0aGF0CisgICAg
ICAgIGRhbWFnZXMgdGhlIHRhcmdldCBzdXJmYWNlIGlmIHRoZSBsYXllciBpcyBuZXcuCisKKyAg
ICAgICAgKFdlYkNvcmU6OkNDRGFtYWdlVHJhY2tlcjo6ZXh0ZW5kRGFtYWdlRm9yUmVuZGVyU3Vy
ZmFjZSk6IGFkZGVkCisgICAgICAgIGxvZ2ljIHRoYXQgZGFtYWdlcyB0aGUgdGFyZ2V0IHN1cmZh
Y2UgaWYgdGhlIGRlc2NlbmRhbnQgc3VyZmFjZSBpcworICAgICAgICBuZXc7IHNpbWlsYXIgbG9n
aWMgZm9yIHRoZSBzdXJmYWNlJ3MgcmVwbGljYSBpZiB0aGUgcmVwbGljYSBpcyBuZXcuCisKKyAg
ICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9jYy9DQ0RhbWFnZVRyYWNrZXIuaDoK
KyAgICAgICAgKENDRGFtYWdlVHJhY2tlcik6CisKIDIwMTItMDMtMjEgIFZzZXZvbG9kIFZsYXNv
diAgPHZzZXZpa0BjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgV2ViIEluc3BlY3RvcjogRXh0cmFj
dCBXZWJJbnNwZWN0b3IuVUlCcmVha3BvaW50IGZyb20gV2ViSW5zcGVjdG9yLkJyZWFrcG9pbnQu
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZyBiL1NvdXJjZS9X
ZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCmluZGV4IDRiMzgxOTZmMjZmODY5ZTIwM2RjMDYzMzMx
ZWYyZTgwNTNhNDM3MzQuLjAzMzIzNzg4NWI2MjhlNTQzMDA1ZjhjMzZkODRkZjQ5ZDEzOGU3YmIg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTQgQEAKKzIwMTItMDMtMjIg
IFNoYXduIFNpbmdoICA8c2hhd25zaW5naEBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgW2Nocm9t
aXVtXSBUYXJnZXQgc3VyZmFjZSBzaG91bGQgYmUgZGFtYWdlZCBmb3IgYSBuZXcgbGF5ZXJzIGV2
ZW4gd2hlbiBsYXllciBoYWQgbm8gY2hhbmdlcworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9ODE4NzkKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkg
KE9PUFMhKS4KKworICAgICAgICAqIHRlc3RzL0NDRGFtYWdlVHJhY2tlclRlc3QuY3BwOgorICAg
ICAgICAoV2ViS2l0VGVzdHM6OlRFU1RfRik6CisgICAgICAgIChXZWJLaXRUZXN0cyk6CisKIDIw
MTItMDMtMjEgIFRvbW15IFdpZGVuZmx5Y2h0ICA8dG9tbXl3QGdvb2dsZS5jb20+CiAKICAgICAg
ICAgW2Nocm9taXVtXSBNZWRpYVN0cmVhbSBBUEkgKEpTRVApOiBFbmhhbmNpbmcgV2ViTWVkaWFI
aW50cyBhbmQgV2ViSUNFT3B0aW9ucwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvY2hyb21pdW0vY2MvQ0NEYW1hZ2VUcmFja2VyLmNwcCBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL2NjL0NDRGFtYWdlVHJhY2tlci5jcHAKaW5k
ZXggOTZjNWE1ZTE4MjVjZmZmNDliZjkzY2M4NjE3NzJlYWY4ZjdlNzMwYy4uMGZlZTQ5ODY2M2Fm
ZTA2NmFjM2MxYTgzNDhlOGU0MDU2YzUzNGM2NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vY2MvQ0NEYW1hZ2VUcmFja2VyLmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9jYy9DQ0RhbWFnZVRyYWNr
ZXIuY3BwCkBAIC0xNDcsOSArMTQ3LDEwIEBAIHZvaWQgQ0NEYW1hZ2VUcmFja2VyOjp1cGRhdGVE
YW1hZ2VUcmFja2luZ1N0YXRlKGNvbnN0IFZlY3RvcjxDQ0xheWVySW1wbCo+JiBsYXllCiAgICAg
c3dhcChtX2N1cnJlbnRSZWN0SGlzdG9yeSwgbV9uZXh0UmVjdEhpc3RvcnkpOwogfQogCi1GbG9h
dFJlY3QgQ0NEYW1hZ2VUcmFja2VyOjpyZW1vdmVSZWN0RnJvbUN1cnJlbnRGcmFtZShpbnQgbGF5
ZXJJRCkKK0Zsb2F0UmVjdCBDQ0RhbWFnZVRyYWNrZXI6OnJlbW92ZVJlY3RGcm9tQ3VycmVudEZy
YW1lKGludCBsYXllcklELCBib29sJiBsYXllcklzTmV3KQogewotICAgIC8vIFRoaXMgZnVuY3Rp
b24gZXhpc3RzIG1haW5seSBmb3IgcmVhZGFiaWxpdHkgb2YgdGhlIGNvZGUuCisgICAgbGF5ZXJJ
c05ldyA9ICFtX2N1cnJlbnRSZWN0SGlzdG9yeS0+Y29udGFpbnMobGF5ZXJJRCk7CisKICAgICAv
LyB0YWtlKCkgd2lsbCByZW1vdmUgdGhlIGVudHJ5IGZyb20gdGhlIG1hcCwgb3IgaWYgbm90IGZv
dW5kLCByZXR1cm4gYSBkZWZhdWx0IChlbXB0eSkgcmVjdC4KICAgICByZXR1cm4gbV9jdXJyZW50
UmVjdEhpc3RvcnktPnRha2UobGF5ZXJJRCk7CiB9CkBAIC0yMjYsMTMgKzIyNywxNCBAQCB2b2lk
IENDRGFtYWdlVHJhY2tlcjo6ZXh0ZW5kRGFtYWdlRm9yTGF5ZXIoQ0NMYXllckltcGwqIGxheWVy
LCBGbG9hdFJlY3QmIHRhcmdldAogICAgIFRyYW5zZm9ybWF0aW9uTWF0cml4IG9yaWdpblRyYW5z
Zm9ybSA9IGxheWVyLT5kcmF3VHJhbnNmb3JtKCk7CiAgICAgb3JpZ2luVHJhbnNmb3JtLnRyYW5z
bGF0ZSgtMC41ICogbGF5ZXItPmJvdW5kcygpLndpZHRoKCksIC0wLjUgKiBsYXllci0+Ym91bmRz
KCkuaGVpZ2h0KCkpOwogCi0gICAgRmxvYXRSZWN0IG9sZExheWVyUmVjdCA9IHJlbW92ZVJlY3RG
cm9tQ3VycmVudEZyYW1lKGxheWVyLT5pZCgpKTsKKyAgICBib29sIGxheWVySXNOZXcgPSBmYWxz
ZTsKKyAgICBGbG9hdFJlY3Qgb2xkTGF5ZXJSZWN0ID0gcmVtb3ZlUmVjdEZyb21DdXJyZW50RnJh
bWUobGF5ZXItPmlkKCksIGxheWVySXNOZXcpOwogCiAgICAgRmxvYXRSZWN0IGxheWVyUmVjdElu
VGFyZ2V0U3BhY2UgPSBvcmlnaW5UcmFuc2Zvcm0ubWFwUmVjdChGbG9hdFJlY3QoRmxvYXRQb2lu
dDo6emVybygpLCBsYXllci0+Ym91bmRzKCkpKTsKICAgICBzYXZlUmVjdEZvck5leHRGcmFtZShs
YXllci0+aWQoKSwgbGF5ZXJSZWN0SW5UYXJnZXRTcGFjZSk7CiAKLSAgICBpZiAobGF5ZXItPmxh
eWVyUHJvcGVydHlDaGFuZ2VkKCkpIHsKLSAgICAgICAgLy8gSWYgYSBsYXllciBoYXMgY2hhbmdl
ZCwgdGhlbiBpdHMgZW50aXJlIGxheWVyIHJlY3QgYWZmZWN0cyB0aGUgdGFyZ2V0IHN1cmZhY2Uu
CisgICAgaWYgKGxheWVySXNOZXcgfHwgbGF5ZXItPmxheWVyUHJvcGVydHlDaGFuZ2VkKCkpIHsK
KyAgICAgICAgLy8gSWYgYSBsYXllciBpcyBuZXcgb3IgaGFzIGNoYW5nZWQsIHRoZW4gaXRzIGVu
dGlyZSBsYXllciByZWN0IGFmZmVjdHMgdGhlIHRhcmdldCBzdXJmYWNlLgogICAgICAgICB0YXJn
ZXREYW1hZ2VSZWN0LnVuaXRlSWZOb25aZXJvKGxheWVyUmVjdEluVGFyZ2V0U3BhY2UpOwogCiAg
ICAgICAgIC8vIFRoZSBsYXllcidzIG9sZCByZWdpb24gaXMgbm93IGV4cG9zZWQgb24gdGhlIHRh
cmdldCBzdXJmYWNlLCB0b28uCkBAIC0yNjIsMTMgKzI2NCwxNCBAQCB2b2lkIENDRGFtYWdlVHJh
Y2tlcjo6ZXh0ZW5kRGFtYWdlRm9yUmVuZGVyU3VyZmFjZShDQ0xheWVySW1wbCogbGF5ZXIsIEZs
b2F0UmVjdAogCiAgICAgQ0NSZW5kZXJTdXJmYWNlKiByZW5kZXJTdXJmYWNlID0gbGF5ZXItPnJl
bmRlclN1cmZhY2UoKTsKIAotICAgIEZsb2F0UmVjdCBvbGRTdXJmYWNlUmVjdCA9IHJlbW92ZVJl
Y3RGcm9tQ3VycmVudEZyYW1lKGxheWVyLT5pZCgpKTsKKyAgICBib29sIHN1cmZhY2VJc05ldyA9
IGZhbHNlOworICAgIEZsb2F0UmVjdCBvbGRTdXJmYWNlUmVjdCA9IHJlbW92ZVJlY3RGcm9tQ3Vy
cmVudEZyYW1lKGxheWVyLT5pZCgpLCBzdXJmYWNlSXNOZXcpOwogCiAgICAgRmxvYXRSZWN0IHN1
cmZhY2VSZWN0SW5UYXJnZXRTcGFjZSA9IHJlbmRlclN1cmZhY2UtPmRyYXdhYmxlQ29udGVudFJl
Y3QoKTsgLy8gYWxyZWFkeSBpbmNsdWRlcyByZXBsaWNhIGlmIGl0IGV4aXN0cy4KICAgICBzYXZl
UmVjdEZvck5leHRGcmFtZShsYXllci0+aWQoKSwgc3VyZmFjZVJlY3RJblRhcmdldFNwYWNlKTsK
IAogICAgIEZsb2F0UmVjdCBkYW1hZ2VSZWN0SW5Mb2NhbFNwYWNlOwotICAgIGlmIChyZW5kZXJT
dXJmYWNlLT5zdXJmYWNlUHJvcGVydHlDaGFuZ2VkKCkpIHsKKyAgICBpZiAoc3VyZmFjZUlzTmV3
IHx8IHJlbmRlclN1cmZhY2UtPnN1cmZhY2VQcm9wZXJ0eUNoYW5nZWQoKSkgewogICAgICAgICAv
LyBUaGUgZW50aXJlIHN1cmZhY2UgY29udHJpYnV0ZXMgZGFtYWdlLgogICAgICAgICBkYW1hZ2VS
ZWN0SW5Mb2NhbFNwYWNlID0gcmVuZGVyU3VyZmFjZS0+Y29udGVudFJlY3QoKTsKIApAQCAtMjk1
LDcgKzI5OCw4IEBAIHZvaWQgQ0NEYW1hZ2VUcmFja2VyOjpleHRlbmREYW1hZ2VGb3JSZW5kZXJT
dXJmYWNlKENDTGF5ZXJJbXBsKiBsYXllciwgRmxvYXRSZWN0CiAgICAgaWYgKGxheWVyLT5yZXBs
aWNhTGF5ZXIoKSAmJiBsYXllci0+cmVwbGljYUxheWVyKCktPm1hc2tMYXllcigpKSB7CiAgICAg
ICAgIENDTGF5ZXJJbXBsKiByZXBsaWNhTWFza0xheWVyID0gbGF5ZXItPnJlcGxpY2FMYXllcigp
LT5tYXNrTGF5ZXIoKTsKIAotICAgICAgICByZW1vdmVSZWN0RnJvbUN1cnJlbnRGcmFtZShyZXBs
aWNhTWFza0xheWVyLT5pZCgpKTsKKyAgICAgICAgYm9vbCByZXBsaWNhSXNOZXcgPSBmYWxzZTsK
KyAgICAgICAgcmVtb3ZlUmVjdEZyb21DdXJyZW50RnJhbWUocmVwbGljYU1hc2tMYXllci0+aWQo
KSwgcmVwbGljYUlzTmV3KTsKIAogICAgICAgICAvLyBDb21wdXRlIHRoZSByZXBsaWNhJ3MgIm9y
aWdpblRyYW5zZm9ybSIgdGhhdCBtYXBzIGZyb20gdGhlIHJlcGxpY2EncyBvcmlnaW4gc3BhY2Ug
dG8gdGhlIHRhcmdldCBzdXJmYWNlIG9yaWdpbiBzcGFjZS4KICAgICAgICAgVHJhbnNmb3JtYXRp
b25NYXRyaXggcmVwbGljYU9yaWdpblRyYW5zZm9ybSA9IGxheWVyLT5yZW5kZXJTdXJmYWNlKCkt
Pm9yaWdpblRyYW5zZm9ybSgpOwpAQCAtMzA3LDcgKzMxMSw3IEBAIHZvaWQgQ0NEYW1hZ2VUcmFj
a2VyOjpleHRlbmREYW1hZ2VGb3JSZW5kZXJTdXJmYWNlKENDTGF5ZXJJbXBsKiBsYXllciwgRmxv
YXRSZWN0CiAgICAgICAgIHNhdmVSZWN0Rm9yTmV4dEZyYW1lKHJlcGxpY2FNYXNrTGF5ZXItPmlk
KCksIHJlcGxpY2FNYXNrTGF5ZXJSZWN0KTsKIAogICAgICAgICAvLyBJbiB0aGUgY3VycmVudCBp
bXBsZW1lbnRhdGlvbiwgYSBjaGFuZ2UgaW4gdGhlIHJlcGxpY2EgbWFzayBkYW1hZ2VzIHRoZSBl
bnRpcmUgcmVwbGljYSByZWdpb24uCi0gICAgICAgIGlmIChyZXBsaWNhTWFza0xheWVyLT5sYXll
clByb3BlcnR5Q2hhbmdlZCgpIHx8ICFyZXBsaWNhTWFza0xheWVyLT51cGRhdGVSZWN0KCkuaXNF
bXB0eSgpKQorICAgICAgICBpZiAocmVwbGljYUlzTmV3IHx8IHJlcGxpY2FNYXNrTGF5ZXItPmxh
eWVyUHJvcGVydHlDaGFuZ2VkKCkgfHwgIXJlcGxpY2FNYXNrTGF5ZXItPnVwZGF0ZVJlY3QoKS5p
c0VtcHR5KCkpCiAgICAgICAgICAgICB0YXJnZXREYW1hZ2VSZWN0LnVuaXRlSWZOb25aZXJvKHJl
cGxpY2FNYXNrTGF5ZXJSZWN0KTsKICAgICB9CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9jYy9DQ0RhbWFnZVRyYWNrZXIuaCBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL2NjL0NDRGFtYWdlVHJhY2tlci5o
CmluZGV4IDdhNjI5YzQ3ODEyODFiZTRkZmExYzQ5ZGQxM2IxMWU0Zjk1NTBmNzYuLjZiODE5YTVi
M2FjODA3OTc3YWRkZWE4ODg3ZmY0YzhjZTI5MzIxYzQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL2NjL0NDRGFtYWdlVHJhY2tlci5oCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL2NjL0NDRGFtYWdlVHJh
Y2tlci5oCkBAIC01NCw3ICs1NCw3IEBAIHByaXZhdGU6CiAgICAgRmxvYXRSZWN0IHRyYWNrRGFt
YWdlRnJvbVN1cmZhY2VNYXNrKENDTGF5ZXJJbXBsKiB0YXJnZXRTdXJmYWNlTWFza0xheWVyKTsK
ICAgICBGbG9hdFJlY3QgdHJhY2tEYW1hZ2VGcm9tTGVmdG92ZXJSZWN0cygpOwogCi0gICAgRmxv
YXRSZWN0IHJlbW92ZVJlY3RGcm9tQ3VycmVudEZyYW1lKGludCBsYXllcklEKTsKKyAgICBGbG9h
dFJlY3QgcmVtb3ZlUmVjdEZyb21DdXJyZW50RnJhbWUoaW50IGxheWVySUQsIGJvb2wmIGxheWVy
SXNOZXcpOwogICAgIHZvaWQgc2F2ZVJlY3RGb3JOZXh0RnJhbWUoaW50IGxheWVySUQsIGNvbnN0
IEZsb2F0UmVjdCYgdGFyZ2V0U3BhY2VSZWN0KTsKIAogICAgIC8vIFRoZXNlIGhlbHBlciBmdW5j
dGlvbnMgYXJlIHVzZWQgb25seSBpbiB0cmFja0RhbWFnZUZyb21BY3RpdmVMYXllcnMoKS4KZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vdGVzdHMvQ0NEYW1hZ2VUcmFja2VyVGVz
dC5jcHAgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3Rlc3RzL0NDRGFtYWdlVHJhY2tlclRlc3Qu
Y3BwCmluZGV4IDc0ZDYzNWI0MGQ3MTc1MzBkNzZiOWM4MjQ0NGJjNmRiMmQ3MzQxYjkuLjI3NWQ4
NjI2ZDI2ZDkzZjdmNDRlNmVkOGVlNDk0OWEyYjNhNzlkMzggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvY2hyb21pdW0vdGVzdHMvQ0NEYW1hZ2VUcmFja2VyVGVzdC5jcHAKKysrIGIvU291cmNl
L1dlYktpdC9jaHJvbWl1bS90ZXN0cy9DQ0RhbWFnZVRyYWNrZXJUZXN0LmNwcApAQCAtMzUzLDYg
KzM1MywzNyBAQCBURVNUX0YoQ0NEYW1hZ2VUcmFja2VyVGVzdCwgdmVyaWZ5RGFtYWdlRm9yQWRk
aW5nQW5kUmVtb3ZpbmdMYXllcikKICAgICBFWFBFQ1RfRkxPQVRfUkVDVF9FUShGbG9hdFJlY3Qo
MTAwLCAxMDAsIDMwLCAzMCksIHJvb3REYW1hZ2VSZWN0KTsKIH0KIAorVEVTVF9GKENDRGFtYWdl
VHJhY2tlclRlc3QsIHZlcmlmeURhbWFnZUZvck5ld1VuY2hhbmdlZExheWVyKQoreworICAgIC8v
IElmIGNoaWxkMiBpcyBhZGRlZCB0byB0aGUgbGF5ZXIgdHJlZSwgYnV0IGl0IGRvZXNuJ3QgaGF2
ZSBhbnkgZXhwbGljaXQgZGFtYWdlIG9mCisgICAgLy8gaXRzIG93biwgaXQgc2hvdWxkIHN0aWxs
IGluZGVlZCBkYW1hZ2UgdGhlIHRhcmdldCBzdXJmYWNlLgorCisgICAgT3duUHRyPENDTGF5ZXJJ
bXBsPiByb290ID0gY3JlYXRlQW5kU2V0VXBUZXN0VHJlZVdpdGhPbmVTdXJmYWNlKCk7CisgICAg
Q0NMYXllckltcGwqIGNoaWxkMSA9IHJvb3QtPmNoaWxkcmVuKClbMF0uZ2V0KCk7CisKKyAgICB7
CisgICAgICAgIE93blB0cjxDQ0xheWVySW1wbD4gY2hpbGQyID0gQ0NMYXllckltcGw6OmNyZWF0
ZSgzKTsKKyAgICAgICAgY2hpbGQyLT5zZXRQb3NpdGlvbihGbG9hdFBvaW50KDQwMCwgMzgwKSk7
CisgICAgICAgIGNoaWxkMi0+c2V0QW5jaG9yUG9pbnQoRmxvYXRQb2ludDo6emVybygpKTsKKyAg
ICAgICAgY2hpbGQyLT5zZXRCb3VuZHMoSW50U2l6ZSg2LCA4KSk7CisgICAgICAgIGNoaWxkMi0+
c2V0RHJhd3NDb250ZW50KHRydWUpOworICAgICAgICBjaGlsZDItPnJlc2V0QWxsQ2hhbmdlVHJh
Y2tpbmdGb3JTdWJ0cmVlKCk7CisgICAgICAgIC8vIFNhbml0eSBjaGVjayB0aGUgaW5pdGlhbCBj
b25kaXRpb25zIG9mIHRoZSB0ZXN0LCBpZiB0aGVzZSBhc3NlcnRzIHRyaWdnZXIsIGl0CisgICAg
ICAgIC8vIG1lYW5zIHRoZSB0ZXN0IG5vIGxvbmdlciBhY3R1YWxseSBjb3ZlcnMgdGhlIGludGVu
ZGVkIHNjZW5hcmlvLgorICAgICAgICBBU1NFUlRfRkFMU0UoY2hpbGQyLT5sYXllclByb3BlcnR5
Q2hhbmdlZCgpKTsKKyAgICAgICAgQVNTRVJUX1RSVUUoY2hpbGQyLT51cGRhdGVSZWN0KCkuaXNF
bXB0eSgpKTsKKyAgICAgICAgcm9vdC0+YWRkQ2hpbGQoY2hpbGQyLnJlbGVhc2UoKSk7CisgICAg
fQorCisgICAgZW11bGF0ZURyYXdpbmdPbmVGcmFtZShyb290LmdldCgpKTsKKworICAgIC8vIFNh
bml0eSBjaGVjayAtIGFsbCAzIGxheWVycyBzaG91bGQgYmUgb24gdGhlIHNhbWUgcmVuZGVyIHN1
cmZhY2U7IHJlbmRlciBzdXJmYWNlcyBhcmUgdGVzdGVkIGVsc2V3aGVyZS4KKyAgICBBU1NFUlRf
RVEoc3RhdGljX2Nhc3Q8c2l6ZV90PigzKSwgcm9vdC0+cmVuZGVyU3VyZmFjZSgpLT5sYXllckxp
c3QoKS5zaXplKCkpOworCisgICAgRmxvYXRSZWN0IHJvb3REYW1hZ2VSZWN0ID0gcm9vdC0+cmVu
ZGVyU3VyZmFjZSgpLT5kYW1hZ2VUcmFja2VyKCktPmN1cnJlbnREYW1hZ2VSZWN0KCk7CisgICAg
RVhQRUNUX0ZMT0FUX1JFQ1RfRVEoRmxvYXRSZWN0KDQwMCwgMzgwLCA2LCA4KSwgcm9vdERhbWFn
ZVJlY3QpOworfQorCiBURVNUX0YoQ0NEYW1hZ2VUcmFja2VyVGVzdCwgdmVyaWZ5RGFtYWdlRm9y
TXVsdGlwbGVMYXllcnMpCiB7CiAgICAgT3duUHRyPENDTGF5ZXJJbXBsPiByb290ID0gY3JlYXRl
QW5kU2V0VXBUZXN0VHJlZVdpdGhPbmVTdXJmYWNlKCk7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>133303</attachid>
            <date>2012-03-22 11:42:15 -0700</date>
            <delta_ts>2012-03-22 18:14:52 -0700</delta_ts>
            <desc>Should build on linux now</desc>
            <filename>bug-81879-20120322114214.patch</filename>
            <type>text/plain</type>
            <size>9043</size>
            <attacher name="Shawn Singh">shawnsingh</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTExNTk1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggOGZkNDk1NGE5ZDM0YWY2
NzlhNjIzMzI5Y2EyMTVjZDU3ZTU1MTRmMi4uMWFjN2U0ZTg2YTc5ZDUzMjU5MzkxNGQ3YzZjOTMy
NzNkNWQwYTZlZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI2IEBACisyMDEyLTAzLTIyICBTaGF3
biBTaW5naCAgPHNoYXduc2luZ2hAY2hyb21pdW0ub3JnPgorCisgICAgICAgIFtjaHJvbWl1bV0g
VGFyZ2V0IHN1cmZhY2Ugc2hvdWxkIGJlIGRhbWFnZWQgZm9yIGEgbmV3IGxheWVycyBldmVuIHdo
ZW4gbGF5ZXIgaGFkIG5vIGNoYW5nZXMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTgxODc5CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BT
ISkuCisKKyAgICAgICAgVW5pdCB0ZXN0IGFkZGVkIHRvIENDRGFtYWdlVHJhY2tlclRlc3QuCisK
KyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9jYy9DQ0RhbWFnZVRyYWNrZXIu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6Q0NEYW1hZ2VUcmFja2VyOjpyZW1vdmVSZWN0RnJvbUN1
cnJlbnRGcmFtZSk6IGFkZGVkIGEKKyAgICAgICAgYm9vbGVhbiBhcmcgdG8gZGV0ZWN0IGlmIHRo
ZSBsYXllciBpcyBuZXcgb24gdGhpcyB1cGRhdGUuCisKKyAgICAgICAgKFdlYkNvcmU6OkNDRGFt
YWdlVHJhY2tlcjo6ZXh0ZW5kRGFtYWdlRm9yTGF5ZXIpOiBhZGRlZCBsb2dpYyB0aGF0CisgICAg
ICAgIGRhbWFnZXMgdGhlIHRhcmdldCBzdXJmYWNlIGlmIHRoZSBsYXllciBpcyBuZXcuCisKKyAg
ICAgICAgKFdlYkNvcmU6OkNDRGFtYWdlVHJhY2tlcjo6ZXh0ZW5kRGFtYWdlRm9yUmVuZGVyU3Vy
ZmFjZSk6IGFkZGVkCisgICAgICAgIGxvZ2ljIHRoYXQgZGFtYWdlcyB0aGUgdGFyZ2V0IHN1cmZh
Y2UgaWYgdGhlIGRlc2NlbmRhbnQgc3VyZmFjZSBpcworICAgICAgICBuZXc7IHNpbWlsYXIgbG9n
aWMgZm9yIHRoZSBzdXJmYWNlJ3MgcmVwbGljYSBpZiB0aGUgcmVwbGljYSBpcyBuZXcuCisKKyAg
ICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9jYy9DQ0RhbWFnZVRyYWNrZXIuaDoK
KyAgICAgICAgKENDRGFtYWdlVHJhY2tlcik6CisKIDIwMTItMDMtMjEgIFZzZXZvbG9kIFZsYXNv
diAgPHZzZXZpa0BjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgV2ViIEluc3BlY3RvcjogRXh0cmFj
dCBXZWJJbnNwZWN0b3IuVUlCcmVha3BvaW50IGZyb20gV2ViSW5zcGVjdG9yLkJyZWFrcG9pbnQu
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZyBiL1NvdXJjZS9X
ZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCmluZGV4IDRiMzgxOTZmMjZmODY5ZTIwM2RjMDYzMzMx
ZWYyZTgwNTNhNDM3MzQuLjAzMzIzNzg4NWI2MjhlNTQzMDA1ZjhjMzZkODRkZjQ5ZDEzOGU3YmIg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTQgQEAKKzIwMTItMDMtMjIg
IFNoYXduIFNpbmdoICA8c2hhd25zaW5naEBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgW2Nocm9t
aXVtXSBUYXJnZXQgc3VyZmFjZSBzaG91bGQgYmUgZGFtYWdlZCBmb3IgYSBuZXcgbGF5ZXJzIGV2
ZW4gd2hlbiBsYXllciBoYWQgbm8gY2hhbmdlcworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9ODE4NzkKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkg
KE9PUFMhKS4KKworICAgICAgICAqIHRlc3RzL0NDRGFtYWdlVHJhY2tlclRlc3QuY3BwOgorICAg
ICAgICAoV2ViS2l0VGVzdHM6OlRFU1RfRik6CisgICAgICAgIChXZWJLaXRUZXN0cyk6CisKIDIw
MTItMDMtMjEgIFRvbW15IFdpZGVuZmx5Y2h0ICA8dG9tbXl3QGdvb2dsZS5jb20+CiAKICAgICAg
ICAgW2Nocm9taXVtXSBNZWRpYVN0cmVhbSBBUEkgKEpTRVApOiBFbmhhbmNpbmcgV2ViTWVkaWFI
aW50cyBhbmQgV2ViSUNFT3B0aW9ucwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvY2hyb21pdW0vY2MvQ0NEYW1hZ2VUcmFja2VyLmNwcCBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL2NjL0NDRGFtYWdlVHJhY2tlci5jcHAKaW5k
ZXggOTZjNWE1ZTE4MjVjZmZmNDliZjkzY2M4NjE3NzJlYWY4ZjdlNzMwYy4uMGZlZTQ5ODY2M2Fm
ZTA2NmFjM2MxYTgzNDhlOGU0MDU2YzUzNGM2NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vY2MvQ0NEYW1hZ2VUcmFja2VyLmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9jYy9DQ0RhbWFnZVRyYWNr
ZXIuY3BwCkBAIC0xNDcsOSArMTQ3LDEwIEBAIHZvaWQgQ0NEYW1hZ2VUcmFja2VyOjp1cGRhdGVE
YW1hZ2VUcmFja2luZ1N0YXRlKGNvbnN0IFZlY3RvcjxDQ0xheWVySW1wbCo+JiBsYXllCiAgICAg
c3dhcChtX2N1cnJlbnRSZWN0SGlzdG9yeSwgbV9uZXh0UmVjdEhpc3RvcnkpOwogfQogCi1GbG9h
dFJlY3QgQ0NEYW1hZ2VUcmFja2VyOjpyZW1vdmVSZWN0RnJvbUN1cnJlbnRGcmFtZShpbnQgbGF5
ZXJJRCkKK0Zsb2F0UmVjdCBDQ0RhbWFnZVRyYWNrZXI6OnJlbW92ZVJlY3RGcm9tQ3VycmVudEZy
YW1lKGludCBsYXllcklELCBib29sJiBsYXllcklzTmV3KQogewotICAgIC8vIFRoaXMgZnVuY3Rp
b24gZXhpc3RzIG1haW5seSBmb3IgcmVhZGFiaWxpdHkgb2YgdGhlIGNvZGUuCisgICAgbGF5ZXJJ
c05ldyA9ICFtX2N1cnJlbnRSZWN0SGlzdG9yeS0+Y29udGFpbnMobGF5ZXJJRCk7CisKICAgICAv
LyB0YWtlKCkgd2lsbCByZW1vdmUgdGhlIGVudHJ5IGZyb20gdGhlIG1hcCwgb3IgaWYgbm90IGZv
dW5kLCByZXR1cm4gYSBkZWZhdWx0IChlbXB0eSkgcmVjdC4KICAgICByZXR1cm4gbV9jdXJyZW50
UmVjdEhpc3RvcnktPnRha2UobGF5ZXJJRCk7CiB9CkBAIC0yMjYsMTMgKzIyNywxNCBAQCB2b2lk
IENDRGFtYWdlVHJhY2tlcjo6ZXh0ZW5kRGFtYWdlRm9yTGF5ZXIoQ0NMYXllckltcGwqIGxheWVy
LCBGbG9hdFJlY3QmIHRhcmdldAogICAgIFRyYW5zZm9ybWF0aW9uTWF0cml4IG9yaWdpblRyYW5z
Zm9ybSA9IGxheWVyLT5kcmF3VHJhbnNmb3JtKCk7CiAgICAgb3JpZ2luVHJhbnNmb3JtLnRyYW5z
bGF0ZSgtMC41ICogbGF5ZXItPmJvdW5kcygpLndpZHRoKCksIC0wLjUgKiBsYXllci0+Ym91bmRz
KCkuaGVpZ2h0KCkpOwogCi0gICAgRmxvYXRSZWN0IG9sZExheWVyUmVjdCA9IHJlbW92ZVJlY3RG
cm9tQ3VycmVudEZyYW1lKGxheWVyLT5pZCgpKTsKKyAgICBib29sIGxheWVySXNOZXcgPSBmYWxz
ZTsKKyAgICBGbG9hdFJlY3Qgb2xkTGF5ZXJSZWN0ID0gcmVtb3ZlUmVjdEZyb21DdXJyZW50RnJh
bWUobGF5ZXItPmlkKCksIGxheWVySXNOZXcpOwogCiAgICAgRmxvYXRSZWN0IGxheWVyUmVjdElu
VGFyZ2V0U3BhY2UgPSBvcmlnaW5UcmFuc2Zvcm0ubWFwUmVjdChGbG9hdFJlY3QoRmxvYXRQb2lu
dDo6emVybygpLCBsYXllci0+Ym91bmRzKCkpKTsKICAgICBzYXZlUmVjdEZvck5leHRGcmFtZShs
YXllci0+aWQoKSwgbGF5ZXJSZWN0SW5UYXJnZXRTcGFjZSk7CiAKLSAgICBpZiAobGF5ZXItPmxh
eWVyUHJvcGVydHlDaGFuZ2VkKCkpIHsKLSAgICAgICAgLy8gSWYgYSBsYXllciBoYXMgY2hhbmdl
ZCwgdGhlbiBpdHMgZW50aXJlIGxheWVyIHJlY3QgYWZmZWN0cyB0aGUgdGFyZ2V0IHN1cmZhY2Uu
CisgICAgaWYgKGxheWVySXNOZXcgfHwgbGF5ZXItPmxheWVyUHJvcGVydHlDaGFuZ2VkKCkpIHsK
KyAgICAgICAgLy8gSWYgYSBsYXllciBpcyBuZXcgb3IgaGFzIGNoYW5nZWQsIHRoZW4gaXRzIGVu
dGlyZSBsYXllciByZWN0IGFmZmVjdHMgdGhlIHRhcmdldCBzdXJmYWNlLgogICAgICAgICB0YXJn
ZXREYW1hZ2VSZWN0LnVuaXRlSWZOb25aZXJvKGxheWVyUmVjdEluVGFyZ2V0U3BhY2UpOwogCiAg
ICAgICAgIC8vIFRoZSBsYXllcidzIG9sZCByZWdpb24gaXMgbm93IGV4cG9zZWQgb24gdGhlIHRh
cmdldCBzdXJmYWNlLCB0b28uCkBAIC0yNjIsMTMgKzI2NCwxNCBAQCB2b2lkIENDRGFtYWdlVHJh
Y2tlcjo6ZXh0ZW5kRGFtYWdlRm9yUmVuZGVyU3VyZmFjZShDQ0xheWVySW1wbCogbGF5ZXIsIEZs
b2F0UmVjdAogCiAgICAgQ0NSZW5kZXJTdXJmYWNlKiByZW5kZXJTdXJmYWNlID0gbGF5ZXItPnJl
bmRlclN1cmZhY2UoKTsKIAotICAgIEZsb2F0UmVjdCBvbGRTdXJmYWNlUmVjdCA9IHJlbW92ZVJl
Y3RGcm9tQ3VycmVudEZyYW1lKGxheWVyLT5pZCgpKTsKKyAgICBib29sIHN1cmZhY2VJc05ldyA9
IGZhbHNlOworICAgIEZsb2F0UmVjdCBvbGRTdXJmYWNlUmVjdCA9IHJlbW92ZVJlY3RGcm9tQ3Vy
cmVudEZyYW1lKGxheWVyLT5pZCgpLCBzdXJmYWNlSXNOZXcpOwogCiAgICAgRmxvYXRSZWN0IHN1
cmZhY2VSZWN0SW5UYXJnZXRTcGFjZSA9IHJlbmRlclN1cmZhY2UtPmRyYXdhYmxlQ29udGVudFJl
Y3QoKTsgLy8gYWxyZWFkeSBpbmNsdWRlcyByZXBsaWNhIGlmIGl0IGV4aXN0cy4KICAgICBzYXZl
UmVjdEZvck5leHRGcmFtZShsYXllci0+aWQoKSwgc3VyZmFjZVJlY3RJblRhcmdldFNwYWNlKTsK
IAogICAgIEZsb2F0UmVjdCBkYW1hZ2VSZWN0SW5Mb2NhbFNwYWNlOwotICAgIGlmIChyZW5kZXJT
dXJmYWNlLT5zdXJmYWNlUHJvcGVydHlDaGFuZ2VkKCkpIHsKKyAgICBpZiAoc3VyZmFjZUlzTmV3
IHx8IHJlbmRlclN1cmZhY2UtPnN1cmZhY2VQcm9wZXJ0eUNoYW5nZWQoKSkgewogICAgICAgICAv
LyBUaGUgZW50aXJlIHN1cmZhY2UgY29udHJpYnV0ZXMgZGFtYWdlLgogICAgICAgICBkYW1hZ2VS
ZWN0SW5Mb2NhbFNwYWNlID0gcmVuZGVyU3VyZmFjZS0+Y29udGVudFJlY3QoKTsKIApAQCAtMjk1
LDcgKzI5OCw4IEBAIHZvaWQgQ0NEYW1hZ2VUcmFja2VyOjpleHRlbmREYW1hZ2VGb3JSZW5kZXJT
dXJmYWNlKENDTGF5ZXJJbXBsKiBsYXllciwgRmxvYXRSZWN0CiAgICAgaWYgKGxheWVyLT5yZXBs
aWNhTGF5ZXIoKSAmJiBsYXllci0+cmVwbGljYUxheWVyKCktPm1hc2tMYXllcigpKSB7CiAgICAg
ICAgIENDTGF5ZXJJbXBsKiByZXBsaWNhTWFza0xheWVyID0gbGF5ZXItPnJlcGxpY2FMYXllcigp
LT5tYXNrTGF5ZXIoKTsKIAotICAgICAgICByZW1vdmVSZWN0RnJvbUN1cnJlbnRGcmFtZShyZXBs
aWNhTWFza0xheWVyLT5pZCgpKTsKKyAgICAgICAgYm9vbCByZXBsaWNhSXNOZXcgPSBmYWxzZTsK
KyAgICAgICAgcmVtb3ZlUmVjdEZyb21DdXJyZW50RnJhbWUocmVwbGljYU1hc2tMYXllci0+aWQo
KSwgcmVwbGljYUlzTmV3KTsKIAogICAgICAgICAvLyBDb21wdXRlIHRoZSByZXBsaWNhJ3MgIm9y
aWdpblRyYW5zZm9ybSIgdGhhdCBtYXBzIGZyb20gdGhlIHJlcGxpY2EncyBvcmlnaW4gc3BhY2Ug
dG8gdGhlIHRhcmdldCBzdXJmYWNlIG9yaWdpbiBzcGFjZS4KICAgICAgICAgVHJhbnNmb3JtYXRp
b25NYXRyaXggcmVwbGljYU9yaWdpblRyYW5zZm9ybSA9IGxheWVyLT5yZW5kZXJTdXJmYWNlKCkt
Pm9yaWdpblRyYW5zZm9ybSgpOwpAQCAtMzA3LDcgKzMxMSw3IEBAIHZvaWQgQ0NEYW1hZ2VUcmFj
a2VyOjpleHRlbmREYW1hZ2VGb3JSZW5kZXJTdXJmYWNlKENDTGF5ZXJJbXBsKiBsYXllciwgRmxv
YXRSZWN0CiAgICAgICAgIHNhdmVSZWN0Rm9yTmV4dEZyYW1lKHJlcGxpY2FNYXNrTGF5ZXItPmlk
KCksIHJlcGxpY2FNYXNrTGF5ZXJSZWN0KTsKIAogICAgICAgICAvLyBJbiB0aGUgY3VycmVudCBp
bXBsZW1lbnRhdGlvbiwgYSBjaGFuZ2UgaW4gdGhlIHJlcGxpY2EgbWFzayBkYW1hZ2VzIHRoZSBl
bnRpcmUgcmVwbGljYSByZWdpb24uCi0gICAgICAgIGlmIChyZXBsaWNhTWFza0xheWVyLT5sYXll
clByb3BlcnR5Q2hhbmdlZCgpIHx8ICFyZXBsaWNhTWFza0xheWVyLT51cGRhdGVSZWN0KCkuaXNF
bXB0eSgpKQorICAgICAgICBpZiAocmVwbGljYUlzTmV3IHx8IHJlcGxpY2FNYXNrTGF5ZXItPmxh
eWVyUHJvcGVydHlDaGFuZ2VkKCkgfHwgIXJlcGxpY2FNYXNrTGF5ZXItPnVwZGF0ZVJlY3QoKS5p
c0VtcHR5KCkpCiAgICAgICAgICAgICB0YXJnZXREYW1hZ2VSZWN0LnVuaXRlSWZOb25aZXJvKHJl
cGxpY2FNYXNrTGF5ZXJSZWN0KTsKICAgICB9CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9jYy9DQ0RhbWFnZVRyYWNrZXIuaCBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL2NjL0NDRGFtYWdlVHJhY2tlci5o
CmluZGV4IDdhNjI5YzQ3ODEyODFiZTRkZmExYzQ5ZGQxM2IxMWU0Zjk1NTBmNzYuLjZiODE5YTVi
M2FjODA3OTc3YWRkZWE4ODg3ZmY0YzhjZTI5MzIxYzQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL2NjL0NDRGFtYWdlVHJhY2tlci5oCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL2NjL0NDRGFtYWdlVHJh
Y2tlci5oCkBAIC01NCw3ICs1NCw3IEBAIHByaXZhdGU6CiAgICAgRmxvYXRSZWN0IHRyYWNrRGFt
YWdlRnJvbVN1cmZhY2VNYXNrKENDTGF5ZXJJbXBsKiB0YXJnZXRTdXJmYWNlTWFza0xheWVyKTsK
ICAgICBGbG9hdFJlY3QgdHJhY2tEYW1hZ2VGcm9tTGVmdG92ZXJSZWN0cygpOwogCi0gICAgRmxv
YXRSZWN0IHJlbW92ZVJlY3RGcm9tQ3VycmVudEZyYW1lKGludCBsYXllcklEKTsKKyAgICBGbG9h
dFJlY3QgcmVtb3ZlUmVjdEZyb21DdXJyZW50RnJhbWUoaW50IGxheWVySUQsIGJvb2wmIGxheWVy
SXNOZXcpOwogICAgIHZvaWQgc2F2ZVJlY3RGb3JOZXh0RnJhbWUoaW50IGxheWVySUQsIGNvbnN0
IEZsb2F0UmVjdCYgdGFyZ2V0U3BhY2VSZWN0KTsKIAogICAgIC8vIFRoZXNlIGhlbHBlciBmdW5j
dGlvbnMgYXJlIHVzZWQgb25seSBpbiB0cmFja0RhbWFnZUZyb21BY3RpdmVMYXllcnMoKS4KZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vdGVzdHMvQ0NEYW1hZ2VUcmFja2VyVGVz
dC5jcHAgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3Rlc3RzL0NDRGFtYWdlVHJhY2tlclRlc3Qu
Y3BwCmluZGV4IDc0ZDYzNWI0MGQ3MTc1MzBkNzZiOWM4MjQ0NGJjNmRiMmQ3MzQxYjkuLjEzNDRj
MGFhZWJkZjk1YTUzNTI4NTUzOTAyMmVhYmE5Y2ZlZTNmNjggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvY2hyb21pdW0vdGVzdHMvQ0NEYW1hZ2VUcmFja2VyVGVzdC5jcHAKKysrIGIvU291cmNl
L1dlYktpdC9jaHJvbWl1bS90ZXN0cy9DQ0RhbWFnZVRyYWNrZXJUZXN0LmNwcApAQCAtMzUzLDYg
KzM1MywzNiBAQCBURVNUX0YoQ0NEYW1hZ2VUcmFja2VyVGVzdCwgdmVyaWZ5RGFtYWdlRm9yQWRk
aW5nQW5kUmVtb3ZpbmdMYXllcikKICAgICBFWFBFQ1RfRkxPQVRfUkVDVF9FUShGbG9hdFJlY3Qo
MTAwLCAxMDAsIDMwLCAzMCksIHJvb3REYW1hZ2VSZWN0KTsKIH0KIAorVEVTVF9GKENDRGFtYWdl
VHJhY2tlclRlc3QsIHZlcmlmeURhbWFnZUZvck5ld1VuY2hhbmdlZExheWVyKQoreworICAgIC8v
IElmIGNoaWxkMiBpcyBhZGRlZCB0byB0aGUgbGF5ZXIgdHJlZSwgYnV0IGl0IGRvZXNuJ3QgaGF2
ZSBhbnkgZXhwbGljaXQgZGFtYWdlIG9mCisgICAgLy8gaXRzIG93biwgaXQgc2hvdWxkIHN0aWxs
IGluZGVlZCBkYW1hZ2UgdGhlIHRhcmdldCBzdXJmYWNlLgorCisgICAgT3duUHRyPENDTGF5ZXJJ
bXBsPiByb290ID0gY3JlYXRlQW5kU2V0VXBUZXN0VHJlZVdpdGhPbmVTdXJmYWNlKCk7CisKKyAg
ICB7CisgICAgICAgIE93blB0cjxDQ0xheWVySW1wbD4gY2hpbGQyID0gQ0NMYXllckltcGw6OmNy
ZWF0ZSgzKTsKKyAgICAgICAgY2hpbGQyLT5zZXRQb3NpdGlvbihGbG9hdFBvaW50KDQwMCwgMzgw
KSk7CisgICAgICAgIGNoaWxkMi0+c2V0QW5jaG9yUG9pbnQoRmxvYXRQb2ludDo6emVybygpKTsK
KyAgICAgICAgY2hpbGQyLT5zZXRCb3VuZHMoSW50U2l6ZSg2LCA4KSk7CisgICAgICAgIGNoaWxk
Mi0+c2V0RHJhd3NDb250ZW50KHRydWUpOworICAgICAgICBjaGlsZDItPnJlc2V0QWxsQ2hhbmdl
VHJhY2tpbmdGb3JTdWJ0cmVlKCk7CisgICAgICAgIC8vIFNhbml0eSBjaGVjayB0aGUgaW5pdGlh
bCBjb25kaXRpb25zIG9mIHRoZSB0ZXN0LCBpZiB0aGVzZSBhc3NlcnRzIHRyaWdnZXIsIGl0Cisg
ICAgICAgIC8vIG1lYW5zIHRoZSB0ZXN0IG5vIGxvbmdlciBhY3R1YWxseSBjb3ZlcnMgdGhlIGlu
dGVuZGVkIHNjZW5hcmlvLgorICAgICAgICBBU1NFUlRfRkFMU0UoY2hpbGQyLT5sYXllclByb3Bl
cnR5Q2hhbmdlZCgpKTsKKyAgICAgICAgQVNTRVJUX1RSVUUoY2hpbGQyLT51cGRhdGVSZWN0KCku
aXNFbXB0eSgpKTsKKyAgICAgICAgcm9vdC0+YWRkQ2hpbGQoY2hpbGQyLnJlbGVhc2UoKSk7Cisg
ICAgfQorCisgICAgZW11bGF0ZURyYXdpbmdPbmVGcmFtZShyb290LmdldCgpKTsKKworICAgIC8v
IFNhbml0eSBjaGVjayAtIGFsbCAzIGxheWVycyBzaG91bGQgYmUgb24gdGhlIHNhbWUgcmVuZGVy
IHN1cmZhY2U7IHJlbmRlciBzdXJmYWNlcyBhcmUgdGVzdGVkIGVsc2V3aGVyZS4KKyAgICBBU1NF
UlRfRVEoc3RhdGljX2Nhc3Q8c2l6ZV90PigzKSwgcm9vdC0+cmVuZGVyU3VyZmFjZSgpLT5sYXll
ckxpc3QoKS5zaXplKCkpOworCisgICAgRmxvYXRSZWN0IHJvb3REYW1hZ2VSZWN0ID0gcm9vdC0+
cmVuZGVyU3VyZmFjZSgpLT5kYW1hZ2VUcmFja2VyKCktPmN1cnJlbnREYW1hZ2VSZWN0KCk7Cisg
ICAgRVhQRUNUX0ZMT0FUX1JFQ1RfRVEoRmxvYXRSZWN0KDQwMCwgMzgwLCA2LCA4KSwgcm9vdERh
bWFnZVJlY3QpOworfQorCiBURVNUX0YoQ0NEYW1hZ2VUcmFja2VyVGVzdCwgdmVyaWZ5RGFtYWdl
Rm9yTXVsdGlwbGVMYXllcnMpCiB7CiAgICAgT3duUHRyPENDTGF5ZXJJbXBsPiByb290ID0gY3Jl
YXRlQW5kU2V0VXBUZXN0VHJlZVdpdGhPbmVTdXJmYWNlKCk7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>133404</attachid>
            <date>2012-03-22 18:14:57 -0700</date>
            <delta_ts>2012-03-22 20:02:56 -0700</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-81879-20120322181456.patch</filename>
            <type>text/plain</type>
            <size>12385</size>
            <attacher name="Shawn Singh">shawnsingh</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTExODAxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNTdmMjBlZTAzYzgzYjFm
OGViZjU5ZmVlYmE2N2M2YThhZmY4MGM0Yy4uYmRiMzM1Y2QwYjM5Njg2YmRmYThmZjI2Y2Y0Y2Q0
ODI0ODRjNWI0MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI2IEBACisyMDEyLTAzLTIyICBTaGF3
biBTaW5naCAgPHNoYXduc2luZ2hAY2hyb21pdW0ub3JnPgorCisgICAgICAgIFtjaHJvbWl1bV0g
VGFyZ2V0IHN1cmZhY2Ugc2hvdWxkIGJlIGRhbWFnZWQgZm9yIGEgbmV3IGxheWVycyBldmVuIHdo
ZW4gbGF5ZXIgaGFkIG5vIGNoYW5nZXMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTgxODc5CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgQWRyaWVubmUgV2Fs
a2VyLgorCisgICAgICAgIFVuaXQgdGVzdCBhZGRlZCB0byBDQ0RhbWFnZVRyYWNrZXJUZXN0Lgor
CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vY2MvQ0NEYW1hZ2VUcmFja2Vy
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNDRGFtYWdlVHJhY2tlcjo6cmVtb3ZlUmVjdEZyb21D
dXJyZW50RnJhbWUpOiBhZGRlZCBhCisgICAgICAgIGJvb2xlYW4gYXJnIHRvIGRldGVjdCBpZiB0
aGUgbGF5ZXIgaXMgbmV3IG9uIHRoaXMgdXBkYXRlLgorCisgICAgICAgIChXZWJDb3JlOjpDQ0Rh
bWFnZVRyYWNrZXI6OmV4dGVuZERhbWFnZUZvckxheWVyKTogYWRkZWQgbG9naWMgdGhhdAorICAg
ICAgICBkYW1hZ2VzIHRoZSB0YXJnZXQgc3VyZmFjZSBpZiB0aGUgbGF5ZXIgaXMgbmV3LgorCisg
ICAgICAgIChXZWJDb3JlOjpDQ0RhbWFnZVRyYWNrZXI6OmV4dGVuZERhbWFnZUZvclJlbmRlclN1
cmZhY2UpOiBhZGRlZAorICAgICAgICBsb2dpYyB0aGF0IGRhbWFnZXMgdGhlIHRhcmdldCBzdXJm
YWNlIGlmIHRoZSBkZXNjZW5kYW50IHN1cmZhY2UgaXMKKyAgICAgICAgbmV3OyBzaW1pbGFyIGxv
Z2ljIGZvciB0aGUgc3VyZmFjZSdzIHJlcGxpY2EgaWYgdGhlIHJlcGxpY2EgaXMgbmV3LgorCisg
ICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vY2MvQ0NEYW1hZ2VUcmFja2VyLmg6
CisgICAgICAgIChDQ0RhbWFnZVRyYWNrZXIpOgorCiAyMDEyLTAzLTIyICBSYXBoYWVsIEt1Ym8g
ZGEgQ29zdGEgIDxyYWt1Y29ARnJlZUJTRC5vcmc+CiAKICAgICAgICAgW0NNYWtlXSBVbnJldmll
d2VkIGJ1aWxkIGZpeCBhZnRlciByMTExNzc4LgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9j
aHJvbWl1bS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZwppbmRl
eCAwNDJkZTcxNmFmZjE4MjgzNTgyZWVjY2VjZDkyNGEzOWE1YzdiOTc1Li4xYTI4NTNjN2JmMjU5
NTViZGM0Y2NkMjA2N2M1YTVlZWZiYTQ0NmYwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2No
cm9taXVtL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZwpA
QCAtMSwzICsxLDE0IEBACisyMDEyLTAzLTIyICBTaGF3biBTaW5naCAgPHNoYXduc2luZ2hAY2hy
b21pdW0ub3JnPgorCisgICAgICAgIFtjaHJvbWl1bV0gVGFyZ2V0IHN1cmZhY2Ugc2hvdWxkIGJl
IGRhbWFnZWQgZm9yIGEgbmV3IGxheWVycyBldmVuIHdoZW4gbGF5ZXIgaGFkIG5vIGNoYW5nZXMK
KyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTgxODc5CisK
KyAgICAgICAgUmV2aWV3ZWQgYnkgQWRyaWVubmUgV2Fsa2VyLgorCisgICAgICAgICogdGVzdHMv
Q0NEYW1hZ2VUcmFja2VyVGVzdC5jcHA6CisgICAgICAgIChXZWJLaXRUZXN0czo6VEVTVF9GKToK
KyAgICAgICAgKFdlYktpdFRlc3RzKToKKwogMjAxMi0wMy0yMiAgTWljaGFsIE1vY255ICA8bW1v
Y255QGdvb2dsZS5jb20+CiAKICAgICAgICAgW2Nocm9taXVtXSBMYXllclJlbmRlcmVyQ2hyb21p
dW0gc2hvdWxkIHVzZSBHcHVNZW1vcnlBbGxvY2F0aW9uQ2hhbmdlZCBjYWxsYmFjayB0byBleHBs
aWNpdGx5IG1hbmFnZSBmcmFtZWJ1ZmZlci4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL2NjL0NDRGFtYWdlVHJhY2tlci5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9jYy9DQ0RhbWFnZVRyYWNrZXIuY3Bw
CmluZGV4IDY2ZGE0ZGU4NTZkMmM0YzM3MmJkYmRlOGFkMGM0YmUzOWY2ZTY5NWQuLjFmZjJmZmM4
YjQ4MGZlNTQ3OTBhZWJhMGNhZjA1OTNmOTBlNDI5NzIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL2NjL0NDRGFtYWdlVHJhY2tlci5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vY2MvQ0NEYW1hZ2VU
cmFja2VyLmNwcApAQCAtMTQyLDkgKzE0MiwxMCBAQCB2b2lkIENDRGFtYWdlVHJhY2tlcjo6dXBk
YXRlRGFtYWdlVHJhY2tpbmdTdGF0ZShjb25zdCBWZWN0b3I8Q0NMYXllckltcGwqPiYgbGF5ZQog
ICAgIHN3YXAobV9jdXJyZW50UmVjdEhpc3RvcnksIG1fbmV4dFJlY3RIaXN0b3J5KTsKIH0KIAot
RmxvYXRSZWN0IENDRGFtYWdlVHJhY2tlcjo6cmVtb3ZlUmVjdEZyb21DdXJyZW50RnJhbWUoaW50
IGxheWVySUQpCitGbG9hdFJlY3QgQ0NEYW1hZ2VUcmFja2VyOjpyZW1vdmVSZWN0RnJvbUN1cnJl
bnRGcmFtZShpbnQgbGF5ZXJJRCwgYm9vbCYgbGF5ZXJJc05ldykKIHsKLSAgICAvLyBUaGlzIGZ1
bmN0aW9uIGV4aXN0cyBtYWlubHkgZm9yIHJlYWRhYmlsaXR5IG9mIHRoZSBjb2RlLgorICAgIGxh
eWVySXNOZXcgPSAhbV9jdXJyZW50UmVjdEhpc3RvcnktPmNvbnRhaW5zKGxheWVySUQpOworCiAg
ICAgLy8gdGFrZSgpIHdpbGwgcmVtb3ZlIHRoZSBlbnRyeSBmcm9tIHRoZSBtYXAsIG9yIGlmIG5v
dCBmb3VuZCwgcmV0dXJuIGEgZGVmYXVsdCAoZW1wdHkpIHJlY3QuCiAgICAgcmV0dXJuIG1fY3Vy
cmVudFJlY3RIaXN0b3J5LT50YWtlKGxheWVySUQpOwogfQpAQCAtMjIxLDEzICsyMjIsMTQgQEAg
dm9pZCBDQ0RhbWFnZVRyYWNrZXI6OmV4dGVuZERhbWFnZUZvckxheWVyKENDTGF5ZXJJbXBsKiBs
YXllciwgRmxvYXRSZWN0JiB0YXJnZXQKICAgICBUcmFuc2Zvcm1hdGlvbk1hdHJpeCBvcmlnaW5U
cmFuc2Zvcm0gPSBsYXllci0+ZHJhd1RyYW5zZm9ybSgpOwogICAgIG9yaWdpblRyYW5zZm9ybS50
cmFuc2xhdGUoLTAuNSAqIGxheWVyLT5ib3VuZHMoKS53aWR0aCgpLCAtMC41ICogbGF5ZXItPmJv
dW5kcygpLmhlaWdodCgpKTsKIAotICAgIEZsb2F0UmVjdCBvbGRMYXllclJlY3QgPSByZW1vdmVS
ZWN0RnJvbUN1cnJlbnRGcmFtZShsYXllci0+aWQoKSk7CisgICAgYm9vbCBsYXllcklzTmV3ID0g
ZmFsc2U7CisgICAgRmxvYXRSZWN0IG9sZExheWVyUmVjdCA9IHJlbW92ZVJlY3RGcm9tQ3VycmVu
dEZyYW1lKGxheWVyLT5pZCgpLCBsYXllcklzTmV3KTsKIAogICAgIEZsb2F0UmVjdCBsYXllclJl
Y3RJblRhcmdldFNwYWNlID0gb3JpZ2luVHJhbnNmb3JtLm1hcFJlY3QoRmxvYXRSZWN0KEZsb2F0
UG9pbnQ6Onplcm8oKSwgbGF5ZXItPmJvdW5kcygpKSk7CiAgICAgc2F2ZVJlY3RGb3JOZXh0RnJh
bWUobGF5ZXItPmlkKCksIGxheWVyUmVjdEluVGFyZ2V0U3BhY2UpOwogCi0gICAgaWYgKGxheWVy
LT5sYXllclByb3BlcnR5Q2hhbmdlZCgpKSB7Ci0gICAgICAgIC8vIElmIGEgbGF5ZXIgaGFzIGNo
YW5nZWQsIHRoZW4gaXRzIGVudGlyZSBsYXllciByZWN0IGFmZmVjdHMgdGhlIHRhcmdldCBzdXJm
YWNlLgorICAgIGlmIChsYXllcklzTmV3IHx8IGxheWVyLT5sYXllclByb3BlcnR5Q2hhbmdlZCgp
KSB7CisgICAgICAgIC8vIElmIGEgbGF5ZXIgaXMgbmV3IG9yIGhhcyBjaGFuZ2VkLCB0aGVuIGl0
cyBlbnRpcmUgbGF5ZXIgcmVjdCBhZmZlY3RzIHRoZSB0YXJnZXQgc3VyZmFjZS4KICAgICAgICAg
dGFyZ2V0RGFtYWdlUmVjdC51bml0ZUlmTm9uWmVybyhsYXllclJlY3RJblRhcmdldFNwYWNlKTsK
IAogICAgICAgICAvLyBUaGUgbGF5ZXIncyBvbGQgcmVnaW9uIGlzIG5vdyBleHBvc2VkIG9uIHRo
ZSB0YXJnZXQgc3VyZmFjZSwgdG9vLgpAQCAtMjU3LDEzICsyNTksMTQgQEAgdm9pZCBDQ0RhbWFn
ZVRyYWNrZXI6OmV4dGVuZERhbWFnZUZvclJlbmRlclN1cmZhY2UoQ0NMYXllckltcGwqIGxheWVy
LCBGbG9hdFJlY3QKIAogICAgIENDUmVuZGVyU3VyZmFjZSogcmVuZGVyU3VyZmFjZSA9IGxheWVy
LT5yZW5kZXJTdXJmYWNlKCk7CiAKLSAgICBGbG9hdFJlY3Qgb2xkU3VyZmFjZVJlY3QgPSByZW1v
dmVSZWN0RnJvbUN1cnJlbnRGcmFtZShsYXllci0+aWQoKSk7CisgICAgYm9vbCBzdXJmYWNlSXNO
ZXcgPSBmYWxzZTsKKyAgICBGbG9hdFJlY3Qgb2xkU3VyZmFjZVJlY3QgPSByZW1vdmVSZWN0RnJv
bUN1cnJlbnRGcmFtZShsYXllci0+aWQoKSwgc3VyZmFjZUlzTmV3KTsKIAogICAgIEZsb2F0UmVj
dCBzdXJmYWNlUmVjdEluVGFyZ2V0U3BhY2UgPSByZW5kZXJTdXJmYWNlLT5kcmF3YWJsZUNvbnRl
bnRSZWN0KCk7IC8vIGFscmVhZHkgaW5jbHVkZXMgcmVwbGljYSBpZiBpdCBleGlzdHMuCiAgICAg
c2F2ZVJlY3RGb3JOZXh0RnJhbWUobGF5ZXItPmlkKCksIHN1cmZhY2VSZWN0SW5UYXJnZXRTcGFj
ZSk7CiAKICAgICBGbG9hdFJlY3QgZGFtYWdlUmVjdEluTG9jYWxTcGFjZTsKLSAgICBpZiAocmVu
ZGVyU3VyZmFjZS0+c3VyZmFjZVByb3BlcnR5Q2hhbmdlZCgpKSB7CisgICAgaWYgKHN1cmZhY2VJ
c05ldyB8fCByZW5kZXJTdXJmYWNlLT5zdXJmYWNlUHJvcGVydHlDaGFuZ2VkKCkpIHsKICAgICAg
ICAgLy8gVGhlIGVudGlyZSBzdXJmYWNlIGNvbnRyaWJ1dGVzIGRhbWFnZS4KICAgICAgICAgZGFt
YWdlUmVjdEluTG9jYWxTcGFjZSA9IHJlbmRlclN1cmZhY2UtPmNvbnRlbnRSZWN0KCk7CiAKQEAg
LTI5MCw3ICsyOTMsOCBAQCB2b2lkIENDRGFtYWdlVHJhY2tlcjo6ZXh0ZW5kRGFtYWdlRm9yUmVu
ZGVyU3VyZmFjZShDQ0xheWVySW1wbCogbGF5ZXIsIEZsb2F0UmVjdAogICAgIGlmIChsYXllci0+
cmVwbGljYUxheWVyKCkgJiYgbGF5ZXItPnJlcGxpY2FMYXllcigpLT5tYXNrTGF5ZXIoKSkgewog
ICAgICAgICBDQ0xheWVySW1wbCogcmVwbGljYU1hc2tMYXllciA9IGxheWVyLT5yZXBsaWNhTGF5
ZXIoKS0+bWFza0xheWVyKCk7CiAKLSAgICAgICAgcmVtb3ZlUmVjdEZyb21DdXJyZW50RnJhbWUo
cmVwbGljYU1hc2tMYXllci0+aWQoKSk7CisgICAgICAgIGJvb2wgcmVwbGljYUlzTmV3ID0gZmFs
c2U7CisgICAgICAgIHJlbW92ZVJlY3RGcm9tQ3VycmVudEZyYW1lKHJlcGxpY2FNYXNrTGF5ZXIt
PmlkKCksIHJlcGxpY2FJc05ldyk7CiAKICAgICAgICAgLy8gQ29tcHV0ZSB0aGUgcmVwbGljYSdz
ICJvcmlnaW5UcmFuc2Zvcm0iIHRoYXQgbWFwcyBmcm9tIHRoZSByZXBsaWNhJ3Mgb3JpZ2luIHNw
YWNlIHRvIHRoZSB0YXJnZXQgc3VyZmFjZSBvcmlnaW4gc3BhY2UuCiAgICAgICAgIFRyYW5zZm9y
bWF0aW9uTWF0cml4IHJlcGxpY2FPcmlnaW5UcmFuc2Zvcm0gPSBsYXllci0+cmVuZGVyU3VyZmFj
ZSgpLT5vcmlnaW5UcmFuc2Zvcm0oKTsKQEAgLTMwMiw3ICszMDYsNyBAQCB2b2lkIENDRGFtYWdl
VHJhY2tlcjo6ZXh0ZW5kRGFtYWdlRm9yUmVuZGVyU3VyZmFjZShDQ0xheWVySW1wbCogbGF5ZXIs
IEZsb2F0UmVjdAogICAgICAgICBzYXZlUmVjdEZvck5leHRGcmFtZShyZXBsaWNhTWFza0xheWVy
LT5pZCgpLCByZXBsaWNhTWFza0xheWVyUmVjdCk7CiAKICAgICAgICAgLy8gSW4gdGhlIGN1cnJl
bnQgaW1wbGVtZW50YXRpb24sIGEgY2hhbmdlIGluIHRoZSByZXBsaWNhIG1hc2sgZGFtYWdlcyB0
aGUgZW50aXJlIHJlcGxpY2EgcmVnaW9uLgotICAgICAgICBpZiAocmVwbGljYU1hc2tMYXllci0+
bGF5ZXJQcm9wZXJ0eUNoYW5nZWQoKSB8fCAhcmVwbGljYU1hc2tMYXllci0+dXBkYXRlUmVjdCgp
LmlzRW1wdHkoKSkKKyAgICAgICAgaWYgKHJlcGxpY2FJc05ldyB8fCByZXBsaWNhTWFza0xheWVy
LT5sYXllclByb3BlcnR5Q2hhbmdlZCgpIHx8ICFyZXBsaWNhTWFza0xheWVyLT51cGRhdGVSZWN0
KCkuaXNFbXB0eSgpKQogICAgICAgICAgICAgdGFyZ2V0RGFtYWdlUmVjdC51bml0ZUlmTm9uWmVy
byhyZXBsaWNhTWFza0xheWVyUmVjdCk7CiAgICAgfQogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vY2MvQ0NEYW1hZ2VUcmFja2VyLmggYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9jYy9DQ0RhbWFnZVRyYWNr
ZXIuaAppbmRleCBmMWNmZDRmNzM2MDY4NDQ2NDExNGVhNGNmMmJlOGZlOGQwNzQ1YTM2Li40YTNl
MzBhNjY4NzZlODk2ZDU2ODhhMzhhYWEwMWIzNDA2YTkxYzY3IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9jYy9DQ0RhbWFnZVRyYWNrZXIuaAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9jYy9DQ0RhbWFn
ZVRyYWNrZXIuaApAQCAtNTQsNyArNTQsNyBAQCBwcml2YXRlOgogICAgIEZsb2F0UmVjdCB0cmFj
a0RhbWFnZUZyb21TdXJmYWNlTWFzayhDQ0xheWVySW1wbCogdGFyZ2V0U3VyZmFjZU1hc2tMYXll
cik7CiAgICAgRmxvYXRSZWN0IHRyYWNrRGFtYWdlRnJvbUxlZnRvdmVyUmVjdHMoKTsKIAotICAg
IEZsb2F0UmVjdCByZW1vdmVSZWN0RnJvbUN1cnJlbnRGcmFtZShpbnQgbGF5ZXJJRCk7CisgICAg
RmxvYXRSZWN0IHJlbW92ZVJlY3RGcm9tQ3VycmVudEZyYW1lKGludCBsYXllcklELCBib29sJiBs
YXllcklzTmV3KTsKICAgICB2b2lkIHNhdmVSZWN0Rm9yTmV4dEZyYW1lKGludCBsYXllcklELCBj
b25zdCBGbG9hdFJlY3QmIHRhcmdldFNwYWNlUmVjdCk7CiAKICAgICAvLyBUaGVzZSBoZWxwZXIg
ZnVuY3Rpb25zIGFyZSB1c2VkIG9ubHkgaW4gdHJhY2tEYW1hZ2VGcm9tQWN0aXZlTGF5ZXJzKCku
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3Rlc3RzL0NDRGFtYWdlVHJhY2tl
clRlc3QuY3BwIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS90ZXN0cy9DQ0RhbWFnZVRyYWNrZXJU
ZXN0LmNwcAppbmRleCAwOWRlYjk2NWViMmMwNjI1ZmZmM2U4NjNkYzMxYmQ4YWU2ZmQ5MDBmLi5j
ZGVmMTNjMGEwM2Y0ODI4YjExNzY2MTc1ZTNhNTU1N2VhMDhjMzllIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L2Nocm9taXVtL3Rlc3RzL0NDRGFtYWdlVHJhY2tlclRlc3QuY3BwCisrKyBiL1Nv
dXJjZS9XZWJLaXQvY2hyb21pdW0vdGVzdHMvQ0NEYW1hZ2VUcmFja2VyVGVzdC5jcHAKQEAgLTE4
MCw3ICsxODAsNyBAQCBURVNUX0YoQ0NEYW1hZ2VUcmFja2VyVGVzdCwgc2FuaXR5Q2hlY2tUZXN0
VHJlZVdpdGhPbmVTdXJmYWNlKQogCiAgICAgT3duUHRyPENDTGF5ZXJJbXBsPiByb290ID0gY3Jl
YXRlQW5kU2V0VXBUZXN0VHJlZVdpdGhPbmVTdXJmYWNlKCk7CiAKLSAgICBFWFBFQ1RfRVEoc3Rh
dGljX2Nhc3Q8c2l6ZV90PigyKSwgcm9vdC0+cmVuZGVyU3VyZmFjZSgpLT5sYXllckxpc3QoKS5z
aXplKCkpOworICAgIEVYUEVDVF9FUSgydSwgcm9vdC0+cmVuZGVyU3VyZmFjZSgpLT5sYXllckxp
c3QoKS5zaXplKCkpOwogICAgIEVYUEVDVF9FUSgxLCByb290LT5yZW5kZXJTdXJmYWNlKCktPmxh
eWVyTGlzdCgpWzBdLT5pZCgpKTsKICAgICBFWFBFQ1RfRVEoMiwgcm9vdC0+cmVuZGVyU3VyZmFj
ZSgpLT5sYXllckxpc3QoKVsxXS0+aWQoKSk7CiAKQEAgLTIwMiw4ICsyMDIsOCBAQCBURVNUX0Yo
Q0NEYW1hZ2VUcmFja2VyVGVzdCwgc2FuaXR5Q2hlY2tUZXN0VHJlZVdpdGhUd29TdXJmYWNlcykK
IAogICAgIEFTU0VSVF9UUlVFKGNoaWxkMS0+cmVuZGVyU3VyZmFjZSgpKTsKICAgICBFWFBFQ1Rf
RkFMU0UoY2hpbGQyLT5yZW5kZXJTdXJmYWNlKCkpOwotICAgIEVYUEVDVF9FUShzdGF0aWNfY2Fz
dDxzaXplX3Q+KDMpLCByb290LT5yZW5kZXJTdXJmYWNlKCktPmxheWVyTGlzdCgpLnNpemUoKSk7
Ci0gICAgRVhQRUNUX0VRKHN0YXRpY19jYXN0PHNpemVfdD4oMiksIGNoaWxkMS0+cmVuZGVyU3Vy
ZmFjZSgpLT5sYXllckxpc3QoKS5zaXplKCkpOworICAgIEVYUEVDVF9FUSgzdSwgcm9vdC0+cmVu
ZGVyU3VyZmFjZSgpLT5sYXllckxpc3QoKS5zaXplKCkpOworICAgIEVYUEVDVF9FUSgydSwgY2hp
bGQxLT5yZW5kZXJTdXJmYWNlKCktPmxheWVyTGlzdCgpLnNpemUoKSk7CiAKICAgICAvLyBUaGUg
cmVuZGVyIHN1cmZhY2UgZm9yIGNoaWxkMSBvbmx5IGhhcyBhIGNvbnRlbnRSZWN0IHRoYXQgZW5j
bG9zZXMgZ3JhbmRDaGlsZDEgYW5kIGdyYW5kQ2hpbGQyLCBiZWNhdXNlIGNoaWxkMSBkb2VzIG5v
dCBkcmF3IGNvbnRlbnQuCiAgICAgRVhQRUNUX0ZMT0FUX1JFQ1RfRVEoRmxvYXRSZWN0KDE5MCwg
MTkwLCAxNiwgMTgpLCBjaGlsZERhbWFnZVJlY3QpOwpAQCAtMjU0LDcgKzI1NCw3IEBAIFRFU1Rf
RihDQ0RhbWFnZVRyYWNrZXJUZXN0LCB2ZXJpZnlEYW1hZ2VGb3JQcm9wZXJ0eUNoYW5nZXMpCiAK
ICAgICAvLyBTYW5pdHkgY2hlY2sgLSB3ZSBzaG91bGQgbm90IGhhdmUgYWNjaWRlbnRhbGx5IGNy
ZWF0ZWQgYSBzZXBhcmF0ZSByZW5kZXIgc3VyZmFjZSBmb3IgdGhlIHRyYW5zbHVjZW50IGxheWVy
LgogICAgIEFTU0VSVF9GQUxTRShjaGlsZC0+cmVuZGVyU3VyZmFjZSgpKTsKLSAgICBBU1NFUlRf
RVEoc3RhdGljX2Nhc3Q8c2l6ZV90PigyKSwgcm9vdC0+cmVuZGVyU3VyZmFjZSgpLT5sYXllckxp
c3QoKS5zaXplKCkpOworICAgIEFTU0VSVF9FUSgydSwgcm9vdC0+cmVuZGVyU3VyZmFjZSgpLT5s
YXllckxpc3QoKS5zaXplKCkpOwogCiAgICAgLy8gRGFtYWdlIHNob3VsZCBiZSB0aGUgZW50aXJl
IGNoaWxkIGxheWVyIGluIHRhcmdldFN1cmZhY2Ugc3BhY2UuCiAgICAgRmxvYXRSZWN0IGV4cGVj
dGVkUmVjdCA9IEZsb2F0UmVjdCgxMDAsIDEwMCwgMzAsIDMwKTsKQEAgLTMzNCw3ICszMzQsNyBA
QCBURVNUX0YoQ0NEYW1hZ2VUcmFja2VyVGVzdCwgdmVyaWZ5RGFtYWdlRm9yQWRkaW5nQW5kUmVt
b3ZpbmdMYXllcikKICAgICBlbXVsYXRlRHJhd2luZ09uZUZyYW1lKHJvb3QuZ2V0KCkpOwogCiAg
ICAgLy8gU2FuaXR5IGNoZWNrIC0gYWxsIDMgbGF5ZXJzIHNob3VsZCBiZSBvbiB0aGUgc2FtZSBy
ZW5kZXIgc3VyZmFjZTsgcmVuZGVyIHN1cmZhY2VzIGFyZSB0ZXN0ZWQgZWxzZXdoZXJlLgotICAg
IEFTU0VSVF9FUShzdGF0aWNfY2FzdDxzaXplX3Q+KDMpLCByb290LT5yZW5kZXJTdXJmYWNlKCkt
PmxheWVyTGlzdCgpLnNpemUoKSk7CisgICAgQVNTRVJUX0VRKDN1LCByb290LT5yZW5kZXJTdXJm
YWNlKCktPmxheWVyTGlzdCgpLnNpemUoKSk7CiAKICAgICBGbG9hdFJlY3Qgcm9vdERhbWFnZVJl
Y3QgPSByb290LT5yZW5kZXJTdXJmYWNlKCktPmRhbWFnZVRyYWNrZXIoKS0+Y3VycmVudERhbWFn
ZVJlY3QoKTsKICAgICBFWFBFQ1RfRkxPQVRfUkVDVF9FUShGbG9hdFJlY3QoNDAwLCAzODAsIDYs
IDgpLCByb290RGFtYWdlUmVjdCk7CkBAIC0zNTMsNiArMzUzLDM2IEBAIFRFU1RfRihDQ0RhbWFn
ZVRyYWNrZXJUZXN0LCB2ZXJpZnlEYW1hZ2VGb3JBZGRpbmdBbmRSZW1vdmluZ0xheWVyKQogICAg
IEVYUEVDVF9GTE9BVF9SRUNUX0VRKEZsb2F0UmVjdCgxMDAsIDEwMCwgMzAsIDMwKSwgcm9vdERh
bWFnZVJlY3QpOwogfQogCitURVNUX0YoQ0NEYW1hZ2VUcmFja2VyVGVzdCwgdmVyaWZ5RGFtYWdl
Rm9yTmV3VW5jaGFuZ2VkTGF5ZXIpCit7CisgICAgLy8gSWYgY2hpbGQyIGlzIGFkZGVkIHRvIHRo
ZSBsYXllciB0cmVlLCBidXQgaXQgZG9lc24ndCBoYXZlIGFueSBleHBsaWNpdCBkYW1hZ2Ugb2YK
KyAgICAvLyBpdHMgb3duLCBpdCBzaG91bGQgc3RpbGwgaW5kZWVkIGRhbWFnZSB0aGUgdGFyZ2V0
IHN1cmZhY2UuCisKKyAgICBPd25QdHI8Q0NMYXllckltcGw+IHJvb3QgPSBjcmVhdGVBbmRTZXRV
cFRlc3RUcmVlV2l0aE9uZVN1cmZhY2UoKTsKKworICAgIHsKKyAgICAgICAgT3duUHRyPENDTGF5
ZXJJbXBsPiBjaGlsZDIgPSBDQ0xheWVySW1wbDo6Y3JlYXRlKDMpOworICAgICAgICBjaGlsZDIt
PnNldFBvc2l0aW9uKEZsb2F0UG9pbnQoNDAwLCAzODApKTsKKyAgICAgICAgY2hpbGQyLT5zZXRB
bmNob3JQb2ludChGbG9hdFBvaW50Ojp6ZXJvKCkpOworICAgICAgICBjaGlsZDItPnNldEJvdW5k
cyhJbnRTaXplKDYsIDgpKTsKKyAgICAgICAgY2hpbGQyLT5zZXREcmF3c0NvbnRlbnQodHJ1ZSk7
CisgICAgICAgIGNoaWxkMi0+cmVzZXRBbGxDaGFuZ2VUcmFja2luZ0ZvclN1YnRyZWUoKTsKKyAg
ICAgICAgLy8gU2FuaXR5IGNoZWNrIHRoZSBpbml0aWFsIGNvbmRpdGlvbnMgb2YgdGhlIHRlc3Qs
IGlmIHRoZXNlIGFzc2VydHMgdHJpZ2dlciwgaXQKKyAgICAgICAgLy8gbWVhbnMgdGhlIHRlc3Qg
bm8gbG9uZ2VyIGFjdHVhbGx5IGNvdmVycyB0aGUgaW50ZW5kZWQgc2NlbmFyaW8uCisgICAgICAg
IEFTU0VSVF9GQUxTRShjaGlsZDItPmxheWVyUHJvcGVydHlDaGFuZ2VkKCkpOworICAgICAgICBB
U1NFUlRfVFJVRShjaGlsZDItPnVwZGF0ZVJlY3QoKS5pc0VtcHR5KCkpOworICAgICAgICByb290
LT5hZGRDaGlsZChjaGlsZDIucmVsZWFzZSgpKTsKKyAgICB9CisKKyAgICBlbXVsYXRlRHJhd2lu
Z09uZUZyYW1lKHJvb3QuZ2V0KCkpOworCisgICAgLy8gU2FuaXR5IGNoZWNrIC0gYWxsIDMgbGF5
ZXJzIHNob3VsZCBiZSBvbiB0aGUgc2FtZSByZW5kZXIgc3VyZmFjZTsgcmVuZGVyIHN1cmZhY2Vz
IGFyZSB0ZXN0ZWQgZWxzZXdoZXJlLgorICAgIEFTU0VSVF9FUSgzdSwgcm9vdC0+cmVuZGVyU3Vy
ZmFjZSgpLT5sYXllckxpc3QoKS5zaXplKCkpOworCisgICAgRmxvYXRSZWN0IHJvb3REYW1hZ2VS
ZWN0ID0gcm9vdC0+cmVuZGVyU3VyZmFjZSgpLT5kYW1hZ2VUcmFja2VyKCktPmN1cnJlbnREYW1h
Z2VSZWN0KCk7CisgICAgRVhQRUNUX0ZMT0FUX1JFQ1RfRVEoRmxvYXRSZWN0KDQwMCwgMzgwLCA2
LCA4KSwgcm9vdERhbWFnZVJlY3QpOworfQorCiBURVNUX0YoQ0NEYW1hZ2VUcmFja2VyVGVzdCwg
dmVyaWZ5RGFtYWdlRm9yTXVsdGlwbGVMYXllcnMpCiB7CiAgICAgT3duUHRyPENDTGF5ZXJJbXBs
PiByb290ID0gY3JlYXRlQW5kU2V0VXBUZXN0VHJlZVdpdGhPbmVTdXJmYWNlKCk7CkBAIC00ODUs
NyArNTE1LDcgQEAgVEVTVF9GKENDRGFtYWdlVHJhY2tlclRlc3QsIHZlcmlmeURhbWFnZUZvckFk
ZGluZ0FuZFJlbW92aW5nUmVuZGVyU3VyZmFjZXMpCiAKICAgICAvLyBTYW5pdHkgY2hlY2sgdGhh
dCB0aGVyZSBpcyBvbmx5IG9uZSBzdXJmYWNlIG5vdy4KICAgICBBU1NFUlRfRkFMU0UoY2hpbGQx
LT5yZW5kZXJTdXJmYWNlKCkpOwotICAgIEFTU0VSVF9FUShzdGF0aWNfY2FzdDxzaXplX3Q+KDQp
LCByb290LT5yZW5kZXJTdXJmYWNlKCktPmxheWVyTGlzdCgpLnNpemUoKSk7CisgICAgQVNTRVJU
X0VRKDR1LCByb290LT5yZW5kZXJTdXJmYWNlKCktPmxheWVyTGlzdCgpLnNpemUoKSk7CiAKICAg
ICByb290RGFtYWdlUmVjdCA9IHJvb3QtPnJlbmRlclN1cmZhY2UoKS0+ZGFtYWdlVHJhY2tlcigp
LT5jdXJyZW50RGFtYWdlUmVjdCgpOwogICAgIEVYUEVDVF9GTE9BVF9SRUNUX0VRKEZsb2F0UmVj
dCgyOTAsIDI5MCwgMTYsIDE4KSwgcm9vdERhbWFnZVJlY3QpOwpAQCAtNTAzLDggKzUzMyw4IEBA
IFRFU1RfRihDQ0RhbWFnZVRyYWNrZXJUZXN0LCB2ZXJpZnlEYW1hZ2VGb3JBZGRpbmdBbmRSZW1v
dmluZ1JlbmRlclN1cmZhY2VzKQogCiAgICAgLy8gU2FuaXR5IGNoZWNrIHRoYXQgdGhlcmUgaXMg
YSBuZXcgc3VyZmFjZSBub3cuCiAgICAgQVNTRVJUX1RSVUUoY2hpbGQxLT5yZW5kZXJTdXJmYWNl
KCkpOwotICAgIEVYUEVDVF9FUShzdGF0aWNfY2FzdDxzaXplX3Q+KDMpLCByb290LT5yZW5kZXJT
dXJmYWNlKCktPmxheWVyTGlzdCgpLnNpemUoKSk7Ci0gICAgRVhQRUNUX0VRKHN0YXRpY19jYXN0
PHNpemVfdD4oMiksIGNoaWxkMS0+cmVuZGVyU3VyZmFjZSgpLT5sYXllckxpc3QoKS5zaXplKCkp
OworICAgIEVYUEVDVF9FUSgzdSwgcm9vdC0+cmVuZGVyU3VyZmFjZSgpLT5sYXllckxpc3QoKS5z
aXplKCkpOworICAgIEVYUEVDVF9FUSgydSwgY2hpbGQxLT5yZW5kZXJTdXJmYWNlKCktPmxheWVy
TGlzdCgpLnNpemUoKSk7CiAKICAgICBjaGlsZERhbWFnZVJlY3QgPSBjaGlsZDEtPnJlbmRlclN1
cmZhY2UoKS0+ZGFtYWdlVHJhY2tlcigpLT5jdXJyZW50RGFtYWdlUmVjdCgpOwogICAgIHJvb3RE
YW1hZ2VSZWN0ID0gcm9vdC0+cmVuZGVyU3VyZmFjZSgpLT5kYW1hZ2VUcmFja2VyKCktPmN1cnJl
bnREYW1hZ2VSZWN0KCk7Cg==
</data>

          </attachment>
      

    </bug>

</bugzilla>