<?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>81175</bug_id>
          
          <creation_ts>2012-03-14 17:07:50 -0700</creation_ts>
          <short_desc>[chromium] Add overdraw metrics for texture uploads</short_desc>
          <delta_ts>2012-03-16 10:14:51 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>New Bugs</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          <dependson>81156</dependson>
    
    <dependson>81181</dependson>
    
    <dependson>81222</dependson>
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Dana Jansens">danakj</reporter>
          <assigned_to name="Dana Jansens">danakj</assigned_to>
          <cc>backer</cc>
    
    <cc>enne</cc>
    
    <cc>jamesr</cc>
    
    <cc>nduca</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>578958</commentid>
    <comment_count>0</comment_count>
    <who name="Dana Jansens">danakj</who>
    <bug_when>2012-03-14 17:07:50 -0700</bug_when>
    <thetext>[chromium] Add overdraw metrics for texture uploads</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>579106</commentid>
    <comment_count>1</comment_count>
      <attachid>131982</attachid>
    <who name="Dana Jansens">danakj</who>
    <bug_when>2012-03-14 21:09:26 -0700</bug_when>
    <thetext>Created attachment 131982
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>579108</commentid>
    <comment_count>2</comment_count>
    <who name="Dana Jansens">danakj</who>
    <bug_when>2012-03-14 21:12:17 -0700</bug_when>
    <thetext>I decided to track texture upload metrics instead of &quot;painted pixels&quot; or something.

It measures the number of bytes of textures uploaded to texture memory, and the amount of bytes avoided via paint culling.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>579335</commentid>
    <comment_count>3</comment_count>
    <who name="David Reveman">reveman</who>
    <bug_when>2012-03-15 06:48:52 -0700</bug_when>
    <thetext>So tracking uploads instead of painted pixels means we can&apos;t see the effect of per-tile painting in these metrics, right? I think that&apos;s good but it would be nice to have some additional metrics to track that. Maybe &quot;InvalidatedPixels&quot; and &quot;PaintedPixels&quot;. &quot;PaintedPixels&quot; would be higher than &quot;InvalidatedPixels&quot; when per-tile painting is not used.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>579394</commentid>
    <comment_count>4</comment_count>
    <who name="Dana Jansens">danakj</who>
    <bug_when>2012-03-15 08:12:07 -0700</bug_when>
    <thetext>(In reply to comment #3)
&gt; So tracking uploads instead of painted pixels means we can&apos;t see the effect of per-tile painting in these metrics, right? I think that&apos;s good but it would be nice to have some additional metrics to track that. Maybe &quot;InvalidatedPixels&quot; and &quot;PaintedPixels&quot;. &quot;PaintedPixels&quot; would be higher than &quot;InvalidatedPixels&quot; when per-tile painting is not used.

Is the number of painted pixels something that we are going to optimize beyond turning on per-tile-painting? I had the impression that we are always going to paint all dirty tiles that are visible at all.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>579400</commentid>
    <comment_count>5</comment_count>
    <who name="Dana Jansens">danakj</who>
    <bug_when>2012-03-15 08:19:06 -0700</bug_when>
    <thetext>Splitting this CL up so changes to CCOverdrawMetrics/CCOcclusionTracker happen in 81222. Should make review easier.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>579413</commentid>
    <comment_count>6</comment_count>
    <who name="David Reveman">reveman</who>
    <bug_when>2012-03-15 08:47:04 -0700</bug_when>
    <thetext>(In reply to comment #4)
&gt; (In reply to comment #3)
&gt; &gt; So tracking uploads instead of painted pixels means we can&apos;t see the effect of per-tile painting in these metrics, right? I think that&apos;s good but it would be nice to have some additional metrics to track that. Maybe &quot;InvalidatedPixels&quot; and &quot;PaintedPixels&quot;. &quot;PaintedPixels&quot; would be higher than &quot;InvalidatedPixels&quot; when per-tile painting is not used.
&gt; 
&gt; Is the number of painted pixels something that we are going to optimize beyond turning on per-tile-painting? I had the impression that we are always going to paint all dirty tiles that are visible at all.

These metrics would help determine how much per-tile painting is buying us. I&apos;m not aware of any worthwhile optimization beyond that.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>579423</commentid>
    <comment_count>7</comment_count>
    <who name="Dana Jansens">danakj</who>
    <bug_when>2012-03-15 09:02:31 -0700</bug_when>
    <thetext>Ok cool. I&apos;ll make a bug to add this.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>579435</commentid>
    <comment_count>8</comment_count>
      <attachid>132061</attachid>
    <who name="Dana Jansens">danakj</who>
    <bug_when>2012-03-15 09:21:09 -0700</bug_when>
    <thetext>Created attachment 132061
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>579436</commentid>
    <comment_count>9</comment_count>
    <who name="Dana Jansens">danakj</who>
    <bug_when>2012-03-15 09:22:36 -0700</bug_when>
    <thetext>This changes the symantics of UpdatableTile::m_updateRect slightly.

To tell if a tile was updated
before: !m_updateRect.isEmpty()
now: !m_updateRect.isEmpty() &amp;&amp; !m_updateCulled</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>579926</commentid>
    <comment_count>10</comment_count>
      <attachid>132061</attachid>
    <who name="Adrienne Walker">enne</who>
    <bug_when>2012-03-15 17:11:52 -0700</bug_when>
    <thetext>Comment on attachment 132061
Patch

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

Looks good.  R=me.

&gt; Source/WebCore/platform/graphics/chromium/TiledLayerChromium.cpp:66
&gt; +    bool isDirtyForCurrentFrame() { return !m_dirtyRect.isEmpty() &amp;&amp; (m_updateRect.isEmpty() || m_updateCulled); }

nit: can you add a comment to explain this expression?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>579943</commentid>
    <comment_count>11</comment_count>
    <who name="Dana Jansens">danakj</who>
    <bug_when>2012-03-15 17:28:31 -0700</bug_when>
    <thetext>Done. Thanks!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>579950</commentid>
    <comment_count>12</comment_count>
      <attachid>132160</attachid>
    <who name="Dana Jansens">danakj</who>
    <bug_when>2012-03-15 17:33:16 -0700</bug_when>
    <thetext>Created attachment 132160
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>580498</commentid>
    <comment_count>13</comment_count>
      <attachid>132281</attachid>
    <who name="Dana Jansens">danakj</who>
    <bug_when>2012-03-16 07:36:32 -0700</bug_when>
    <thetext>Created attachment 132281
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>580624</commentid>
    <comment_count>14</comment_count>
      <attachid>132281</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-03-16 10:14:46 -0700</bug_when>
    <thetext>Comment on attachment 132281
Patch for landing

Clearing flags on attachment: 132281

Committed r111023: &lt;http://trac.webkit.org/changeset/111023&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>580625</commentid>
    <comment_count>15</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-03-16 10:14:51 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>131982</attachid>
            <date>2012-03-14 21:09:26 -0700</date>
            <delta_ts>2012-03-15 09:21:01 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-81175-20120315000924.patch</filename>
            <type>text/plain</type>
            <size>55985</size>
            <attacher name="Dana Jansens">danakj</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTEwODA2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZWZhZDQ0NzQ1MmQzZmJm
MzY3NDEwNmRmZjUyMTgzOWE4MTYxMTE5Yy4uYjQ3NmI5NGVhOTdmNzRhZTFkZmI2NzQyZDFiOTlh
ODZmODE5YTNkOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSw1ICsxLDYyIEBACiAyMDEyLTAzLTE0ICBEYW5h
IEphbnNlbnMgIDxkYW5ha2pAY2hyb21pdW0ub3JnPgogCisgICAgICAgIFtjaHJvbWl1bV0gQWRk
IG92ZXJkcmF3IG1ldHJpY3MgZm9yIHRleHR1cmUgdXBsb2FkcworICAgICAgICBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9ODExNzUKKworICAgICAgICBSZXZpZXdlZCBi
eSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBTdGljayBDQ092ZXJkcmF3TWV0cmljcyBpbnRv
IENDT2NjbHVzaW9uVHJhY2tlciwgc28gdGhhdCBpdCBpcyBhdmFpbGFibGUKKyAgICAgICAgZXZl
cnl3aGVyZSB0aGF0IGN1bGxpbmcvZHJhd2luZy9wYWludGluZyBpcyBnb2luZyBvbi4gVGhlbiB3
ZSBjYW4gc3RvcAorICAgICAgICBwbHVtYmluZyBhIG1ldHJpY3Mgb2JqZWN0IHRocm91Z2ggQ0NR
dWFkQ3VsbGVyLgorCisgICAgICAgIFJlbmFtZSB0aGUgQ0NPdmVyZHJhd01ldHJpY3MgInBhaW50
aW5nIiBzdHVmZiB0byAidXBsb2FkaW5nIiBhcyB3ZSdkIGxpa2UKKyAgICAgICAgdG8gbWVhc3Vy
ZSB0ZXh0dXJlIHVwbG9hZHMgbW9yZSB0aGFuIHBpeGVscyBwYWludGVkIGluIG1haW4gbWVtb3J5
LgorCisgICAgICAgIFJlY29yZCB0ZXh0dXJlIHVwbG9hZCBvdmVyZHJhdyBtZXRyaWNzIGR1cmlu
ZyBwYWludC4gVG8gcHJvcGVydHkgcmVjb3JkCisgICAgICAgIHRoZSBhbW91bnQgb2YgcGl4ZWxz
IGN1bGxlZCwgd2UgbXVzdCBjb21wdXRlIHRoZSBhbW91bnQgb2YgcGl4ZWxzIHdlCisgICAgICAg
IHdvdWxkIGhhdmUgdXBsb2FkZWQgZm9yIGEgdGlsZS4gVGhpcyByZXF1aXJlcyBrbm93aW5nIHRo
ZSBkaXJ0eSByZWN0IG9mCisgICAgICAgIHRoZSB0aWxlLCBidXQgdGhlIGRpcnR5IHJlY3QgY2Fu
IGJlIGNoYW5nZWQgYnkgV2ViS2l0IGR1cmluZyBhIHBhaW50LCBzbworICAgICAgICB3ZSBzdG9y
ZSB0aGUgZGlydHlSZWN0IGZvciB0aWxlcyB0aGF0IHdlIGN1bGwsIGluIHRoZSB0aWxlLCBhcwor
ICAgICAgICB0aWxlLT5tX2N1bGxlZEF3YXlEaXJ0eVJlY3QuIFdlIHVzZSB0aGlzIGxhdGVyIHRv
IGRldGVybWluZSBleGFjdGx5CisgICAgICAgIGhvdyBtYW55IHBpeGVscyBvZiB0ZXh0dXJlIHVw
bG9hZCB3ZSBjdWxsZWQsIGZvciBvdmVyZHJhdyByZXBvcnRpbmcuCisKKyAgICAgICAgVGVzdGVk
IGJ5IGFsbCBUaWxlZExheWVyQ2hyb21pdW1UZXN0cyB0aGF0IHVzZSBvY2NsdXNpb24gdHJhY2tl
ci4KKworICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL1RpbGVkTGF5ZXJDaHJv
bWl1bS5jcHA6CisgICAgICAgIChVcGRhdGFibGVUaWxlKToKKyAgICAgICAgKFdlYkNvcmU6OlRp
bGVkTGF5ZXJDaHJvbWl1bTo6cHJlcGFyZVRvVXBkYXRlVGlsZXMpOgorICAgICAgICAqIHBsYXRm
b3JtL2dyYXBoaWNzL2Nocm9taXVtL2NjL0NDTGF5ZXJUcmVlSG9zdC5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpDQ0xheWVyVHJlZUhvc3Q6OnBhaW50TGF5ZXJDb250ZW50cyk6CisgICAgICAgICog
cGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vY2MvQ0NMYXllclRyZWVIb3N0SW1wbC5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpDQ0xheWVyVHJlZUhvc3RJbXBsOjpjYWxjdWxhdGVSZW5kZXJQYXNz
ZXMpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL2NjL0NDT2NjbHVzaW9u
VHJhY2tlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjo6OkNDT2NjbHVzaW9uVHJhY2tlckJhc2Up
OgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL2NjL0NDT2NjbHVzaW9uVHJh
Y2tlci5oOgorICAgICAgICAoQ0NPY2NsdXNpb25UcmFja2VyQmFzZSk6CisgICAgICAgIChXZWJD
b3JlOjpDQ09jY2x1c2lvblRyYWNrZXJCYXNlOjpvdmVyZHJhd01ldHJpY3MpOgorICAgICAgICAq
IHBsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL2NjL0NDT3ZlcmRyYXdNZXRyaWNzLmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OkNDT3ZlcmRyYXdNZXRyaWNzOjpkaWRDdWxsKToKKyAgICAgICAgKFdl
YkNvcmUpOgorICAgICAgICAoV2ViQ29yZTo6Q0NPdmVyZHJhd01ldHJpY3M6OmRpZERyYXcpOgor
ICAgICAgICAoV2ViQ29yZTo6Q0NPdmVyZHJhd01ldHJpY3M6OnJlY29yZE1ldHJpY3MpOgorICAg
ICAgICAoV2ViQ29yZTo6Q0NPdmVyZHJhd01ldHJpY3M6OnJlY29yZE1ldHJpY3NJbnRlcm5hbCk6
CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vY2MvQ0NPdmVyZHJhd01ldHJp
Y3MuaDoKKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAgICAoV2ViQ29yZTo6Q0NPdmVyZHJhd01l
dHJpY3M6OmNyZWF0ZSk6CisgICAgICAgIChDQ092ZXJkcmF3TWV0cmljcyk6CisgICAgICAgICog
cGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vY2MvQ0NRdWFkQ3VsbGVyLmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6OkNDUXVhZEN1bGxlcjo6Q0NRdWFkQ3VsbGVyKToKKyAgICAgICAgKFdlYkNvcmU6
OkNDUXVhZEN1bGxlcjo6YXBwZW5kKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9jaHJv
bWl1bS9jYy9DQ1F1YWRDdWxsZXIuaDoKKyAgICAgICAgKENDUXVhZEN1bGxlcik6CisgICAgICAg
ICogcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vY2MvQ0NSZW5kZXJQYXNzLmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OkNDUmVuZGVyUGFzczo6YXBwZW5kUXVhZHNGb3JMYXllcik6CisgICAgICAg
ICogcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vY2MvQ0NSZW5kZXJQYXNzLmg6CisgICAgICAg
IChXZWJDb3JlKToKKyAgICAgICAgKENDUmVuZGVyUGFzcyk6CisKKzIwMTItMDMtMTQgIERhbmEg
SmFuc2VucyAgPGRhbmFrakBjaHJvbWl1bS5vcmc+CisKICAgICAgICAgW2Nocm9taXVtXSBNb3Zl
IG92ZXJkcmF3IG1ldHJpY3MgaW50byBhIHRlbXBsYXRlZCBjbGFzcyBmb3IgYm90aCBwYWludCBh
bmQgZHJhdyBtZXRyaWNzLgogICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9ODExNTYKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9DaGFu
Z2VMb2cgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZwppbmRleCAwMmI4YzkxM2Ey
ZjE2OGUwMjU3NjA0M2Y3NmFmZDk1Y2RhMDhhYjI0Li4wYWUyZjg0ZmViMjczYWY3ZTVjZGM1MWI2
MzAxYTJiZDMwZDc5NDc5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL0NoYW5n
ZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZwpAQCAtMSw1ICsxLDIx
IEBACiAyMDEyLTAzLTE0ICBEYW5hIEphbnNlbnMgIDxkYW5ha2pAY2hyb21pdW0ub3JnPgogCisg
ICAgICAgIFtjaHJvbWl1bV0gQWRkIG92ZXJkcmF3IG1ldHJpY3MgZm9yIHRleHR1cmUgdXBsb2Fk
cworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9ODExNzUK
KworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIHRlc3Rz
L0NDUXVhZEN1bGxlclRlc3QuY3BwOgorICAgICAgICAoV2ViQ29yZTo6YXBwZW5kUXVhZHMpOgor
ICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgIChXZWJDb3JlOjpURVNUKToKKyAgICAgICAgKiB0
ZXN0cy9Nb2NrQ0NRdWFkQ3VsbGVyLmg6CisgICAgICAgIChXZWJDb3JlOjpNb2NrQ0NRdWFkQ3Vs
bGVyOjpNb2NrQ0NRdWFkQ3VsbGVyKToKKyAgICAgICAgKiB0ZXN0cy9UaWxlZExheWVyQ2hyb21p
dW1UZXN0LmNwcDoKKyAgICAgICAgKFdURjo6VEVTVCk6CisKKzIwMTItMDMtMTQgIERhbmEgSmFu
c2VucyAgPGRhbmFrakBjaHJvbWl1bS5vcmc+CisKICAgICAgICAgW2Nocm9taXVtXSBNb3ZlIG92
ZXJkcmF3IG1ldHJpY3MgaW50byBhIHRlbXBsYXRlZCBjbGFzcyBmb3IgYm90aCBwYWludCBhbmQg
ZHJhdyBtZXRyaWNzLgogICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9ODExNTYKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvY2hyb21pdW0vVGlsZWRMYXllckNocm9taXVtLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL2Nocm9taXVtL1RpbGVkTGF5ZXJDaHJvbWl1bS5jcHAKaW5kZXggODUzZDY3
NTRjYWE1OWI3YmUyODEzOTMyODllZDdkMDBjZDM0OTI1Ni4uNGZhM2E4MTU2MmFkYjUyM2QzOTll
MWZkYTEzYTFmYjdjMTdkZmU1NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvY2hyb21pdW0vVGlsZWRMYXllckNocm9taXVtLmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9UaWxlZExheWVyQ2hyb21pdW0uY3BwCkBA
IC03Miw2ICs3Miw3IEBAIHB1YmxpYzoKIAogICAgIEludFJlY3QgbV9kaXJ0eVJlY3Q7CiAgICAg
SW50UmVjdCBtX3VwZGF0ZVJlY3Q7CisgICAgSW50UmVjdCBtX2N1bGxlZEF3YXlEaXJ0eVJlY3Q7
CiAgICAgYm9vbCBtX3BhcnRpYWxVcGRhdGU7CiBwcml2YXRlOgogICAgIGV4cGxpY2l0IFVwZGF0
YWJsZVRpbGUoUGFzc093blB0cjxMYXllclRleHR1cmVVcGRhdGVyOjpUZXh0dXJlPiB0ZXh0dXJl
KQpAQCAtNDE1LDEwICs0MTYsMTMgQEAgdm9pZCBUaWxlZExheWVyQ2hyb21pdW06OnByZXBhcmVU
b1VwZGF0ZVRpbGVzKGJvb2wgaWRsZSwgaW50IGxlZnQsIGludCB0b3AsIGludAogICAgICAgICAg
ICAgLy8gV2hlbiBub3QgaWRsZSBwYWludGluZywgaWYgdGhlIHZpc2libGUgcmVnaW9uIG9mIHRo
ZSB0aWxlIGlzIG9jY2x1ZGVkLCBkb24ndCByZXNlcnZlIGEgdGV4dHVyZSBvciBtYXJrIGl0IGZv
ciB1cGRhdGUuCiAgICAgICAgICAgICAvLyBJZiBhbnkgcGFydCBvZiB0aGUgdGlsZSBpcyB2aXNp
YmxlLCB0aGVuIHdlIG5lZWQgdG8gcGFpbnQgaXQgc28gdGhlIHRpbGUgaXMgcHVzaGVkIHRvIHRo
ZSBpbXBsIHRocmVhZC4KICAgICAgICAgICAgIC8vIFRoaXMgd2lsbCBhbHNvIGF2b2lkIHBhaW50
aW5nIHRoZSB0aWxlIGluIHRoZSBuZXh0IGxvb3AsIGJlbG93LgorICAgICAgICAgICAgdGlsZS0+
bV9jdWxsZWRBd2F5RGlydHlSZWN0ID0gSW50UmVjdCgpOwogICAgICAgICAgICAgaWYgKCFpZGxl
ICYmIG9jY2x1c2lvbikgewogICAgICAgICAgICAgICAgIEludFJlY3QgdmlzaWJsZVRpbGVSZWN0
ID0gaW50ZXJzZWN0aW9uKG1fdGlsZXItPnRpbGVCb3VuZHMoaSwgaiksIHZpc2libGVMYXllclJl
Y3QoKSk7Ci0gICAgICAgICAgICAgICAgaWYgKG9jY2x1c2lvbi0+b2NjbHVkZWQodGhpcywgdmlz
aWJsZVRpbGVSZWN0KSkKKyAgICAgICAgICAgICAgICBpZiAob2NjbHVzaW9uLT5vY2NsdWRlZCh0
aGlzLCB2aXNpYmxlVGlsZVJlY3QpKSB7CisgICAgICAgICAgICAgICAgICAgIHRpbGUtPm1fY3Vs
bGVkQXdheURpcnR5UmVjdCA9IHRpbGUtPm1fZGlydHlSZWN0OwogICAgICAgICAgICAgICAgICAg
ICBjb250aW51ZTsKKyAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICB9CiAKICAgICAgICAg
ICAgIC8vIEZJWE1FOiBEZWNpZGUgaWYgcGFydGlhbCB1cGRhdGUgc2hvdWxkIGJlIGFsbG93ZWQg
YmFzZWQgb24gY29zdApAQCAtNDc5LDYgKzQ4MywxNCBAQCB2b2lkIFRpbGVkTGF5ZXJDaHJvbWl1
bTo6cHJlcGFyZVRvVXBkYXRlVGlsZXMoYm9vbCBpZGxlLCBpbnQgbGVmdCwgaW50IHRvcCwgaW50
CiAKICAgICAgICAgICAgIEludFJlY3QgdGlsZVJlY3QgPSBtX3RpbGVyLT50aWxlQm91bmRzKGks
IGopOwogCisgICAgICAgICAgICBpZiAoIWlkbGUgJiYgb2NjbHVzaW9uICYmICF0aWxlLT5tX2N1
bGxlZEF3YXlEaXJ0eVJlY3QuaXNFbXB0eSgpKSB7CisgICAgICAgICAgICAgICAgLy8gRGV0ZXJt
aW5lIHdoYXQgd291bGQgaGF2ZSBiZWVuIHVwbG9hZGVkIGlmIGl0IGhhZG4ndCBiZWVuIGN1bGxl
ZCB1c2luZyB0aGUgc2FtZSBmb3JtdWxhIGFzIGZvciBzb3VyY2VSZWN0LgorICAgICAgICAgICAg
ICAgIEludFJlY3QgYmVmb3JlQ3VsbFJlY3QgPSBtX3RpbGVyLT50aWxlUmVjdCh0aWxlKTsKKyAg
ICAgICAgICAgICAgICBiZWZvcmVDdWxsUmVjdC5pbnRlcnNlY3QodGlsZS0+bV9jdWxsZWRBd2F5
RGlydHlSZWN0KTsKKyAgICAgICAgICAgICAgICBiZWZvcmVDdWxsUmVjdC5pbnRlcnNlY3QobV9w
YWludFJlY3QpOworICAgICAgICAgICAgICAgIG9jY2x1c2lvbi0+b3ZlcmRyYXdNZXRyaWNzKCku
ZGlkQ3VsbChUcmFuc2Zvcm1hdGlvbk1hdHJpeCgpLCBiZWZvcmVDdWxsUmVjdCwgSW50UmVjdCgp
KTsKKyAgICAgICAgICAgIH0KKwogICAgICAgICAgICAgLy8gVXNlIG1fdXBkYXRlUmVjdCBhcyBj
b3B5QW5kQ2xlYXJEaXJ0eSBhYm92ZSBtb3ZlZCB0aGUgZXhpc3RpbmcgZGlydHkgcmVjdCB0byBt
X3VwZGF0ZVJlY3QgaWYgdGhlIHRpbGUgaXNuJ3QgY3VsbGVkLgogICAgICAgICAgICAgY29uc3Qg
SW50UmVjdCYgZGlydHlSZWN0ID0gdGlsZS0+bV91cGRhdGVSZWN0OwogICAgICAgICAgICAgaWYg
KGRpcnR5UmVjdC5pc0VtcHR5KCkpCkBAIC01MDksNiArNTIxLDggQEAgdm9pZCBUaWxlZExheWVy
Q2hyb21pdW06OnByZXBhcmVUb1VwZGF0ZVRpbGVzKGJvb2wgaWRsZSwgaW50IGxlZnQsIGludCB0
b3AsIGludAogICAgICAgICAgICAgICAgIGNvbnRpbnVlOwogCiAgICAgICAgICAgICB0aWxlLT50
ZXh0dXJlKCktPnByZXBhcmVSZWN0KHNvdXJjZVJlY3QpOworICAgICAgICAgICAgaWYgKG9jY2x1
c2lvbikKKyAgICAgICAgICAgICAgICBvY2NsdXNpb24tPm92ZXJkcmF3TWV0cmljcygpLmRpZERy
YXcoVHJhbnNmb3JtYXRpb25NYXRyaXgoKSwgc291cmNlUmVjdCwgdGlsZS0+b3BhcXVlUmVjdCgp
KTsKICAgICAgICAgfQogICAgIH0KIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL2Nocm9taXVtL2NjL0NDTGF5ZXJUcmVlSG9zdC5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9jYy9DQ0xheWVyVHJlZUhvc3QuY3BwCmlu
ZGV4IDA2NTkwMmNlNWEzMTMyM2RmZmU5MWM4ZTVhZWNmMDMxYzc1OTUwZTAuLmRlMzc2ZGJlNWMy
ZGY4YWZhM2QwMjIxNmU1YmJmNGNhMDBhYTc2MDQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL2NjL0NDTGF5ZXJUcmVlSG9zdC5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vY2MvQ0NMYXllclRyZWVI
b3N0LmNwcApAQCAtNTU3LDYgKzU1Nyw4IEBAIHZvaWQgQ0NMYXllclRyZWVIb3N0OjpwYWludExh
eWVyQ29udGVudHMoY29uc3QgTGF5ZXJMaXN0JiByZW5kZXJTdXJmYWNlTGF5ZXJMaXN0CiAgICAg
ICAgIH0gZWxzZQogICAgICAgICAgICAgb2NjbHVzaW9uVHJhY2tlci5sZWF2ZVRvVGFyZ2V0UmVu
ZGVyU3VyZmFjZShpdC50YXJnZXRSZW5kZXJTdXJmYWNlTGF5ZXIoKS0+cmVuZGVyU3VyZmFjZSgp
KTsKICAgICB9CisKKyAgICBvY2NsdXNpb25UcmFja2VyLm92ZXJkcmF3TWV0cmljcygpLnJlY29y
ZE1ldHJpY3ModGhpcyk7CiB9CiAKIHZvaWQgQ0NMYXllclRyZWVIb3N0Ojp1cGRhdGVDb21wb3Np
dG9yUmVzb3VyY2VzKEdyYXBoaWNzQ29udGV4dDNEKiBjb250ZXh0LCBDQ1RleHR1cmVVcGRhdGVy
JiB1cGRhdGVyKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
Y2hyb21pdW0vY2MvQ0NMYXllclRyZWVIb3N0SW1wbC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9jYy9DQ0xheWVyVHJlZUhvc3RJbXBsLmNwcAppbmRleCBi
OWIzYTQ2YTRjODhjMzQ5MmIxY2Q1MDE0ZTIxMDY2OGNjOTk2MzY0Li4yODIwYjhiMWU2ZjdjZDEy
MGNhYTJiMDQ0Yzk5MjI3NTIwOGEzNGU0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9jYy9DQ0xheWVyVHJlZUhvc3RJbXBsLmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9jYy9DQ0xheWVyVHJlZUhv
c3RJbXBsLmNwcApAQCAtMzUsNyArMzUsNiBAQAogI2luY2x1ZGUgImNjL0NDTGF5ZXJJdGVyYXRv
ci5oIgogI2luY2x1ZGUgImNjL0NDTGF5ZXJUcmVlSG9zdC5oIgogI2luY2x1ZGUgImNjL0NDTGF5
ZXJUcmVlSG9zdENvbW1vbi5oIgotI2luY2x1ZGUgImNjL0NDT3ZlcmRyYXdNZXRyaWNzLmgiCiAj
aW5jbHVkZSAiY2MvQ0NQYWdlU2NhbGVBbmltYXRpb24uaCIKICNpbmNsdWRlICJjYy9DQ1JlbmRl
clN1cmZhY2VEcmF3UXVhZC5oIgogI2luY2x1ZGUgImNjL0NDVGhyZWFkVGFzay5oIgpAQCAtMjYw
LDkgKzI1OSw2IEBAIHZvaWQgQ0NMYXllclRyZWVIb3N0SW1wbDo6Y2FsY3VsYXRlUmVuZGVyUGFz
c2VzKENDUmVuZGVyUGFzc0xpc3QmIHBhc3NlcywgQ0NMYXllCiAgICAgICAgIHBhc3Nlcy5hcHBl
bmQocGFzcy5yZWxlYXNlKCkpOwogICAgIH0KIAotICAgIC8vIEZJWE1FOiBjb21wdXRlIG92ZXJk
cmF3IG1ldHJpY3Mgb25seSBvY2Nhc2lvbmFsbHksIG5vdCBldmVyeSBmcmFtZS4KLSAgICBDQ092
ZXJkcmF3TWV0cmljcyBvdmVyZHJhd01ldHJpY3M7Ci0KICAgICBJbnRSZWN0IHNjaXNzb3JSZWN0
OwogICAgIGlmIChsYXllclJlbmRlcmVyQ2FwYWJpbGl0aWVzKCkudXNpbmdQYXJ0aWFsU3dhcCkK
ICAgICAgICAgc2Npc3NvclJlY3QgPSBlbmNsb3NpbmdJbnRSZWN0KG1fcm9vdERhbWFnZVJlY3Qp
OwpAQCAtMjk2LDExICsyOTIsMTEgQEAgdm9pZCBDQ0xheWVyVHJlZUhvc3RJbXBsOjpjYWxjdWxh
dGVSZW5kZXJQYXNzZXMoQ0NSZW5kZXJQYXNzTGlzdCYgcGFzc2VzLCBDQ0xheWUKICAgICAgICAg
fQogCiAgICAgICAgIGl0LT53aWxsRHJhdyhtX2xheWVyUmVuZGVyZXIuZ2V0KCkpOwotICAgICAg
ICBwYXNzLT5hcHBlbmRRdWFkc0ZvckxheWVyKCppdCwgJm9jY2x1c2lvblRyYWNrZXIsICZvdmVy
ZHJhd01ldHJpY3MpOworICAgICAgICBwYXNzLT5hcHBlbmRRdWFkc0ZvckxheWVyKCppdCwgJm9j
Y2x1c2lvblRyYWNrZXIpOwogICAgICAgICBvY2NsdXNpb25UcmFja2VyLm1hcmtPY2NsdWRlZEJl
aGluZExheWVyKCppdCk7CiAgICAgfQogCi0gICAgb3ZlcmRyYXdNZXRyaWNzLnJlY29yZE1ldHJp
Y3ModGhpcyk7CisgICAgb2NjbHVzaW9uVHJhY2tlci5vdmVyZHJhd01ldHJpY3MoKS5yZWNvcmRN
ZXRyaWNzKHRoaXMpOwogfQogCiB2b2lkIENDTGF5ZXJUcmVlSG9zdEltcGw6OmFuaW1hdGVMYXll
cnNSZWN1cnNpdmUoQ0NMYXllckltcGwqIGN1cnJlbnQsIGRvdWJsZSBtb25vdG9uaWNUaW1lLCBk
b3VibGUgd2FsbENsb2NrVGltZSwgQ0NBbmltYXRpb25FdmVudHNWZWN0b3ImIGV2ZW50cywgYm9v
bCYgZGlkQW5pbWF0ZSwgYm9vbCYgbmVlZHNBbmltYXRlTGF5ZXJzKQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vY2MvQ0NPY2NsdXNpb25UcmFj
a2VyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL2NjL0ND
T2NjbHVzaW9uVHJhY2tlci5jcHAKaW5kZXggYjJkZmNiNWI2ODBjYzU3MDQ4ZDU3YTlmMTIzMDEw
YjEwYzQ0NmM1OS4uNDBjOWYxYWZlOWI5ZDdiNDkzZjUzYTA0YWU5MDc1YzM3ZmEwZDQ1NSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vY2MvQ0NP
Y2NsdXNpb25UcmFja2VyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9jaHJvbWl1bS9jYy9DQ09jY2x1c2lvblRyYWNrZXIuY3BwCkBAIC00Miw2ICs0Miw3IEBAIHRl
bXBsYXRlPHR5cGVuYW1lIExheWVyVHlwZSwgdHlwZW5hbWUgUmVuZGVyU3VyZmFjZVR5cGU+CiBD
Q09jY2x1c2lvblRyYWNrZXJCYXNlPExheWVyVHlwZSwgUmVuZGVyU3VyZmFjZVR5cGU+OjpDQ09j
Y2x1c2lvblRyYWNrZXJCYXNlKEludFJlY3Qgc2Npc3NvclJlY3RJblNjcmVlblNwYWNlKQogICAg
IDogbV9zY2lzc29yUmVjdEluU2NyZWVuU3BhY2Uoc2Npc3NvclJlY3RJblNjcmVlblNwYWNlKQog
ICAgICwgbV9zdXJmYWNlRGFtYWdlQ2xpZW50KDApCisgICAgLCBtX292ZXJkcmF3TWV0cmljcyhD
Q092ZXJkcmF3TWV0cmljczo6Y3JlYXRlKCkpCiAgICAgLCBtX3VzZVBhaW50VHJhY2tpbmcodHJ1
ZSkgLy8gRklYTUU6IFJlbW92ZSB0aGlzIHdoZW4gcGFpbnQgdHJhY2tpbmcgaXMgb24gZm9yIHBh
aW50IGN1bGxpbmcuCiB7CiB9CkBAIC01MCw2ICs1MSw3IEBAIHRlbXBsYXRlPHR5cGVuYW1lIExh
eWVyVHlwZSwgdHlwZW5hbWUgUmVuZGVyU3VyZmFjZVR5cGU+CiBDQ09jY2x1c2lvblRyYWNrZXJC
YXNlPExheWVyVHlwZSwgUmVuZGVyU3VyZmFjZVR5cGU+OjpDQ09jY2x1c2lvblRyYWNrZXJCYXNl
KEludFJlY3Qgc2Npc3NvclJlY3RJblNjcmVlblNwYWNlLCBjb25zdCBEYW1hZ2VDbGllbnRUeXBl
KiBzdXJmYWNlRGFtYWdlQ2xpZW50KQogICAgIDogbV9zY2lzc29yUmVjdEluU2NyZWVuU3BhY2Uo
c2Npc3NvclJlY3RJblNjcmVlblNwYWNlKQogICAgICwgbV9zdXJmYWNlRGFtYWdlQ2xpZW50KHN1
cmZhY2VEYW1hZ2VDbGllbnQpCisgICAgLCBtX292ZXJkcmF3TWV0cmljcyhDQ092ZXJkcmF3TWV0
cmljczo6Y3JlYXRlKCkpCiAgICAgLCBtX3VzZVBhaW50VHJhY2tpbmcodHJ1ZSkgLy8gRklYTUU6
IFJlbW92ZSB0aGlzIHdoZW4gcGFpbnQgdHJhY2tpbmcgaXMgb24gZm9yIHBhaW50IGN1bGxpbmcu
CiB7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJv
bWl1bS9jYy9DQ09jY2x1c2lvblRyYWNrZXIuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL2Nocm9taXVtL2NjL0NDT2NjbHVzaW9uVHJhY2tlci5oCmluZGV4IDE5ZmMyYzFkZDBk
YWM4MjU1YjU2NDI4MjQzMjc4MDNiMTJhZWVlMzQuLmVhOTMwYTQ0NTIxZTZjZmQ4MWQyOGE3Yjg0
Yjg3NmMxODU1Mzk1ZTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL2Nocm9taXVtL2NjL0NDT2NjbHVzaW9uVHJhY2tlci5oCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL2NjL0NDT2NjbHVzaW9uVHJhY2tlci5oCkBAIC0y
OSw2ICsyOSw3IEBACiAjaW5jbHVkZSAiRmxvYXRRdWFkLmgiCiAjaW5jbHVkZSAiUmVnaW9uLmgi
CiAjaW5jbHVkZSAiVHJhbnNmb3JtYXRpb25NYXRyaXguaCIKKyNpbmNsdWRlICJjYy9DQ092ZXJk
cmF3TWV0cmljcy5oIgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiBjbGFzcyBDQ0xheWVySW1wbDsK
QEAgLTc3LDYgKzc4LDkgQEAgcHVibGljOgogICAgIC8vIEdpdmVzIGFuIHVub2NjbHVkZWQgc3Vi
LXJlY3Qgb2YgfGNvbnRlbnRSZWN0fCBpbiB0aGUgY29udGVudCBzcGFjZSBvZiB0aGUgbGF5ZXIu
IFVzZWQgd2hlbiBjb25zaWRlcmluZyBvY2NsdXNpb24gZm9yIGEgbGF5ZXIgdGhhdCBwYWludHMv
ZHJhd3Mgc29tZXRoaW5nLgogICAgIEludFJlY3QgdW5vY2NsdWRlZENvbnRlbnRSZWN0KGNvbnN0
IExheWVyVHlwZSosIGNvbnN0IEludFJlY3QmIGNvbnRlbnRSZWN0KSBjb25zdDsKIAorICAgIC8v
IFJlcG9ydCBvcGVyYXRpb25zIGZvciByZWNvcmRpbmcgb3ZlcmRyYXcgbWV0cmljcy4KKyAgICBD
Q092ZXJkcmF3TWV0cmljcyYgb3ZlcmRyYXdNZXRyaWNzKCkgY29uc3QgeyByZXR1cm4gKm1fb3Zl
cmRyYXdNZXRyaWNzLmdldCgpOyB9CisKICAgICAvLyBGSVhNRTogUmVtb3ZlIHRoaXMgd2hlbiBw
YWludCB0cmFja2luZyBpcyBvbiBmb3IgcGFpbnQgY3VsbGluZy4KICAgICB2b2lkIHNldFVzZVBh
aW50VHJhY2tpbmcoYm9vbCB1c2UpIHsgbV91c2VQYWludFRyYWNraW5nID0gdXNlOyB9CiAKQEAg
LTEwNiw2ICsxMTAsNyBAQCBwcm90ZWN0ZWQ6CiBwcml2YXRlOgogICAgIEludFJlY3QgbV9zY2lz
c29yUmVjdEluU2NyZWVuU3BhY2U7CiAgICAgY29uc3QgRGFtYWdlQ2xpZW50VHlwZSogbV9zdXJm
YWNlRGFtYWdlQ2xpZW50OworICAgIE93blB0cjxDQ092ZXJkcmF3TWV0cmljcz4gbV9vdmVyZHJh
d01ldHJpY3M7CiAgICAgYm9vbCBtX3VzZVBhaW50VHJhY2tpbmc7IC8vIEZJWE1FOiBSZW1vdmUg
dGhpcyB3aGVuIHBhaW50IHRyYWNraW5nIGlzIG9uIGZvciBwYWludCBjdWxsaW5nLgogfTsKIApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vY2Mv
Q0NPdmVyZHJhd01ldHJpY3MuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
Y2hyb21pdW0vY2MvQ0NPdmVyZHJhd01ldHJpY3MuY3BwCmluZGV4IDRjYjJmNGI4MGRiOWZkZDgz
YWM2OTNlMGE1Y2I5ZDQwODkwZmYzZTYuLmE3N2RjNjlmMDYxYjUwODNiODhjOGI1OGYyOTA4YzNj
NDk1MDY0YzQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2No
cm9taXVtL2NjL0NDT3ZlcmRyYXdNZXRyaWNzLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9jYy9DQ092ZXJkcmF3TWV0cmljcy5jcHAKQEAgLTU4LDIw
ICs1OCwyNiBAQCBzdGF0aWMgaW5saW5lIGZsb2F0IHF1YWRBcmVhKGNvbnN0IEZsb2F0UXVhZCYg
cXVhZCkKICAgICAgICAgICAgICAgICAgICAgICAgd2VkZ2VQcm9kdWN0KHF1YWQucDQoKSwgcXVh
ZC5wMSgpKSkpOwogfQogCi12b2lkIENDT3ZlcmRyYXdNZXRyaWNzOjpkaWREcmF3KGNvbnN0IFRy
YW5zZm9ybWF0aW9uTWF0cml4JiB0cmFuc2Zvcm1Ub1RhcmdldCwgY29uc3QgSW50UmVjdCYgYmVm
b3JlQ3VsbFJlY3QsIGNvbnN0IEludFJlY3QmIGFmdGVyQ3VsbFJlY3QsIGNvbnN0IEludFJlY3Qm
IG9wYXF1ZVJlY3QpCit2b2lkIENDT3ZlcmRyYXdNZXRyaWNzOjpkaWRDdWxsKGNvbnN0IFRyYW5z
Zm9ybWF0aW9uTWF0cml4JiB0cmFuc2Zvcm1Ub1RhcmdldCwgY29uc3QgSW50UmVjdCYgYmVmb3Jl
Q3VsbFJlY3QsIGNvbnN0IEludFJlY3QmIGFmdGVyQ3VsbFJlY3QpCiB7CiAgICAgZmxvYXQgYmVm
b3JlQ3VsbEFyZWEgPSBxdWFkQXJlYSh0cmFuc2Zvcm1Ub1RhcmdldC5tYXBRdWFkKEZsb2F0UXVh
ZChiZWZvcmVDdWxsUmVjdCkpKTsKICAgICBmbG9hdCBhZnRlckN1bGxBcmVhID0gcXVhZEFyZWEo
dHJhbnNmb3JtVG9UYXJnZXQubWFwUXVhZChGbG9hdFF1YWQoYWZ0ZXJDdWxsUmVjdCkpKTsKKwor
ICAgIG1fcGl4ZWxzQ3VsbGVkICs9IGJlZm9yZUN1bGxBcmVhIC0gYWZ0ZXJDdWxsQXJlYTsKK30K
Kwordm9pZCBDQ092ZXJkcmF3TWV0cmljczo6ZGlkRHJhdyhjb25zdCBUcmFuc2Zvcm1hdGlvbk1h
dHJpeCYgdHJhbnNmb3JtVG9UYXJnZXQsIGNvbnN0IEludFJlY3QmIGFmdGVyQ3VsbFJlY3QsIGNv
bnN0IEludFJlY3QmIG9wYXF1ZVJlY3QpCit7CisgICAgZmxvYXQgYWZ0ZXJDdWxsQXJlYSA9IHF1
YWRBcmVhKHRyYW5zZm9ybVRvVGFyZ2V0Lm1hcFF1YWQoRmxvYXRRdWFkKGFmdGVyQ3VsbFJlY3Qp
KSk7CiAgICAgZmxvYXQgYWZ0ZXJDdWxsT3BhcXVlQXJlYSA9IHF1YWRBcmVhKHRyYW5zZm9ybVRv
VGFyZ2V0Lm1hcFF1YWQoRmxvYXRRdWFkKGludGVyc2VjdGlvbihvcGFxdWVSZWN0LCBhZnRlckN1
bGxSZWN0KSkpKTsKIAogICAgIG1fcGl4ZWxzRHJhd25PcGFxdWUgKz0gYWZ0ZXJDdWxsT3BhcXVl
QXJlYTsKICAgICBtX3BpeGVsc0RyYXduVHJhbnNsdWNlbnQgKz0gYWZ0ZXJDdWxsQXJlYSAtIGFm
dGVyQ3VsbE9wYXF1ZUFyZWE7Ci0gICAgbV9waXhlbHNDdWxsZWQgKz0gYmVmb3JlQ3VsbEFyZWEg
LSBhZnRlckN1bGxBcmVhOwogfQogCiB2b2lkIENDT3ZlcmRyYXdNZXRyaWNzOjpyZWNvcmRNZXRy
aWNzKGNvbnN0IENDTGF5ZXJUcmVlSG9zdCogbGF5ZXJUcmVlSG9zdCkgY29uc3QKIHsKLSAgICBy
ZWNvcmRNZXRyaWNzSW50ZXJuYWw8Q0NMYXllclRyZWVIb3N0PihQQUlOVElORywgbGF5ZXJUcmVl
SG9zdCk7CisgICAgcmVjb3JkTWV0cmljc0ludGVybmFsPENDTGF5ZXJUcmVlSG9zdD4oVVBMT0FE
SU5HLCBsYXllclRyZWVIb3N0KTsKIH0KIAogdm9pZCBDQ092ZXJkcmF3TWV0cmljczo6cmVjb3Jk
TWV0cmljcyhjb25zdCBDQ0xheWVyVHJlZUhvc3RJbXBsKiBsYXllclRyZWVIb3N0KSBjb25zdApA
QCAtOTcsMTMgKzEwMywxMyBAQCB2b2lkIENDT3ZlcmRyYXdNZXRyaWNzOjpyZWNvcmRNZXRyaWNz
SW50ZXJuYWwoTWV0cmljc1R5cGUgbWV0cmljc1R5cGUsIGNvbnN0IExheQogICAgICAgICBvcGFx
dWVDb3VudGVyTmFtZSA9ICJQaXhlbHNEcmF3bk9wYXF1ZSI7CiAgICAgICAgIHRyYW5zbHVjZW50
Q291bnRlck5hbWUgPSAiUGl4ZWxzRHJhd25UcmFuc2x1Y2VudCI7CiAgICAgICAgIGJyZWFrOwot
ICAgIGNhc2UgUEFJTlRJTkc6Ci0gICAgICAgIGhpc3RvZ3JhbU9wYXF1ZU5hbWUgPSAiUmVuZGVy
ZXI0LnBhaW50UGl4ZWxDb3VudE9wYXF1ZSI7Ci0gICAgICAgIGhpc3RvZ3JhbVRyYW5zbHVjZW50
TmFtZSA9ICJSZW5kZXJlcjQucGFpbnRQaXhlbENvdW50VHJhbnNsdWNlbnQiOwotICAgICAgICBo
aXN0b2dyYW1DdWxsZWROYW1lID0gIlJlbmRlcmVyNC5wYWludFBpeGVsQ291bnRDdWxsZWQiOwot
ICAgICAgICBjdWxsQ291bnRlck5hbWUgPSAiUGFpbnRQaXhlbHNDdWxsZWQiOwotICAgICAgICBv
cGFxdWVDb3VudGVyTmFtZSA9ICJQaXhlbHNQYWludGVkT3BhcXVlIjsKLSAgICAgICAgdHJhbnNs
dWNlbnRDb3VudGVyTmFtZSA9ICJQaXhlbHNQYWludGVkVHJhbnNsdWNlbnQiOworICAgIGNhc2Ug
VVBMT0FESU5HOgorICAgICAgICBoaXN0b2dyYW1PcGFxdWVOYW1lID0gIlJlbmRlcmVyNC51cGxv
YWRQaXhlbENvdW50T3BhcXVlIjsKKyAgICAgICAgaGlzdG9ncmFtVHJhbnNsdWNlbnROYW1lID0g
IlJlbmRlcmVyNC51cGxvYWRQaXhlbENvdW50VHJhbnNsdWNlbnQiOworICAgICAgICBoaXN0b2dy
YW1DdWxsZWROYW1lID0gIlJlbmRlcmVyNC51cGxvYWRQaXhlbENvdW50Q3VsbGVkIjsKKyAgICAg
ICAgY3VsbENvdW50ZXJOYW1lID0gIlVwbG9hZFBpeGVsc0N1bGxlZCI7CisgICAgICAgIG9wYXF1
ZUNvdW50ZXJOYW1lID0gIlBpeGVsc1VwbG9hZGVkT3BhcXVlIjsKKyAgICAgICAgdHJhbnNsdWNl
bnRDb3VudGVyTmFtZSA9ICJQaXhlbHNVcGxvYWRlZFRyYW5zbHVjZW50IjsKICAgICAgICAgYnJl
YWs7CiAgICAgfQogICAgIEFTU0VSVChoaXN0b2dyYW1PcGFxdWVOYW1lKTsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL2NjL0NDT3ZlcmRyYXdN
ZXRyaWNzLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9jYy9D
Q092ZXJkcmF3TWV0cmljcy5oCmluZGV4IGNmNzIzNTc4NWVjYTZmYmQyNjIzMmNmMmYyZDhjZmMz
YTU4NDNkZTAuLjQ4OWNhNTY5YzUyNTUzODljY2YzMDJhNGMzOGNkODdmNjIwY2MxZjQgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL2NjL0NDT3Zl
cmRyYXdNZXRyaWNzLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hy
b21pdW0vY2MvQ0NPdmVyZHJhd01ldHJpY3MuaApAQCAtMjUsMTcgKzI1LDIxIEBACiAjaWZuZGVm
IENDT3ZlcmRyYXdNZXRyaWNzX2gKICNkZWZpbmUgQ0NPdmVyZHJhd01ldHJpY3NfaAogCisjaW5j
bHVkZSA8d3RmL1Bhc3NPd25QdHIuaD4KKwogbmFtZXNwYWNlIFdlYkNvcmUgewogY2xhc3MgSW50
UmVjdDsKIGNsYXNzIFRyYW5zZm9ybWF0aW9uTWF0cml4OwogY2xhc3MgQ0NMYXllclRyZWVIb3N0
OwogY2xhc3MgQ0NMYXllclRyZWVIb3N0SW1wbDsKIAorLy8gRklYTUU6IGNvbXB1dGUgb3ZlcmRy
YXcgbWV0cmljcyBvbmx5IG9jY2FzaW9uYWxseSwgbm90IGV2ZXJ5IGZyYW1lLgogY2xhc3MgQ0NP
dmVyZHJhd01ldHJpY3MgewogcHVibGljOgotICAgIENDT3ZlcmRyYXdNZXRyaWNzKCk7CisgICAg
c3RhdGljIFBhc3NPd25QdHI8Q0NPdmVyZHJhd01ldHJpY3M+IGNyZWF0ZSgpIHsgcmV0dXJuIGFk
b3B0UHRyKG5ldyBDQ092ZXJkcmF3TWV0cmljcygpKTsgfQogCi0gICAgdm9pZCBkaWREcmF3KGNv
bnN0IFRyYW5zZm9ybWF0aW9uTWF0cml4JiB0cmFuc2Zvcm1Ub1RhcmdldCwgY29uc3QgSW50UmVj
dCYgYmVmb3JlQ3VsbFJlY3QsIGNvbnN0IEludFJlY3QmIGFmdGVyQ3VsbFJlY3QsIGNvbnN0IElu
dFJlY3QmIG9wYXF1ZVJlY3QpOworICAgIHZvaWQgZGlkQ3VsbChjb25zdCBUcmFuc2Zvcm1hdGlv
bk1hdHJpeCYgdHJhbnNmb3JtVG9UYXJnZXQsIGNvbnN0IEludFJlY3QmIGJlZm9yZUN1bGxSZWN0
LCBjb25zdCBJbnRSZWN0JiBhZnRlckN1bGxSZWN0KTsKKyAgICB2b2lkIGRpZERyYXcoY29uc3Qg
VHJhbnNmb3JtYXRpb25NYXRyaXgmIHRyYW5zZm9ybVRvVGFyZ2V0LCBjb25zdCBJbnRSZWN0JiBh
ZnRlckN1bGxSZWN0LCBjb25zdCBJbnRSZWN0JiBvcGFxdWVSZWN0KTsKIAogICAgIHZvaWQgcmVj
b3JkTWV0cmljcyhjb25zdCBDQ0xheWVyVHJlZUhvc3QqKSBjb25zdDsKICAgICB2b2lkIHJlY29y
ZE1ldHJpY3MoY29uc3QgQ0NMYXllclRyZWVIb3N0SW1wbCopIGNvbnN0OwpAQCAtNDYsOSArNTAs
MTEgQEAgcHVibGljOgogICAgIGZsb2F0IHBpeGVsc0N1bGxlZCgpIGNvbnN0IHsgcmV0dXJuIG1f
cGl4ZWxzQ3VsbGVkOyB9CiAKIHByaXZhdGU6CisgICAgQ0NPdmVyZHJhd01ldHJpY3MoKTsKKwog
ICAgIGVudW0gTWV0cmljc1R5cGUgewogICAgICAgICBEUkFXSU5HLAotICAgICAgICBQQUlOVElO
RworICAgICAgICBVUExPQURJTkcKICAgICB9OwogCiAgICAgdGVtcGxhdGU8dHlwZW5hbWUgTGF5
ZXJUcmVlSG9zdFR5cGU+CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9jaHJvbWl1bS9jYy9DQ1F1YWRDdWxsZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvY2hyb21pdW0vY2MvQ0NRdWFkQ3VsbGVyLmNwcAppbmRleCBiMWViMTgzZWJi
NjVmNDgyOTA3NWY5ZWYxNjM3NjM4NGU0NjY1OThlLi5mMmE4NTg3MTcwYzNiYTVhZTIyZTFiMzg4
ZjNmODgyNmQwZWZkM2FjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9jaHJvbWl1bS9jYy9DQ1F1YWRDdWxsZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL2NjL0NDUXVhZEN1bGxlci5jcHAKQEAgLTQwLDExICs0
MCwxMCBAQCB1c2luZyBuYW1lc3BhY2Ugc3RkOwogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLUND
UXVhZEN1bGxlcjo6Q0NRdWFkQ3VsbGVyKENDUXVhZExpc3QmIHF1YWRMaXN0LCBDQ0xheWVySW1w
bCogbGF5ZXIsIENDT2NjbHVzaW9uVHJhY2tlckltcGwqIG9jY2x1c2lvblRyYWNrZXIsIENDT3Zl
cmRyYXdNZXRyaWNzKiBvdmVyZHJhd01ldHJpY3MpCitDQ1F1YWRDdWxsZXI6OkNDUXVhZEN1bGxl
cihDQ1F1YWRMaXN0JiBxdWFkTGlzdCwgQ0NMYXllckltcGwqIGxheWVyLCBDQ09jY2x1c2lvblRy
YWNrZXJJbXBsKiBvY2NsdXNpb25UcmFja2VyKQogICAgIDogbV9xdWFkTGlzdChxdWFkTGlzdCkK
ICAgICAsIG1fbGF5ZXIobGF5ZXIpCiAgICAgLCBtX29jY2x1c2lvblRyYWNrZXIob2NjbHVzaW9u
VHJhY2tlcikKLSAgICAsIG1fb3ZlcmRyYXdNZXRyaWNzKG92ZXJkcmF3TWV0cmljcykKIHsKIH0K
IApAQCAtNTYsOCArNTUsOCBAQCB2b2lkIENDUXVhZEN1bGxlcjo6YXBwZW5kKFBhc3NPd25QdHI8
Q0NEcmF3UXVhZD4gcGFzc0RyYXdRdWFkKQogICAgIGlmIChrZWVwUXVhZCkKICAgICAgICAgZHJh
d1F1YWQtPnNldFF1YWRWaXNpYmxlUmVjdChjdWxsZWRSZWN0KTsKIAotICAgIGlmIChtX292ZXJk
cmF3TWV0cmljcykKLSAgICAgICAgbV9vdmVyZHJhd01ldHJpY3MtPmRpZERyYXcoZHJhd1F1YWQt
PnF1YWRUcmFuc2Zvcm0oKSwgZHJhd1F1YWQtPnF1YWRSZWN0KCksIGN1bGxlZFJlY3QsIGRyYXdR
dWFkLT5vcGFxdWVSZWN0KCkpOworICAgIG1fb2NjbHVzaW9uVHJhY2tlci0+b3ZlcmRyYXdNZXRy
aWNzKCkuZGlkQ3VsbChkcmF3UXVhZC0+cXVhZFRyYW5zZm9ybSgpLCBkcmF3UXVhZC0+cXVhZFJl
Y3QoKSwgY3VsbGVkUmVjdCk7CisgICAgbV9vY2NsdXNpb25UcmFja2VyLT5vdmVyZHJhd01ldHJp
Y3MoKS5kaWREcmF3KGRyYXdRdWFkLT5xdWFkVHJhbnNmb3JtKCksIGN1bGxlZFJlY3QsIGRyYXdR
dWFkLT5vcGFxdWVSZWN0KCkpOwogCiAgICAgLy8gUmVsZWFzZSB0aGUgcXVhZCBhZnRlciB3ZSdy
ZSBkb25lIHVzaW5nIGl0LgogICAgIGlmIChrZWVwUXVhZCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL2NjL0NDUXVhZEN1bGxlci5oIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vY2MvQ0NRdWFkQ3VsbGVyLmgK
aW5kZXggOTc2N2JhZTMxMmM2OWViYTQ2ZWE2ZDlmMDJhODdkMTdhMGQ4MTZhNS4uMWY0YjkyMDU2
MmFlOTVjNTZkZjcwNjkzZDhiOWMxNzA4ZmM5OTcyMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vY2MvQ0NRdWFkQ3VsbGVyLmgKKysrIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vY2MvQ0NRdWFkQ3VsbGVyLmgK
QEAgLTM2LDcgKzM2LDcgQEAgY2xhc3MgQ0NRdWFkQ3VsbGVyIHsKIHB1YmxpYzoKICAgICAvLyBQ
YXNzaW5nIDAgZm9yIENDT3ZlcmRyYXdDb3VudHMqIGlzIHZhbGlkLCBhbmQgZGlzYWJsZSB0aGUg
ZXh0cmEgY29tcHV0YXRpb24KICAgICAvLyBkb25lIHRvIGVzdGltYXRlIG92ZXIgZHJhdyBzdGF0
aXN0aWNzLgotICAgIENDUXVhZEN1bGxlcihDQ1F1YWRMaXN0JiwgQ0NMYXllckltcGwqLCBDQ09j
Y2x1c2lvblRyYWNrZXJJbXBsKiwgQ0NPdmVyZHJhd01ldHJpY3MqKTsKKyAgICBDQ1F1YWRDdWxs
ZXIoQ0NRdWFkTGlzdCYsIENDTGF5ZXJJbXBsKiwgQ0NPY2NsdXNpb25UcmFja2VySW1wbCopOwog
CiAgICAgdmlydHVhbCB2b2lkIGFwcGVuZChQYXNzT3duUHRyPENDRHJhd1F1YWQ+IHBhc3NEcmF3
UXVhZCk7CiAKQEAgLTQ0LDcgKzQ0LDYgQEAgcHJpdmF0ZToKICAgICBDQ1F1YWRMaXN0JiBtX3F1
YWRMaXN0OwogICAgIENDTGF5ZXJJbXBsKiBtX2xheWVyOwogICAgIENDT2NjbHVzaW9uVHJhY2tl
ckltcGwqIG1fb2NjbHVzaW9uVHJhY2tlcjsKLSAgICBDQ092ZXJkcmF3TWV0cmljcyogbV9vdmVy
ZHJhd01ldHJpY3M7CiB9OwogCiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9jaHJvbWl1bS9jYy9DQ1JlbmRlclBhc3MuY3BwIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vY2MvQ0NSZW5kZXJQYXNzLmNwcAppbmRleCA3NDAx
OTlhMWEyZTNlYmYyZmIwZDIzYzJjMDM2MWY5MGJiMTBmOTU5Li5hMTJiZmJiNTlmNGE3YjkzOTYz
ZDI0MzRlYzYwY2JlODUwMDU2MzRhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9jaHJvbWl1bS9jYy9DQ1JlbmRlclBhc3MuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL2NjL0NDUmVuZGVyUGFzcy5jcHAKQEAgLTQ2
LDkgKzQ2LDkgQEAgQ0NSZW5kZXJQYXNzOjpDQ1JlbmRlclBhc3MoQ0NSZW5kZXJTdXJmYWNlKiB0
YXJnZXRTdXJmYWNlKQogICAgIEFTU0VSVChtX3RhcmdldFN1cmZhY2UpOwogfQogCi12b2lkIEND
UmVuZGVyUGFzczo6YXBwZW5kUXVhZHNGb3JMYXllcihDQ0xheWVySW1wbCogbGF5ZXIsIENDT2Nj
bHVzaW9uVHJhY2tlckltcGwqIG9jY2x1c2lvblRyYWNrZXIsIENDT3ZlcmRyYXdNZXRyaWNzKiBv
dmVyZHJhd01ldHJpY3MpCit2b2lkIENDUmVuZGVyUGFzczo6YXBwZW5kUXVhZHNGb3JMYXllcihD
Q0xheWVySW1wbCogbGF5ZXIsIENDT2NjbHVzaW9uVHJhY2tlckltcGwqIG9jY2x1c2lvblRyYWNr
ZXIpCiB7Ci0gICAgQ0NRdWFkQ3VsbGVyIHF1YWRDdWxsZXIobV9xdWFkTGlzdCwgbGF5ZXIsIG9j
Y2x1c2lvblRyYWNrZXIsIG92ZXJkcmF3TWV0cmljcyk7CisgICAgQ0NRdWFkQ3VsbGVyIHF1YWRD
dWxsZXIobV9xdWFkTGlzdCwgbGF5ZXIsIG9jY2x1c2lvblRyYWNrZXIpOwogCiAgICAgT3duUHRy
PENDU2hhcmVkUXVhZFN0YXRlPiBzaGFyZWRRdWFkU3RhdGUgPSBsYXllci0+Y3JlYXRlU2hhcmVk
UXVhZFN0YXRlKCk7CiAgICAgbGF5ZXItPmFwcGVuZFF1YWRzKHF1YWRDdWxsZXIsIHNoYXJlZFF1
YWRTdGF0ZS5nZXQoKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9jaHJvbWl1bS9jYy9DQ1JlbmRlclBhc3MuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL2Nocm9taXVtL2NjL0NDUmVuZGVyUGFzcy5oCmluZGV4IGUwYWIzZWRhYTkwZjQ1
N2U5MzAyNWY0MTJhNmI5MTRjZTFlOTA0ZTYuLmFjOGRiYzFhMGQyNmE4NDc2NjU3ZmI2NzJjMmYx
NWFhYjI0YzhlZTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L2Nocm9taXVtL2NjL0NDUmVuZGVyUGFzcy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL2Nocm9taXVtL2NjL0NDUmVuZGVyUGFzcy5oCkBAIC0zNCw3ICszNCw2IEBACiBu
YW1lc3BhY2UgV2ViQ29yZSB7CiAKIGNsYXNzIENDTGF5ZXJJbXBsOwotY2xhc3MgQ0NPdmVyZHJh
d01ldHJpY3M7CiBjbGFzcyBDQ1JlbmRlclN1cmZhY2U7CiBjbGFzcyBDQ1NoYXJlZFF1YWRTdGF0
ZTsKIApAQCAtNTUsNyArNTQsNyBAQCBjbGFzcyBDQ1JlbmRlclBhc3MgewogcHVibGljOgogICAg
IHN0YXRpYyBQYXNzT3duUHRyPENDUmVuZGVyUGFzcz4gY3JlYXRlKENDUmVuZGVyU3VyZmFjZSop
OwogCi0gICAgdm9pZCBhcHBlbmRRdWFkc0ZvckxheWVyKENDTGF5ZXJJbXBsKiwgQ0NPY2NsdXNp
b25UcmFja2VySW1wbCosIENDT3ZlcmRyYXdNZXRyaWNzKik7CisgICAgdm9pZCBhcHBlbmRRdWFk
c0ZvckxheWVyKENDTGF5ZXJJbXBsKiwgQ0NPY2NsdXNpb25UcmFja2VySW1wbCopOwogICAgIHZv
aWQgYXBwZW5kUXVhZHNGb3JSZW5kZXJTdXJmYWNlTGF5ZXIoQ0NMYXllckltcGwqKTsKIAogICAg
IGNvbnN0IENDUXVhZExpc3QmIHF1YWRMaXN0KCkgY29uc3QgeyByZXR1cm4gbV9xdWFkTGlzdDsg
fQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS90ZXN0cy9DQ1F1YWRDdWxsZXJU
ZXN0LmNwcCBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vdGVzdHMvQ0NRdWFkQ3VsbGVyVGVzdC5j
cHAKaW5kZXggYjIzYWFlZTRiMjUzNzg3MDc5ODNhMzJhNjY0YWRkOTExYzhhNzljZC4uZTYxM2M5
MDBmNDRjNjZkNDEyYjQ4MzNjOGRhZjczMWI0NTMwYmFlMCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC9jaHJvbWl1bS90ZXN0cy9DQ1F1YWRDdWxsZXJUZXN0LmNwcAorKysgYi9Tb3VyY2UvV2Vi
S2l0L2Nocm9taXVtL3Rlc3RzL0NDUXVhZEN1bGxlclRlc3QuY3BwCkBAIC03OCw5ICs3OCw5IEBA
IHN0YXRpYyBQYXNzT3duUHRyPENDVGlsZWRMYXllckltcGw+IG1ha2VMYXllcihjb25zdCBUcmFu
c2Zvcm1hdGlvbk1hdHJpeCYgZHJhd1RyCiAgICAgcmV0dXJuIGxheWVyLnJlbGVhc2UoKTsKIH0K
IAotc3RhdGljIHZvaWQgYXBwZW5kUXVhZHMoQ0NRdWFkTGlzdCYgcXVhZExpc3QsIENDVGlsZWRM
YXllckltcGwqIGxheWVyLCBDQ09jY2x1c2lvblRyYWNrZXJJbXBsJiBvY2NsdXNpb25UcmFja2Vy
LCBDQ092ZXJkcmF3TWV0cmljcyYgb3ZlcmRyYXcpCitzdGF0aWMgdm9pZCBhcHBlbmRRdWFkcyhD
Q1F1YWRMaXN0JiBxdWFkTGlzdCwgQ0NUaWxlZExheWVySW1wbCogbGF5ZXIsIENDT2NjbHVzaW9u
VHJhY2tlckltcGwmIG9jY2x1c2lvblRyYWNrZXIpCiB7Ci0gICAgQ0NRdWFkQ3VsbGVyIHF1YWRD
dWxsZXIocXVhZExpc3QsIGxheWVyLCAmb2NjbHVzaW9uVHJhY2tlciwgJm92ZXJkcmF3KTsKKyAg
ICBDQ1F1YWRDdWxsZXIgcXVhZEN1bGxlcihxdWFkTGlzdCwgbGF5ZXIsICZvY2NsdXNpb25UcmFj
a2VyKTsKICAgICBPd25QdHI8Q0NTaGFyZWRRdWFkU3RhdGU+IHNoYXJlZFF1YWRTdGF0ZSA9IGxh
eWVyLT5jcmVhdGVTaGFyZWRRdWFkU3RhdGUoKTsKICAgICBsYXllci0+YXBwZW5kUXVhZHMocXVh
ZEN1bGxlciwgc2hhcmVkUXVhZFN0YXRlLmdldCgpKTsKIH0KQEAgLTg4LDcgKzg4LDYgQEAgc3Rh
dGljIHZvaWQgYXBwZW5kUXVhZHMoQ0NRdWFkTGlzdCYgcXVhZExpc3QsIENDVGlsZWRMYXllcklt
cGwqIGxheWVyLCBDQ09jY2x1c2kKICNkZWZpbmUgREVDTEFSRV9BTkRfSU5JVElBTElaRV9URVNU
X1FVQURTICAgICAgICAgICAgICAgXAogICAgIERlYnVnU2NvcGVkU2V0SW1wbFRocmVhZCBpbXBs
OyAgICAgICAgICAgICAgICAgICAgICBcCiAgICAgQ0NRdWFkTGlzdCBxdWFkTGlzdDsgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIFwKLSAgICBDQ092ZXJkcmF3TWV0cmljcyBvdmVyZHJh
dzsgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgIFRyYW5zZm9ybWF0aW9uTWF0cml4IGNo
aWxkVHJhbnNmb3JtOyAgICAgICAgICAgICAgICBcCiAgICAgSW50U2l6ZSByb290U2l6ZSA9IElu
dFNpemUoMzAwLCAzMDApOyAgICAgICAgICAgICAgIFwKICAgICBJbnRSZWN0IHJvb3RSZWN0ID0g
SW50UmVjdChJbnRQb2ludCgpLCByb290U2l6ZSk7ICAgXApAQCAtMTAzLDEyICsxMDIsMTIgQEAg
VEVTVChDQ1F1YWRDdWxsZXJUZXN0LCB2ZXJpZnlOb0N1bGxpbmcpCiAgICAgT3duUHRyPENDVGls
ZWRMYXllckltcGw+IGNoaWxkTGF5ZXIgPSBtYWtlTGF5ZXIoVHJhbnNmb3JtYXRpb25NYXRyaXgo
KSwgY2hpbGRSZWN0LCAxLjAsIHRydWUsIEludFJlY3QoKSk7CiAgICAgVGVzdENDT2NjbHVzaW9u
VHJhY2tlckltcGwgb2NjbHVzaW9uVHJhY2tlcihJbnRSZWN0KC0xMDAsIC0xMDAsIDEwMDAsIDEw
MDApKTsKIAotICAgIGFwcGVuZFF1YWRzKHF1YWRMaXN0LCBjaGlsZExheWVyLmdldCgpLCBvY2Ns
dXNpb25UcmFja2VyLCBvdmVyZHJhdyk7Ci0gICAgYXBwZW5kUXVhZHMocXVhZExpc3QsIHJvb3RM
YXllci5nZXQoKSwgb2NjbHVzaW9uVHJhY2tlciwgb3ZlcmRyYXcpOworICAgIGFwcGVuZFF1YWRz
KHF1YWRMaXN0LCBjaGlsZExheWVyLmdldCgpLCBvY2NsdXNpb25UcmFja2VyKTsKKyAgICBhcHBl
bmRRdWFkcyhxdWFkTGlzdCwgcm9vdExheWVyLmdldCgpLCBvY2NsdXNpb25UcmFja2VyKTsKICAg
ICBFWFBFQ1RfRVEocXVhZExpc3Quc2l6ZSgpLCAxM3UpOwotICAgIEVYUEVDVF9ORUFSKG92ZXJk
cmF3LnBpeGVsc0RyYXduT3BhcXVlKCksIDEzMDAwMCwgMSk7Ci0gICAgRVhQRUNUX05FQVIob3Zl
cmRyYXcucGl4ZWxzRHJhd25UcmFuc2x1Y2VudCgpLCAwLCAxKTsKLSAgICBFWFBFQ1RfTkVBUihv
dmVyZHJhdy5waXhlbHNDdWxsZWQoKSwgMCwgMSk7CisgICAgRVhQRUNUX05FQVIob2NjbHVzaW9u
VHJhY2tlci5vdmVyZHJhd01ldHJpY3MoKS5waXhlbHNEcmF3bk9wYXF1ZSgpLCAxMzAwMDAsIDEp
OworICAgIEVYUEVDVF9ORUFSKG9jY2x1c2lvblRyYWNrZXIub3ZlcmRyYXdNZXRyaWNzKCkucGl4
ZWxzRHJhd25UcmFuc2x1Y2VudCgpLCAwLCAxKTsKKyAgICBFWFBFQ1RfTkVBUihvY2NsdXNpb25U
cmFja2VyLm92ZXJkcmF3TWV0cmljcygpLnBpeGVsc0N1bGxlZCgpLCAwLCAxKTsKIH0KIAogLy8g
RmFpbHMgb24gV2luZG93cyBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
ODEwODMKQEAgLTEyMCwxMyArMTE5LDEzIEBAIFRFU1QoQ0NRdWFkQ3VsbGVyVGVzdCwgRkFJTFNf
dmVyaWZ5Q3VsbENoaWxkTGluZXNVcFRvcExlZnQpCiAgICAgT3duUHRyPENDVGlsZWRMYXllcklt
cGw+IGNoaWxkTGF5ZXIgPSBtYWtlTGF5ZXIoVHJhbnNmb3JtYXRpb25NYXRyaXgoKSwgY2hpbGRS
ZWN0LCAxLjAsIHRydWUsIEludFJlY3QoKSk7CiAgICAgVGVzdENDT2NjbHVzaW9uVHJhY2tlcklt
cGwgb2NjbHVzaW9uVHJhY2tlcihJbnRSZWN0KC0xMDAsIC0xMDAsIDEwMDAsIDEwMDApKTsKIAot
ICAgIGFwcGVuZFF1YWRzKHF1YWRMaXN0LCBjaGlsZExheWVyLmdldCgpLCBvY2NsdXNpb25UcmFj
a2VyLCBvdmVyZHJhdyk7CisgICAgYXBwZW5kUXVhZHMocXVhZExpc3QsIGNoaWxkTGF5ZXIuZ2V0
KCksIG9jY2x1c2lvblRyYWNrZXIpOwogICAgIG9jY2x1c2lvblRyYWNrZXIubWFya09jY2x1ZGVk
QmVoaW5kTGF5ZXIoY2hpbGRMYXllci5nZXQoKSk7Ci0gICAgYXBwZW5kUXVhZHMocXVhZExpc3Qs
IHJvb3RMYXllci5nZXQoKSwgb2NjbHVzaW9uVHJhY2tlciwgb3ZlcmRyYXcpOworICAgIGFwcGVu
ZFF1YWRzKHF1YWRMaXN0LCByb290TGF5ZXIuZ2V0KCksIG9jY2x1c2lvblRyYWNrZXIpOwogICAg
IEVYUEVDVF9FUShxdWFkTGlzdC5zaXplKCksIDl1KTsKLSAgICBFWFBFQ1RfTkVBUihvdmVyZHJh
dy5waXhlbHNEcmF3bk9wYXF1ZSgpLCA5MDAwMCwgMSk7Ci0gICAgRVhQRUNUX05FQVIob3ZlcmRy
YXcucGl4ZWxzRHJhd25UcmFuc2x1Y2VudCgpLCAwLCAxKTsKLSAgICBFWFBFQ1RfTkVBUihvdmVy
ZHJhdy5waXhlbHNDdWxsZWQoKSwgNDAwMDAsIDEpOworICAgIEVYUEVDVF9ORUFSKG9jY2x1c2lv
blRyYWNrZXIub3ZlcmRyYXdNZXRyaWNzKCkucGl4ZWxzRHJhd25PcGFxdWUoKSwgOTAwMDAsIDEp
OworICAgIEVYUEVDVF9ORUFSKG9jY2x1c2lvblRyYWNrZXIub3ZlcmRyYXdNZXRyaWNzKCkucGl4
ZWxzRHJhd25UcmFuc2x1Y2VudCgpLCAwLCAxKTsKKyAgICBFWFBFQ1RfTkVBUihvY2NsdXNpb25U
cmFja2VyLm92ZXJkcmF3TWV0cmljcygpLnBpeGVsc0N1bGxlZCgpLCA0MDAwMCwgMSk7CiB9CiAK
IFRFU1QoQ0NRdWFkQ3VsbGVyVGVzdCwgdmVyaWZ5Q3VsbFdoZW5DaGlsZE9wYWNpdHlOb3RPbmUp
CkBAIC0xMzcsMTMgKzEzNiwxMyBAQCBURVNUKENDUXVhZEN1bGxlclRlc3QsIHZlcmlmeUN1bGxX
aGVuQ2hpbGRPcGFjaXR5Tm90T25lKQogICAgIE93blB0cjxDQ1RpbGVkTGF5ZXJJbXBsPiBjaGls
ZExheWVyID0gbWFrZUxheWVyKGNoaWxkVHJhbnNmb3JtLCBjaGlsZFJlY3QsIDAuOSwgdHJ1ZSwg
SW50UmVjdCgpKTsKICAgICBUZXN0Q0NPY2NsdXNpb25UcmFja2VySW1wbCBvY2NsdXNpb25UcmFj
a2VyKEludFJlY3QoLTEwMCwgLTEwMCwgMTAwMCwgMTAwMCkpOwogCi0gICAgYXBwZW5kUXVhZHMo
cXVhZExpc3QsIGNoaWxkTGF5ZXIuZ2V0KCksIG9jY2x1c2lvblRyYWNrZXIsIG92ZXJkcmF3KTsK
KyAgICBhcHBlbmRRdWFkcyhxdWFkTGlzdCwgY2hpbGRMYXllci5nZXQoKSwgb2NjbHVzaW9uVHJh
Y2tlcik7CiAgICAgb2NjbHVzaW9uVHJhY2tlci5tYXJrT2NjbHVkZWRCZWhpbmRMYXllcihjaGls
ZExheWVyLmdldCgpKTsKLSAgICBhcHBlbmRRdWFkcyhxdWFkTGlzdCwgcm9vdExheWVyLmdldCgp
LCBvY2NsdXNpb25UcmFja2VyLCBvdmVyZHJhdyk7CisgICAgYXBwZW5kUXVhZHMocXVhZExpc3Qs
IHJvb3RMYXllci5nZXQoKSwgb2NjbHVzaW9uVHJhY2tlcik7CiAgICAgRVhQRUNUX0VRKHF1YWRM
aXN0LnNpemUoKSwgMTN1KTsKLSAgICBFWFBFQ1RfTkVBUihvdmVyZHJhdy5waXhlbHNEcmF3bk9w
YXF1ZSgpLCA5MDAwMCwgMSk7Ci0gICAgRVhQRUNUX05FQVIob3ZlcmRyYXcucGl4ZWxzRHJhd25U
cmFuc2x1Y2VudCgpLCA0MDAwMCwgMSk7Ci0gICAgRVhQRUNUX05FQVIob3ZlcmRyYXcucGl4ZWxz
Q3VsbGVkKCksIDAsIDEpOworICAgIEVYUEVDVF9ORUFSKG9jY2x1c2lvblRyYWNrZXIub3ZlcmRy
YXdNZXRyaWNzKCkucGl4ZWxzRHJhd25PcGFxdWUoKSwgOTAwMDAsIDEpOworICAgIEVYUEVDVF9O
RUFSKG9jY2x1c2lvblRyYWNrZXIub3ZlcmRyYXdNZXRyaWNzKCkucGl4ZWxzRHJhd25UcmFuc2x1
Y2VudCgpLCA0MDAwMCwgMSk7CisgICAgRVhQRUNUX05FQVIob2NjbHVzaW9uVHJhY2tlci5vdmVy
ZHJhd01ldHJpY3MoKS5waXhlbHNDdWxsZWQoKSwgMCwgMSk7CiB9CiAKIFRFU1QoQ0NRdWFkQ3Vs
bGVyVGVzdCwgdmVyaWZ5Q3VsbFdoZW5DaGlsZE9wYXF1ZUZsYWdGYWxzZSkKQEAgLTE1NCwxMyAr
MTUzLDEzIEBAIFRFU1QoQ0NRdWFkQ3VsbGVyVGVzdCwgdmVyaWZ5Q3VsbFdoZW5DaGlsZE9wYXF1
ZUZsYWdGYWxzZSkKICAgICBPd25QdHI8Q0NUaWxlZExheWVySW1wbD4gY2hpbGRMYXllciA9IG1h
a2VMYXllcihjaGlsZFRyYW5zZm9ybSwgY2hpbGRSZWN0LCAxLjAsIGZhbHNlLCBJbnRSZWN0KCkp
OwogICAgIFRlc3RDQ09jY2x1c2lvblRyYWNrZXJJbXBsIG9jY2x1c2lvblRyYWNrZXIoSW50UmVj
dCgtMTAwLCAtMTAwLCAxMDAwLCAxMDAwKSk7CiAKLSAgICBhcHBlbmRRdWFkcyhxdWFkTGlzdCwg
Y2hpbGRMYXllci5nZXQoKSwgb2NjbHVzaW9uVHJhY2tlciwgb3ZlcmRyYXcpOworICAgIGFwcGVu
ZFF1YWRzKHF1YWRMaXN0LCBjaGlsZExheWVyLmdldCgpLCBvY2NsdXNpb25UcmFja2VyKTsKICAg
ICBvY2NsdXNpb25UcmFja2VyLm1hcmtPY2NsdWRlZEJlaGluZExheWVyKGNoaWxkTGF5ZXIuZ2V0
KCkpOwotICAgIGFwcGVuZFF1YWRzKHF1YWRMaXN0LCByb290TGF5ZXIuZ2V0KCksIG9jY2x1c2lv
blRyYWNrZXIsIG92ZXJkcmF3KTsKKyAgICBhcHBlbmRRdWFkcyhxdWFkTGlzdCwgcm9vdExheWVy
LmdldCgpLCBvY2NsdXNpb25UcmFja2VyKTsKICAgICBFWFBFQ1RfRVEocXVhZExpc3Quc2l6ZSgp
LCAxM3UpOwotICAgIEVYUEVDVF9ORUFSKG92ZXJkcmF3LnBpeGVsc0RyYXduT3BhcXVlKCksIDkw
MDAwLCAxKTsKLSAgICBFWFBFQ1RfTkVBUihvdmVyZHJhdy5waXhlbHNEcmF3blRyYW5zbHVjZW50
KCksIDQwMDAwLCAxKTsKLSAgICBFWFBFQ1RfTkVBUihvdmVyZHJhdy5waXhlbHNDdWxsZWQoKSwg
MCwgMSk7CisgICAgRVhQRUNUX05FQVIob2NjbHVzaW9uVHJhY2tlci5vdmVyZHJhd01ldHJpY3Mo
KS5waXhlbHNEcmF3bk9wYXF1ZSgpLCA5MDAwMCwgMSk7CisgICAgRVhQRUNUX05FQVIob2NjbHVz
aW9uVHJhY2tlci5vdmVyZHJhd01ldHJpY3MoKS5waXhlbHNEcmF3blRyYW5zbHVjZW50KCksIDQw
MDAwLCAxKTsKKyAgICBFWFBFQ1RfTkVBUihvY2NsdXNpb25UcmFja2VyLm92ZXJkcmF3TWV0cmlj
cygpLnBpeGVsc0N1bGxlZCgpLCAwLCAxKTsKIH0KIAogVEVTVChDQ1F1YWRDdWxsZXJUZXN0LCB2
ZXJpZnlDdWxsQ2VudGVyVGlsZU9ubHkpCkBAIC0xNzMsOSArMTcyLDkgQEAgVEVTVChDQ1F1YWRD
dWxsZXJUZXN0LCB2ZXJpZnlDdWxsQ2VudGVyVGlsZU9ubHkpCiAgICAgT3duUHRyPENDVGlsZWRM
YXllckltcGw+IGNoaWxkTGF5ZXIgPSBtYWtlTGF5ZXIoY2hpbGRUcmFuc2Zvcm0sIGNoaWxkUmVj
dCwgMS4wLCB0cnVlLCBJbnRSZWN0KCkpOwogICAgIFRlc3RDQ09jY2x1c2lvblRyYWNrZXJJbXBs
IG9jY2x1c2lvblRyYWNrZXIoSW50UmVjdCgtMTAwLCAtMTAwLCAxMDAwLCAxMDAwKSk7CiAKLSAg
ICBhcHBlbmRRdWFkcyhxdWFkTGlzdCwgY2hpbGRMYXllci5nZXQoKSwgb2NjbHVzaW9uVHJhY2tl
ciwgb3ZlcmRyYXcpOworICAgIGFwcGVuZFF1YWRzKHF1YWRMaXN0LCBjaGlsZExheWVyLmdldCgp
LCBvY2NsdXNpb25UcmFja2VyKTsKICAgICBvY2NsdXNpb25UcmFja2VyLm1hcmtPY2NsdWRlZEJl
aGluZExheWVyKGNoaWxkTGF5ZXIuZ2V0KCkpOwotICAgIGFwcGVuZFF1YWRzKHF1YWRMaXN0LCBy
b290TGF5ZXIuZ2V0KCksIG9jY2x1c2lvblRyYWNrZXIsIG92ZXJkcmF3KTsKKyAgICBhcHBlbmRR
dWFkcyhxdWFkTGlzdCwgcm9vdExheWVyLmdldCgpLCBvY2NsdXNpb25UcmFja2VyKTsKICAgICBF
WFBFQ1RfRVEocXVhZExpc3Quc2l6ZSgpLCAxMnUpOwogCiAgICAgSW50UmVjdCBxdWFkVmlzaWJs
ZVJlY3QxID0gcXVhZExpc3RbNV0uZ2V0KCktPnF1YWRWaXNpYmxlUmVjdCgpOwpAQCAtMTkzLDkg
KzE5Miw5IEBAIFRFU1QoQ0NRdWFkQ3VsbGVyVGVzdCwgdmVyaWZ5Q3VsbENlbnRlclRpbGVPbmx5
KQogICAgIEVYUEVDVF9FUShxdWFkVmlzaWJsZVJlY3Q2LmhlaWdodCgpLCA1MCk7CiAgICAgRVhQ
RUNUX0VRKHF1YWRWaXNpYmxlUmVjdDYueSgpLCAyNTApOwogCi0gICAgRVhQRUNUX05FQVIob3Zl
cmRyYXcucGl4ZWxzRHJhd25PcGFxdWUoKSwgMTAwMDAwLCAxKTsKLSAgICBFWFBFQ1RfTkVBUihv
dmVyZHJhdy5waXhlbHNEcmF3blRyYW5zbHVjZW50KCksIDAsIDEpOwotICAgIEVYUEVDVF9ORUFS
KG92ZXJkcmF3LnBpeGVsc0N1bGxlZCgpLCAzMDAwMCwgMSk7CisgICAgRVhQRUNUX05FQVIob2Nj
bHVzaW9uVHJhY2tlci5vdmVyZHJhd01ldHJpY3MoKS5waXhlbHNEcmF3bk9wYXF1ZSgpLCAxMDAw
MDAsIDEpOworICAgIEVYUEVDVF9ORUFSKG9jY2x1c2lvblRyYWNrZXIub3ZlcmRyYXdNZXRyaWNz
KCkucGl4ZWxzRHJhd25UcmFuc2x1Y2VudCgpLCAwLCAxKTsKKyAgICBFWFBFQ1RfTkVBUihvY2Ns
dXNpb25UcmFja2VyLm92ZXJkcmF3TWV0cmljcygpLnBpeGVsc0N1bGxlZCgpLCAzMDAwMCwgMSk7
CiB9CiAKIFRFU1QoQ0NRdWFkQ3VsbGVyVGVzdCwgdmVyaWZ5Q3VsbENlbnRlclRpbGVOb25JbnRl
Z3JhbFNpemUxKQpAQCAtMjE2LDE0ICsyMTUsMTQgQEAgVEVTVChDQ1F1YWRDdWxsZXJUZXN0LCB2
ZXJpZnlDdWxsQ2VudGVyVGlsZU5vbkludGVncmFsU2l6ZTEpCiAgICAgT3duUHRyPENDVGlsZWRM
YXllckltcGw+IGNoaWxkTGF5ZXIgPSBtYWtlTGF5ZXIoY2hpbGRUcmFuc2Zvcm0sIGNoaWxkUmVj
dCwgMS4wLCB0cnVlLCBJbnRSZWN0KCkpOwogICAgIFRlc3RDQ09jY2x1c2lvblRyYWNrZXJJbXBs
IG9jY2x1c2lvblRyYWNrZXIoSW50UmVjdCgtMTAwLCAtMTAwLCAxMDAwLCAxMDAwKSk7CiAKLSAg
ICBhcHBlbmRRdWFkcyhxdWFkTGlzdCwgY2hpbGRMYXllci5nZXQoKSwgb2NjbHVzaW9uVHJhY2tl
ciwgb3ZlcmRyYXcpOworICAgIGFwcGVuZFF1YWRzKHF1YWRMaXN0LCBjaGlsZExheWVyLmdldCgp
LCBvY2NsdXNpb25UcmFja2VyKTsKICAgICBvY2NsdXNpb25UcmFja2VyLm1hcmtPY2NsdWRlZEJl
aGluZExheWVyKGNoaWxkTGF5ZXIuZ2V0KCkpOwotICAgIGFwcGVuZFF1YWRzKHF1YWRMaXN0LCBy
b290TGF5ZXIuZ2V0KCksIG9jY2x1c2lvblRyYWNrZXIsIG92ZXJkcmF3KTsKKyAgICBhcHBlbmRR
dWFkcyhxdWFkTGlzdCwgcm9vdExheWVyLmdldCgpLCBvY2NsdXNpb25UcmFja2VyKTsKICAgICBF
WFBFQ1RfRVEocXVhZExpc3Quc2l6ZSgpLCAydSk7CiAKLSAgICBFWFBFQ1RfTkVBUihvdmVyZHJh
dy5waXhlbHNEcmF3bk9wYXF1ZSgpLCAyMDM2MywgMSk7Ci0gICAgRVhQRUNUX05FQVIob3ZlcmRy
YXcucGl4ZWxzRHJhd25UcmFuc2x1Y2VudCgpLCAwLCAxKTsKLSAgICBFWFBFQ1RfTkVBUihvdmVy
ZHJhdy5waXhlbHNDdWxsZWQoKSwgMCwgMSk7CisgICAgRVhQRUNUX05FQVIob2NjbHVzaW9uVHJh
Y2tlci5vdmVyZHJhd01ldHJpY3MoKS5waXhlbHNEcmF3bk9wYXF1ZSgpLCAyMDM2MywgMSk7Cisg
ICAgRVhQRUNUX05FQVIob2NjbHVzaW9uVHJhY2tlci5vdmVyZHJhd01ldHJpY3MoKS5waXhlbHNE
cmF3blRyYW5zbHVjZW50KCksIDAsIDEpOworICAgIEVYUEVDVF9ORUFSKG9jY2x1c2lvblRyYWNr
ZXIub3ZlcmRyYXdNZXRyaWNzKCkucGl4ZWxzQ3VsbGVkKCksIDAsIDEpOwogfQogCiBURVNUKEND
UXVhZEN1bGxlclRlc3QsIHZlcmlmeUN1bGxDZW50ZXJUaWxlTm9uSW50ZWdyYWxTaXplMikKQEAg
LTI0NCwxNCArMjQzLDE0IEBAIFRFU1QoQ0NRdWFkQ3VsbGVyVGVzdCwgdmVyaWZ5Q3VsbENlbnRl
clRpbGVOb25JbnRlZ3JhbFNpemUyKQogICAgIE93blB0cjxDQ1RpbGVkTGF5ZXJJbXBsPiBjaGls
ZExheWVyID0gbWFrZUxheWVyKGNoaWxkVHJhbnNmb3JtLCBjaGlsZFJlY3QsIDEuMCwgdHJ1ZSwg
SW50UmVjdCgpKTsKICAgICBUZXN0Q0NPY2NsdXNpb25UcmFja2VySW1wbCBvY2NsdXNpb25UcmFj
a2VyKEludFJlY3QoLTEwMCwgLTEwMCwgMTAwMCwgMTAwMCkpOwogCi0gICAgYXBwZW5kUXVhZHMo
cXVhZExpc3QsIGNoaWxkTGF5ZXIuZ2V0KCksIG9jY2x1c2lvblRyYWNrZXIsIG92ZXJkcmF3KTsK
KyAgICBhcHBlbmRRdWFkcyhxdWFkTGlzdCwgY2hpbGRMYXllci5nZXQoKSwgb2NjbHVzaW9uVHJh
Y2tlcik7CiAgICAgb2NjbHVzaW9uVHJhY2tlci5tYXJrT2NjbHVkZWRCZWhpbmRMYXllcihjaGls
ZExheWVyLmdldCgpKTsKLSAgICBhcHBlbmRRdWFkcyhxdWFkTGlzdCwgcm9vdExheWVyLmdldCgp
LCBvY2NsdXNpb25UcmFja2VyLCBvdmVyZHJhdyk7CisgICAgYXBwZW5kUXVhZHMocXVhZExpc3Qs
IHJvb3RMYXllci5nZXQoKSwgb2NjbHVzaW9uVHJhY2tlcik7CiAgICAgRVhQRUNUX0VRKHF1YWRM
aXN0LnNpemUoKSwgMnUpOwogCi0gICAgRVhQRUNUX05FQVIob3ZlcmRyYXcucGl4ZWxzRHJhd25P
cGFxdWUoKSwgMTk2NDMsIDEpOwotICAgIEVYUEVDVF9ORUFSKG92ZXJkcmF3LnBpeGVsc0RyYXdu
VHJhbnNsdWNlbnQoKSwgMCwgMSk7Ci0gICAgRVhQRUNUX05FQVIob3ZlcmRyYXcucGl4ZWxzQ3Vs
bGVkKCksIDAsIDEpOworICAgIEVYUEVDVF9ORUFSKG9jY2x1c2lvblRyYWNrZXIub3ZlcmRyYXdN
ZXRyaWNzKCkucGl4ZWxzRHJhd25PcGFxdWUoKSwgMTk2NDMsIDEpOworICAgIEVYUEVDVF9ORUFS
KG9jY2x1c2lvblRyYWNrZXIub3ZlcmRyYXdNZXRyaWNzKCkucGl4ZWxzRHJhd25UcmFuc2x1Y2Vu
dCgpLCAwLCAxKTsKKyAgICBFWFBFQ1RfTkVBUihvY2NsdXNpb25UcmFja2VyLm92ZXJkcmF3TWV0
cmljcygpLnBpeGVsc0N1bGxlZCgpLCAwLCAxKTsKIH0KIAogVEVTVChDQ1F1YWRDdWxsZXJUZXN0
LCB2ZXJpZnlDdWxsQ2hpbGRMaW5lc1VwQm90dG9tUmlnaHQpCkBAIC0yNjQsMTMgKzI2MywxMyBA
QCBURVNUKENDUXVhZEN1bGxlclRlc3QsIHZlcmlmeUN1bGxDaGlsZExpbmVzVXBCb3R0b21SaWdo
dCkKICAgICBPd25QdHI8Q0NUaWxlZExheWVySW1wbD4gY2hpbGRMYXllciA9IG1ha2VMYXllcihj
aGlsZFRyYW5zZm9ybSwgY2hpbGRSZWN0LCAxLjAsIHRydWUsIEludFJlY3QoKSk7CiAgICAgVGVz
dENDT2NjbHVzaW9uVHJhY2tlckltcGwgb2NjbHVzaW9uVHJhY2tlcihJbnRSZWN0KC0xMDAsIC0x
MDAsIDEwMDAsIDEwMDApKTsKIAotICAgIGFwcGVuZFF1YWRzKHF1YWRMaXN0LCBjaGlsZExheWVy
LmdldCgpLCBvY2NsdXNpb25UcmFja2VyLCBvdmVyZHJhdyk7CisgICAgYXBwZW5kUXVhZHMocXVh
ZExpc3QsIGNoaWxkTGF5ZXIuZ2V0KCksIG9jY2x1c2lvblRyYWNrZXIpOwogICAgIG9jY2x1c2lv
blRyYWNrZXIubWFya09jY2x1ZGVkQmVoaW5kTGF5ZXIoY2hpbGRMYXllci5nZXQoKSk7Ci0gICAg
YXBwZW5kUXVhZHMocXVhZExpc3QsIHJvb3RMYXllci5nZXQoKSwgb2NjbHVzaW9uVHJhY2tlciwg
b3ZlcmRyYXcpOworICAgIGFwcGVuZFF1YWRzKHF1YWRMaXN0LCByb290TGF5ZXIuZ2V0KCksIG9j
Y2x1c2lvblRyYWNrZXIpOwogICAgIEVYUEVDVF9FUShxdWFkTGlzdC5zaXplKCksIDl1KTsKLSAg
ICBFWFBFQ1RfTkVBUihvdmVyZHJhdy5waXhlbHNEcmF3bk9wYXF1ZSgpLCA5MDAwMCwgMSk7Ci0g
ICAgRVhQRUNUX05FQVIob3ZlcmRyYXcucGl4ZWxzRHJhd25UcmFuc2x1Y2VudCgpLCAwLCAxKTsK
LSAgICBFWFBFQ1RfTkVBUihvdmVyZHJhdy5waXhlbHNDdWxsZWQoKSwgNDAwMDAsIDEpOworICAg
IEVYUEVDVF9ORUFSKG9jY2x1c2lvblRyYWNrZXIub3ZlcmRyYXdNZXRyaWNzKCkucGl4ZWxzRHJh
d25PcGFxdWUoKSwgOTAwMDAsIDEpOworICAgIEVYUEVDVF9ORUFSKG9jY2x1c2lvblRyYWNrZXIu
b3ZlcmRyYXdNZXRyaWNzKCkucGl4ZWxzRHJhd25UcmFuc2x1Y2VudCgpLCAwLCAxKTsKKyAgICBF
WFBFQ1RfTkVBUihvY2NsdXNpb25UcmFja2VyLm92ZXJkcmF3TWV0cmljcygpLnBpeGVsc0N1bGxl
ZCgpLCA0MDAwMCwgMSk7CiB9CiAKIFRFU1QoQ0NRdWFkQ3VsbGVyVGVzdCwgdmVyaWZ5Q3VsbFN1
YlJlZ2lvbikKQEAgLTI4NCwxMyArMjgzLDEzIEBAIFRFU1QoQ0NRdWFkQ3VsbGVyVGVzdCwgdmVy
aWZ5Q3VsbFN1YlJlZ2lvbikKICAgICBPd25QdHI8Q0NUaWxlZExheWVySW1wbD4gY2hpbGRMYXll
ciA9IG1ha2VMYXllcihjaGlsZFRyYW5zZm9ybSwgY2hpbGRSZWN0LCAxLjAsIGZhbHNlLCBjaGls
ZE9wYXF1ZVJlY3QpOwogICAgIFRlc3RDQ09jY2x1c2lvblRyYWNrZXJJbXBsIG9jY2x1c2lvblRy
YWNrZXIoSW50UmVjdCgtMTAwLCAtMTAwLCAxMDAwLCAxMDAwKSk7CiAKLSAgICBhcHBlbmRRdWFk
cyhxdWFkTGlzdCwgY2hpbGRMYXllci5nZXQoKSwgb2NjbHVzaW9uVHJhY2tlciwgb3ZlcmRyYXcp
OworICAgIGFwcGVuZFF1YWRzKHF1YWRMaXN0LCBjaGlsZExheWVyLmdldCgpLCBvY2NsdXNpb25U
cmFja2VyKTsKICAgICBvY2NsdXNpb25UcmFja2VyLm1hcmtPY2NsdWRlZEJlaGluZExheWVyKGNo
aWxkTGF5ZXIuZ2V0KCkpOwotICAgIGFwcGVuZFF1YWRzKHF1YWRMaXN0LCByb290TGF5ZXIuZ2V0
KCksIG9jY2x1c2lvblRyYWNrZXIsIG92ZXJkcmF3KTsKKyAgICBhcHBlbmRRdWFkcyhxdWFkTGlz
dCwgcm9vdExheWVyLmdldCgpLCBvY2NsdXNpb25UcmFja2VyKTsKICAgICBFWFBFQ1RfRVEocXVh
ZExpc3Quc2l6ZSgpLCAxMnUpOwotICAgIEVYUEVDVF9ORUFSKG92ZXJkcmF3LnBpeGVsc0RyYXdu
T3BhcXVlKCksIDkwMDAwLCAxKTsKLSAgICBFWFBFQ1RfTkVBUihvdmVyZHJhdy5waXhlbHNEcmF3
blRyYW5zbHVjZW50KCksIDMwMDAwLCAxKTsKLSAgICBFWFBFQ1RfTkVBUihvdmVyZHJhdy5waXhl
bHNDdWxsZWQoKSwgMTAwMDAsIDEpOworICAgIEVYUEVDVF9ORUFSKG9jY2x1c2lvblRyYWNrZXIu
b3ZlcmRyYXdNZXRyaWNzKCkucGl4ZWxzRHJhd25PcGFxdWUoKSwgOTAwMDAsIDEpOworICAgIEVY
UEVDVF9ORUFSKG9jY2x1c2lvblRyYWNrZXIub3ZlcmRyYXdNZXRyaWNzKCkucGl4ZWxzRHJhd25U
cmFuc2x1Y2VudCgpLCAzMDAwMCwgMSk7CisgICAgRVhQRUNUX05FQVIob2NjbHVzaW9uVHJhY2tl
ci5vdmVyZHJhd01ldHJpY3MoKS5waXhlbHNDdWxsZWQoKSwgMTAwMDAsIDEpOwogfQogCiBURVNU
KENDUXVhZEN1bGxlclRlc3QsIHZlcmlmeUN1bGxTdWJSZWdpb24yKQpAQCAtMzA0LDEzICszMDMs
MTMgQEAgVEVTVChDQ1F1YWRDdWxsZXJUZXN0LCB2ZXJpZnlDdWxsU3ViUmVnaW9uMikKICAgICBP
d25QdHI8Q0NUaWxlZExheWVySW1wbD4gY2hpbGRMYXllciA9IG1ha2VMYXllcihjaGlsZFRyYW5z
Zm9ybSwgY2hpbGRSZWN0LCAxLjAsIGZhbHNlLCBjaGlsZE9wYXF1ZVJlY3QpOwogICAgIFRlc3RD
Q09jY2x1c2lvblRyYWNrZXJJbXBsIG9jY2x1c2lvblRyYWNrZXIoSW50UmVjdCgtMTAwLCAtMTAw
LCAxMDAwLCAxMDAwKSk7CiAKLSAgICBhcHBlbmRRdWFkcyhxdWFkTGlzdCwgY2hpbGRMYXllci5n
ZXQoKSwgb2NjbHVzaW9uVHJhY2tlciwgb3ZlcmRyYXcpOworICAgIGFwcGVuZFF1YWRzKHF1YWRM
aXN0LCBjaGlsZExheWVyLmdldCgpLCBvY2NsdXNpb25UcmFja2VyKTsKICAgICBvY2NsdXNpb25U
cmFja2VyLm1hcmtPY2NsdWRlZEJlaGluZExheWVyKGNoaWxkTGF5ZXIuZ2V0KCkpOwotICAgIGFw
cGVuZFF1YWRzKHF1YWRMaXN0LCByb290TGF5ZXIuZ2V0KCksIG9jY2x1c2lvblRyYWNrZXIsIG92
ZXJkcmF3KTsKKyAgICBhcHBlbmRRdWFkcyhxdWFkTGlzdCwgcm9vdExheWVyLmdldCgpLCBvY2Ns
dXNpb25UcmFja2VyKTsKICAgICBFWFBFQ1RfRVEocXVhZExpc3Quc2l6ZSgpLCAxMnUpOwotICAg
IEVYUEVDVF9ORUFSKG92ZXJkcmF3LnBpeGVsc0RyYXduT3BhcXVlKCksIDkwMDAwLCAxKTsKLSAg
ICBFWFBFQ1RfTkVBUihvdmVyZHJhdy5waXhlbHNEcmF3blRyYW5zbHVjZW50KCksIDI1MDAwLCAx
KTsKLSAgICBFWFBFQ1RfTkVBUihvdmVyZHJhdy5waXhlbHNDdWxsZWQoKSwgMTUwMDAsIDEpOwor
ICAgIEVYUEVDVF9ORUFSKG9jY2x1c2lvblRyYWNrZXIub3ZlcmRyYXdNZXRyaWNzKCkucGl4ZWxz
RHJhd25PcGFxdWUoKSwgOTAwMDAsIDEpOworICAgIEVYUEVDVF9ORUFSKG9jY2x1c2lvblRyYWNr
ZXIub3ZlcmRyYXdNZXRyaWNzKCkucGl4ZWxzRHJhd25UcmFuc2x1Y2VudCgpLCAyNTAwMCwgMSk7
CisgICAgRVhQRUNUX05FQVIob2NjbHVzaW9uVHJhY2tlci5vdmVyZHJhd01ldHJpY3MoKS5waXhl
bHNDdWxsZWQoKSwgMTUwMDAsIDEpOwogfQogCiBURVNUKENDUXVhZEN1bGxlclRlc3QsIHZlcmlm
eUN1bGxTdWJSZWdpb25DaGVja092ZXJjdWxsKQpAQCAtMzI0LDEzICszMjMsMTMgQEAgVEVTVChD
Q1F1YWRDdWxsZXJUZXN0LCB2ZXJpZnlDdWxsU3ViUmVnaW9uQ2hlY2tPdmVyY3VsbCkKICAgICBP
d25QdHI8Q0NUaWxlZExheWVySW1wbD4gY2hpbGRMYXllciA9IG1ha2VMYXllcihjaGlsZFRyYW5z
Zm9ybSwgY2hpbGRSZWN0LCAxLjAsIGZhbHNlLCBjaGlsZE9wYXF1ZVJlY3QpOwogICAgIFRlc3RD
Q09jY2x1c2lvblRyYWNrZXJJbXBsIG9jY2x1c2lvblRyYWNrZXIoSW50UmVjdCgtMTAwLCAtMTAw
LCAxMDAwLCAxMDAwKSk7CiAKLSAgICBhcHBlbmRRdWFkcyhxdWFkTGlzdCwgY2hpbGRMYXllci5n
ZXQoKSwgb2NjbHVzaW9uVHJhY2tlciwgb3ZlcmRyYXcpOworICAgIGFwcGVuZFF1YWRzKHF1YWRM
aXN0LCBjaGlsZExheWVyLmdldCgpLCBvY2NsdXNpb25UcmFja2VyKTsKICAgICBvY2NsdXNpb25U
cmFja2VyLm1hcmtPY2NsdWRlZEJlaGluZExheWVyKGNoaWxkTGF5ZXIuZ2V0KCkpOwotICAgIGFw
cGVuZFF1YWRzKHF1YWRMaXN0LCByb290TGF5ZXIuZ2V0KCksIG9jY2x1c2lvblRyYWNrZXIsIG92
ZXJkcmF3KTsKKyAgICBhcHBlbmRRdWFkcyhxdWFkTGlzdCwgcm9vdExheWVyLmdldCgpLCBvY2Ns
dXNpb25UcmFja2VyKTsKICAgICBFWFBFQ1RfRVEocXVhZExpc3Quc2l6ZSgpLCAxM3UpOwotICAg
IEVYUEVDVF9ORUFSKG92ZXJkcmF3LnBpeGVsc0RyYXduT3BhcXVlKCksIDkwMDAwLCAxKTsKLSAg
ICBFWFBFQ1RfTkVBUihvdmVyZHJhdy5waXhlbHNEcmF3blRyYW5zbHVjZW50KCksIDMwMDAwLCAx
KTsKLSAgICBFWFBFQ1RfTkVBUihvdmVyZHJhdy5waXhlbHNDdWxsZWQoKSwgMTAwMDAsIDEpOwor
ICAgIEVYUEVDVF9ORUFSKG9jY2x1c2lvblRyYWNrZXIub3ZlcmRyYXdNZXRyaWNzKCkucGl4ZWxz
RHJhd25PcGFxdWUoKSwgOTAwMDAsIDEpOworICAgIEVYUEVDVF9ORUFSKG9jY2x1c2lvblRyYWNr
ZXIub3ZlcmRyYXdNZXRyaWNzKCkucGl4ZWxzRHJhd25UcmFuc2x1Y2VudCgpLCAzMDAwMCwgMSk7
CisgICAgRVhQRUNUX05FQVIob2NjbHVzaW9uVHJhY2tlci5vdmVyZHJhd01ldHJpY3MoKS5waXhl
bHNDdWxsZWQoKSwgMTAwMDAsIDEpOwogfQogCiBURVNUKENDUXVhZEN1bGxlclRlc3QsIHZlcmlm
eU5vbkF4aXNBbGlnbmVkUXVhZHNEb250T2NjbHVkZSkKQEAgLTM0NCwxMyArMzQzLDEzIEBAIFRF
U1QoQ0NRdWFkQ3VsbGVyVGVzdCwgdmVyaWZ5Tm9uQXhpc0FsaWduZWRRdWFkc0RvbnRPY2NsdWRl
KQogICAgIE93blB0cjxDQ1RpbGVkTGF5ZXJJbXBsPiBjaGlsZExheWVyID0gbWFrZUxheWVyKGNo
aWxkVHJhbnNmb3JtLCBjaGlsZFJlY3QsIDEuMCwgdHJ1ZSwgSW50UmVjdCgpKTsKICAgICBUZXN0
Q0NPY2NsdXNpb25UcmFja2VySW1wbCBvY2NsdXNpb25UcmFja2VyKEludFJlY3QoLTEwMCwgLTEw
MCwgMTAwMCwgMTAwMCkpOwogCi0gICAgYXBwZW5kUXVhZHMocXVhZExpc3QsIGNoaWxkTGF5ZXIu
Z2V0KCksIG9jY2x1c2lvblRyYWNrZXIsIG92ZXJkcmF3KTsKKyAgICBhcHBlbmRRdWFkcyhxdWFk
TGlzdCwgY2hpbGRMYXllci5nZXQoKSwgb2NjbHVzaW9uVHJhY2tlcik7CiAgICAgb2NjbHVzaW9u
VHJhY2tlci5tYXJrT2NjbHVkZWRCZWhpbmRMYXllcihjaGlsZExheWVyLmdldCgpKTsKLSAgICBh
cHBlbmRRdWFkcyhxdWFkTGlzdCwgcm9vdExheWVyLmdldCgpLCBvY2NsdXNpb25UcmFja2VyLCBv
dmVyZHJhdyk7CisgICAgYXBwZW5kUXVhZHMocXVhZExpc3QsIHJvb3RMYXllci5nZXQoKSwgb2Nj
bHVzaW9uVHJhY2tlcik7CiAgICAgRVhQRUNUX0VRKHF1YWRMaXN0LnNpemUoKSwgMTN1KTsKLSAg
ICBFWFBFQ1RfTkVBUihvdmVyZHJhdy5waXhlbHNEcmF3bk9wYXF1ZSgpLCAxMzAwMDAsIDEpOwot
ICAgIEVYUEVDVF9ORUFSKG92ZXJkcmF3LnBpeGVsc0RyYXduVHJhbnNsdWNlbnQoKSwgMCwgMSk7
Ci0gICAgRVhQRUNUX05FQVIob3ZlcmRyYXcucGl4ZWxzQ3VsbGVkKCksIDAsIDEpOworICAgIEVY
UEVDVF9ORUFSKG9jY2x1c2lvblRyYWNrZXIub3ZlcmRyYXdNZXRyaWNzKCkucGl4ZWxzRHJhd25P
cGFxdWUoKSwgMTMwMDAwLCAxKTsKKyAgICBFWFBFQ1RfTkVBUihvY2NsdXNpb25UcmFja2VyLm92
ZXJkcmF3TWV0cmljcygpLnBpeGVsc0RyYXduVHJhbnNsdWNlbnQoKSwgMCwgMSk7CisgICAgRVhQ
RUNUX05FQVIob2NjbHVzaW9uVHJhY2tlci5vdmVyZHJhd01ldHJpY3MoKS5waXhlbHNDdWxsZWQo
KSwgMCwgMSk7CiB9CiAKIC8vIFRoaXMgdGVzdCByZXF1aXJlcyBzb21lIGV4cGxhbmF0aW9uOiBo
ZXJlIHdlIGFyZSByb3RhdGluZyB0aGUgcXVhZHMgdG8gYmUgY3VsbGVkLgpAQCAtMzcwLDEzICsz
NjksMTMgQEAgVEVTVChDQ1F1YWRDdWxsZXJUZXN0LCB2ZXJpZnlOb25BeGlzQWxpZ25lZFF1YWRz
U2FmZWx5Q3VsbGVkKQogICAgIE93blB0cjxDQ1RpbGVkTGF5ZXJJbXBsPiBjaGlsZExheWVyID0g
bWFrZUxheWVyKFRyYW5zZm9ybWF0aW9uTWF0cml4KCksIGNoaWxkUmVjdCwgMS4wLCB0cnVlLCBJ
bnRSZWN0KCkpOwogICAgIFRlc3RDQ09jY2x1c2lvblRyYWNrZXJJbXBsIG9jY2x1c2lvblRyYWNr
ZXIoSW50UmVjdCgtMTAwLCAtMTAwLCAxMDAwLCAxMDAwKSk7CiAKLSAgICBhcHBlbmRRdWFkcyhx
dWFkTGlzdCwgY2hpbGRMYXllci5nZXQoKSwgb2NjbHVzaW9uVHJhY2tlciwgb3ZlcmRyYXcpOwor
ICAgIGFwcGVuZFF1YWRzKHF1YWRMaXN0LCBjaGlsZExheWVyLmdldCgpLCBvY2NsdXNpb25UcmFj
a2VyKTsKICAgICBvY2NsdXNpb25UcmFja2VyLm1hcmtPY2NsdWRlZEJlaGluZExheWVyKGNoaWxk
TGF5ZXIuZ2V0KCkpOwotICAgIGFwcGVuZFF1YWRzKHF1YWRMaXN0LCByb290TGF5ZXIuZ2V0KCks
IG9jY2x1c2lvblRyYWNrZXIsIG92ZXJkcmF3KTsKKyAgICBhcHBlbmRRdWFkcyhxdWFkTGlzdCwg
cm9vdExheWVyLmdldCgpLCBvY2NsdXNpb25UcmFja2VyKTsKICAgICBFWFBFQ1RfRVEocXVhZExp
c3Quc2l6ZSgpLCAxMnUpOwotICAgIEVYUEVDVF9ORUFSKG92ZXJkcmF3LnBpeGVsc0RyYXduT3Bh
cXVlKCksIDEwMDYwMCwgMSk7Ci0gICAgRVhQRUNUX05FQVIob3ZlcmRyYXcucGl4ZWxzRHJhd25U
cmFuc2x1Y2VudCgpLCAwLCAxKTsKLSAgICBFWFBFQ1RfTkVBUihvdmVyZHJhdy5waXhlbHNDdWxs
ZWQoKSwgMjk0MDAsIDEpOworICAgIEVYUEVDVF9ORUFSKG9jY2x1c2lvblRyYWNrZXIub3ZlcmRy
YXdNZXRyaWNzKCkucGl4ZWxzRHJhd25PcGFxdWUoKSwgMTAwNjAwLCAxKTsKKyAgICBFWFBFQ1Rf
TkVBUihvY2NsdXNpb25UcmFja2VyLm92ZXJkcmF3TWV0cmljcygpLnBpeGVsc0RyYXduVHJhbnNs
dWNlbnQoKSwgMCwgMSk7CisgICAgRVhQRUNUX05FQVIob2NjbHVzaW9uVHJhY2tlci5vdmVyZHJh
d01ldHJpY3MoKS5waXhlbHNDdWxsZWQoKSwgMjk0MDAsIDEpOwogfQogCiBURVNUKENDUXVhZEN1
bGxlclRlc3QsIHZlcmlmeUN1bGxPdXRzaWRlU2Npc3Nvck92ZXJUaWxlKQpAQCAtMzg3LDEzICsz
ODYsMTMgQEAgVEVTVChDQ1F1YWRDdWxsZXJUZXN0LCB2ZXJpZnlDdWxsT3V0c2lkZVNjaXNzb3JP
dmVyVGlsZSkKICAgICBPd25QdHI8Q0NUaWxlZExheWVySW1wbD4gY2hpbGRMYXllciA9IG1ha2VM
YXllcihUcmFuc2Zvcm1hdGlvbk1hdHJpeCgpLCBjaGlsZFJlY3QsIDEuMCwgdHJ1ZSwgSW50UmVj
dCgpKTsKICAgICBUZXN0Q0NPY2NsdXNpb25UcmFja2VySW1wbCBvY2NsdXNpb25UcmFja2VyKElu
dFJlY3QoMjAwLCAxMDAsIDEwMCwgMTAwKSk7CiAKLSAgICBhcHBlbmRRdWFkcyhxdWFkTGlzdCwg
Y2hpbGRMYXllci5nZXQoKSwgb2NjbHVzaW9uVHJhY2tlciwgb3ZlcmRyYXcpOworICAgIGFwcGVu
ZFF1YWRzKHF1YWRMaXN0LCBjaGlsZExheWVyLmdldCgpLCBvY2NsdXNpb25UcmFja2VyKTsKICAg
ICBvY2NsdXNpb25UcmFja2VyLm1hcmtPY2NsdWRlZEJlaGluZExheWVyKGNoaWxkTGF5ZXIuZ2V0
KCkpOwotICAgIGFwcGVuZFF1YWRzKHF1YWRMaXN0LCByb290TGF5ZXIuZ2V0KCksIG9jY2x1c2lv
blRyYWNrZXIsIG92ZXJkcmF3KTsKKyAgICBhcHBlbmRRdWFkcyhxdWFkTGlzdCwgcm9vdExheWVy
LmdldCgpLCBvY2NsdXNpb25UcmFja2VyKTsKICAgICBFWFBFQ1RfRVEocXVhZExpc3Quc2l6ZSgp
LCAxdSk7Ci0gICAgRVhQRUNUX05FQVIob3ZlcmRyYXcucGl4ZWxzRHJhd25PcGFxdWUoKSwgMTAw
MDAsIDEpOwotICAgIEVYUEVDVF9ORUFSKG92ZXJkcmF3LnBpeGVsc0RyYXduVHJhbnNsdWNlbnQo
KSwgMCwgMSk7Ci0gICAgRVhQRUNUX05FQVIob3ZlcmRyYXcucGl4ZWxzQ3VsbGVkKCksIDEyMDAw
MCwgMSk7CisgICAgRVhQRUNUX05FQVIob2NjbHVzaW9uVHJhY2tlci5vdmVyZHJhd01ldHJpY3Mo
KS5waXhlbHNEcmF3bk9wYXF1ZSgpLCAxMDAwMCwgMSk7CisgICAgRVhQRUNUX05FQVIob2NjbHVz
aW9uVHJhY2tlci5vdmVyZHJhd01ldHJpY3MoKS5waXhlbHNEcmF3blRyYW5zbHVjZW50KCksIDAs
IDEpOworICAgIEVYUEVDVF9ORUFSKG9jY2x1c2lvblRyYWNrZXIub3ZlcmRyYXdNZXRyaWNzKCku
cGl4ZWxzQ3VsbGVkKCksIDEyMDAwMCwgMSk7CiB9CiAKIFRFU1QoQ0NRdWFkQ3VsbGVyVGVzdCwg
dmVyaWZ5Q3VsbE91dHNpZGVTY2lzc29yT3ZlckN1bGxlZFRpbGUpCkBAIC00MDQsMTMgKzQwMywx
MyBAQCBURVNUKENDUXVhZEN1bGxlclRlc3QsIHZlcmlmeUN1bGxPdXRzaWRlU2Npc3Nvck92ZXJD
dWxsZWRUaWxlKQogICAgIE93blB0cjxDQ1RpbGVkTGF5ZXJJbXBsPiBjaGlsZExheWVyID0gbWFr
ZUxheWVyKFRyYW5zZm9ybWF0aW9uTWF0cml4KCksIGNoaWxkUmVjdCwgMS4wLCB0cnVlLCBJbnRS
ZWN0KCkpOwogICAgIFRlc3RDQ09jY2x1c2lvblRyYWNrZXJJbXBsIG9jY2x1c2lvblRyYWNrZXIo
SW50UmVjdCgxMDAsIDEwMCwgMTAwLCAxMDApKTsKIAotICAgIGFwcGVuZFF1YWRzKHF1YWRMaXN0
LCBjaGlsZExheWVyLmdldCgpLCBvY2NsdXNpb25UcmFja2VyLCBvdmVyZHJhdyk7CisgICAgYXBw
ZW5kUXVhZHMocXVhZExpc3QsIGNoaWxkTGF5ZXIuZ2V0KCksIG9jY2x1c2lvblRyYWNrZXIpOwog
ICAgIG9jY2x1c2lvblRyYWNrZXIubWFya09jY2x1ZGVkQmVoaW5kTGF5ZXIoY2hpbGRMYXllci5n
ZXQoKSk7Ci0gICAgYXBwZW5kUXVhZHMocXVhZExpc3QsIHJvb3RMYXllci5nZXQoKSwgb2NjbHVz
aW9uVHJhY2tlciwgb3ZlcmRyYXcpOworICAgIGFwcGVuZFF1YWRzKHF1YWRMaXN0LCByb290TGF5
ZXIuZ2V0KCksIG9jY2x1c2lvblRyYWNrZXIpOwogICAgIEVYUEVDVF9FUShxdWFkTGlzdC5zaXpl
KCksIDF1KTsKLSAgICBFWFBFQ1RfTkVBUihvdmVyZHJhdy5waXhlbHNEcmF3bk9wYXF1ZSgpLCAx
MDAwMCwgMSk7Ci0gICAgRVhQRUNUX05FQVIob3ZlcmRyYXcucGl4ZWxzRHJhd25UcmFuc2x1Y2Vu
dCgpLCAwLCAxKTsKLSAgICBFWFBFQ1RfTkVBUihvdmVyZHJhdy5waXhlbHNDdWxsZWQoKSwgMTIw
MDAwLCAxKTsKKyAgICBFWFBFQ1RfTkVBUihvY2NsdXNpb25UcmFja2VyLm92ZXJkcmF3TWV0cmlj
cygpLnBpeGVsc0RyYXduT3BhcXVlKCksIDEwMDAwLCAxKTsKKyAgICBFWFBFQ1RfTkVBUihvY2Ns
dXNpb25UcmFja2VyLm92ZXJkcmF3TWV0cmljcygpLnBpeGVsc0RyYXduVHJhbnNsdWNlbnQoKSwg
MCwgMSk7CisgICAgRVhQRUNUX05FQVIob2NjbHVzaW9uVHJhY2tlci5vdmVyZHJhd01ldHJpY3Mo
KS5waXhlbHNDdWxsZWQoKSwgMTIwMDAwLCAxKTsKIH0KIAogVEVTVChDQ1F1YWRDdWxsZXJUZXN0
LCB2ZXJpZnlDdWxsT3V0c2lkZVNjaXNzb3JPdmVyUGFydGlhbFRpbGVzKQpAQCAtNDIxLDEzICs0
MjAsMTMgQEAgVEVTVChDQ1F1YWRDdWxsZXJUZXN0LCB2ZXJpZnlDdWxsT3V0c2lkZVNjaXNzb3JP
dmVyUGFydGlhbFRpbGVzKQogICAgIE93blB0cjxDQ1RpbGVkTGF5ZXJJbXBsPiBjaGlsZExheWVy
ID0gbWFrZUxheWVyKFRyYW5zZm9ybWF0aW9uTWF0cml4KCksIGNoaWxkUmVjdCwgMS4wLCB0cnVl
LCBJbnRSZWN0KCkpOwogICAgIFRlc3RDQ09jY2x1c2lvblRyYWNrZXJJbXBsIG9jY2x1c2lvblRy
YWNrZXIoSW50UmVjdCg1MCwgNTAsIDIwMCwgMjAwKSk7CiAKLSAgICBhcHBlbmRRdWFkcyhxdWFk
TGlzdCwgY2hpbGRMYXllci5nZXQoKSwgb2NjbHVzaW9uVHJhY2tlciwgb3ZlcmRyYXcpOworICAg
IGFwcGVuZFF1YWRzKHF1YWRMaXN0LCBjaGlsZExheWVyLmdldCgpLCBvY2NsdXNpb25UcmFja2Vy
KTsKICAgICBvY2NsdXNpb25UcmFja2VyLm1hcmtPY2NsdWRlZEJlaGluZExheWVyKGNoaWxkTGF5
ZXIuZ2V0KCkpOwotICAgIGFwcGVuZFF1YWRzKHF1YWRMaXN0LCByb290TGF5ZXIuZ2V0KCksIG9j
Y2x1c2lvblRyYWNrZXIsIG92ZXJkcmF3KTsKKyAgICBhcHBlbmRRdWFkcyhxdWFkTGlzdCwgcm9v
dExheWVyLmdldCgpLCBvY2NsdXNpb25UcmFja2VyKTsKICAgICBFWFBFQ1RfRVEocXVhZExpc3Qu
c2l6ZSgpLCA5dSk7Ci0gICAgRVhQRUNUX05FQVIob3ZlcmRyYXcucGl4ZWxzRHJhd25PcGFxdWUo
KSwgNDAwMDAsIDEpOwotICAgIEVYUEVDVF9ORUFSKG92ZXJkcmF3LnBpeGVsc0RyYXduVHJhbnNs
dWNlbnQoKSwgMCwgMSk7Ci0gICAgRVhQRUNUX05FQVIob3ZlcmRyYXcucGl4ZWxzQ3VsbGVkKCks
IDkwMDAwLCAxKTsKKyAgICBFWFBFQ1RfTkVBUihvY2NsdXNpb25UcmFja2VyLm92ZXJkcmF3TWV0
cmljcygpLnBpeGVsc0RyYXduT3BhcXVlKCksIDQwMDAwLCAxKTsKKyAgICBFWFBFQ1RfTkVBUihv
Y2NsdXNpb25UcmFja2VyLm92ZXJkcmF3TWV0cmljcygpLnBpeGVsc0RyYXduVHJhbnNsdWNlbnQo
KSwgMCwgMSk7CisgICAgRVhQRUNUX05FQVIob2NjbHVzaW9uVHJhY2tlci5vdmVyZHJhd01ldHJp
Y3MoKS5waXhlbHNDdWxsZWQoKSwgOTAwMDAsIDEpOwogfQogCiBURVNUKENDUXVhZEN1bGxlclRl
c3QsIHZlcmlmeUN1bGxPdXRzaWRlU2Npc3Nvck92ZXJOb1RpbGVzKQpAQCAtNDM4LDEzICs0Mzcs
MTMgQEAgVEVTVChDQ1F1YWRDdWxsZXJUZXN0LCB2ZXJpZnlDdWxsT3V0c2lkZVNjaXNzb3JPdmVy
Tm9UaWxlcykKICAgICBPd25QdHI8Q0NUaWxlZExheWVySW1wbD4gY2hpbGRMYXllciA9IG1ha2VM
YXllcihUcmFuc2Zvcm1hdGlvbk1hdHJpeCgpLCBjaGlsZFJlY3QsIDEuMCwgdHJ1ZSwgSW50UmVj
dCgpKTsKICAgICBUZXN0Q0NPY2NsdXNpb25UcmFja2VySW1wbCBvY2NsdXNpb25UcmFja2VyKElu
dFJlY3QoNTAwLCA1MDAsIDEwMCwgMTAwKSk7CiAKLSAgICBhcHBlbmRRdWFkcyhxdWFkTGlzdCwg
Y2hpbGRMYXllci5nZXQoKSwgb2NjbHVzaW9uVHJhY2tlciwgb3ZlcmRyYXcpOworICAgIGFwcGVu
ZFF1YWRzKHF1YWRMaXN0LCBjaGlsZExheWVyLmdldCgpLCBvY2NsdXNpb25UcmFja2VyKTsKICAg
ICBvY2NsdXNpb25UcmFja2VyLm1hcmtPY2NsdWRlZEJlaGluZExheWVyKGNoaWxkTGF5ZXIuZ2V0
KCkpOwotICAgIGFwcGVuZFF1YWRzKHF1YWRMaXN0LCByb290TGF5ZXIuZ2V0KCksIG9jY2x1c2lv
blRyYWNrZXIsIG92ZXJkcmF3KTsKKyAgICBhcHBlbmRRdWFkcyhxdWFkTGlzdCwgcm9vdExheWVy
LmdldCgpLCBvY2NsdXNpb25UcmFja2VyKTsKICAgICBFWFBFQ1RfRVEocXVhZExpc3Quc2l6ZSgp
LCAwdSk7Ci0gICAgRVhQRUNUX05FQVIob3ZlcmRyYXcucGl4ZWxzRHJhd25PcGFxdWUoKSwgMCwg
MSk7Ci0gICAgRVhQRUNUX05FQVIob3ZlcmRyYXcucGl4ZWxzRHJhd25UcmFuc2x1Y2VudCgpLCAw
LCAxKTsKLSAgICBFWFBFQ1RfTkVBUihvdmVyZHJhdy5waXhlbHNDdWxsZWQoKSwgMTMwMDAwLCAx
KTsKKyAgICBFWFBFQ1RfTkVBUihvY2NsdXNpb25UcmFja2VyLm92ZXJkcmF3TWV0cmljcygpLnBp
eGVsc0RyYXduT3BhcXVlKCksIDAsIDEpOworICAgIEVYUEVDVF9ORUFSKG9jY2x1c2lvblRyYWNr
ZXIub3ZlcmRyYXdNZXRyaWNzKCkucGl4ZWxzRHJhd25UcmFuc2x1Y2VudCgpLCAwLCAxKTsKKyAg
ICBFWFBFQ1RfTkVBUihvY2NsdXNpb25UcmFja2VyLm92ZXJkcmF3TWV0cmljcygpLnBpeGVsc0N1
bGxlZCgpLCAxMzAwMDAsIDEpOwogfQogCiB9IC8vIG5hbWVzcGFjZQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9jaHJvbWl1bS90ZXN0cy9Nb2NrQ0NRdWFkQ3VsbGVyLmggYi9Tb3VyY2UvV2Vi
S2l0L2Nocm9taXVtL3Rlc3RzL01vY2tDQ1F1YWRDdWxsZXIuaAppbmRleCA2ZGM3MmM1YTE5NWIw
N2VhODRmMGQyZjI5ZGEyMzY3YmQyNzczZTM4Li43OTFhZjUwMzNmNzhmNjYxMGFhMjY2NTJiMzRi
YjhkZmUwN2Y4ZGI5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3Rlc3RzL01v
Y2tDQ1F1YWRDdWxsZXIuaAorKysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3Rlc3RzL01vY2tD
Q1F1YWRDdWxsZXIuaApAQCAtMzUsMTIgKzM1LDEyIEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIGNs
YXNzIE1vY2tDQ1F1YWRDdWxsZXIgOiBwdWJsaWMgV2ViQ29yZTo6Q0NRdWFkQ3VsbGVyIHsKIHB1
YmxpYzoKICAgICBNb2NrQ0NRdWFkQ3VsbGVyKCkKLSAgICAgICAgOiBDQ1F1YWRDdWxsZXIobV9x
dWFkTGlzdFN0b3JhZ2UsIDAsIDAsIDApCisgICAgICAgIDogQ0NRdWFkQ3VsbGVyKG1fcXVhZExp
c3RTdG9yYWdlLCAwLCAwKQogICAgICAgICAsIG1fYWN0aXZlUXVhZExpc3QobV9xdWFkTGlzdFN0
b3JhZ2UpCiAgICAgeyB9CiAKICAgICBleHBsaWNpdCBNb2NrQ0NRdWFkQ3VsbGVyKENDUXVhZExp
c3QmIGV4dGVybmFsUXVhZExpc3QpCi0gICAgICAgIDogQ0NRdWFkQ3VsbGVyKGV4dGVybmFsUXVh
ZExpc3QsIDAsIDAsIDApCisgICAgICAgIDogQ0NRdWFkQ3VsbGVyKGV4dGVybmFsUXVhZExpc3Qs
IDAsIDApCiAgICAgICAgICwgbV9hY3RpdmVRdWFkTGlzdChleHRlcm5hbFF1YWRMaXN0KQogICAg
IHsgfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3Rlc3RzL1RpbGVkTGF5
ZXJDaHJvbWl1bVRlc3QuY3BwIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS90ZXN0cy9UaWxlZExh
eWVyQ2hyb21pdW1UZXN0LmNwcAppbmRleCAwN2NlYWFlODhkNzU3NzdiNjM2M2M3YTc0YzliYTBj
ODkzNGI4MGMyLi43ZWViYjk3MTQ2ODZhZWUxMTNiZTAyZmFhZTg1NmU1MjBhNjVjMThiIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3Rlc3RzL1RpbGVkTGF5ZXJDaHJvbWl1bVRl
c3QuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vdGVzdHMvVGlsZWRMYXllckNocm9t
aXVtVGVzdC5jcHAKQEAgLTMwOCw2ICszMDgsMTAgQEAgVEVTVChUaWxlZExheWVyQ2hyb21pdW1U
ZXN0LCBwdXNoT2NjbHVkZWREaXJ0eVRpbGVzKQogICAgIGxheWVyLT51cGRhdGVDb21wb3NpdG9y
UmVzb3VyY2VzKDAsIHVwZGF0ZXIpOwogICAgIGxheWVyLT5wdXNoUHJvcGVydGllc1RvKGxheWVy
SW1wbC5nZXQoKSk7CiAKKyAgICBFWFBFQ1RfTkVBUihvY2NsdWRlZC5vdmVyZHJhd01ldHJpY3Mo
KS5waXhlbHNEcmF3bk9wYXF1ZSgpLCAwLCAxKTsKKyAgICBFWFBFQ1RfTkVBUihvY2NsdWRlZC5v
dmVyZHJhd01ldHJpY3MoKS5waXhlbHNEcmF3blRyYW5zbHVjZW50KCksIDIwMDAwLCAxKTsKKyAg
ICBFWFBFQ1RfTkVBUihvY2NsdWRlZC5vdmVyZHJhd01ldHJpY3MoKS5waXhlbHNDdWxsZWQoKSwg
MCwgMSk7CisKICAgICAvLyBXZSBzaG91bGQgaGF2ZSBib3RoIHRpbGVzIG9uIHRoZSBpbXBsIHNp
ZGUuCiAgICAgRVhQRUNUX1RSVUUobGF5ZXJJbXBsLT5oYXNUaWxlQXQoMCwgMCkpOwogICAgIEVY
UEVDVF9UUlVFKGxheWVySW1wbC0+aGFzVGlsZUF0KDAsIDEpKTsKQEAgLTMyMiw2ICszMjYsMTAg
QEAgVEVTVChUaWxlZExheWVyQ2hyb21pdW1UZXN0LCBwdXNoT2NjbHVkZWREaXJ0eVRpbGVzKQog
ICAgIGxheWVyLT51cGRhdGVDb21wb3NpdG9yUmVzb3VyY2VzKDAsIHVwZGF0ZXIpOwogICAgIGxh
eWVyLT5wdXNoUHJvcGVydGllc1RvKGxheWVySW1wbC5nZXQoKSk7CiAKKyAgICBFWFBFQ1RfTkVB
UihvY2NsdWRlZC5vdmVyZHJhd01ldHJpY3MoKS5waXhlbHNEcmF3bk9wYXF1ZSgpLCAwLCAxKTsK
KyAgICBFWFBFQ1RfTkVBUihvY2NsdWRlZC5vdmVyZHJhd01ldHJpY3MoKS5waXhlbHNEcmF3blRy
YW5zbHVjZW50KCksIDIwMDAwICsgMjUwMCwgMSk7CisgICAgRVhQRUNUX05FQVIob2NjbHVkZWQu
b3ZlcmRyYXdNZXRyaWNzKCkucGl4ZWxzQ3VsbGVkKCksIDAsIDEpOworCiAgICAgLy8gV2Ugc2hv
dWxkIHN0aWxsIGhhdmUgYm90aCB0aWxlcywgYXMgcGFydCBvZiB0aGUgdG9wIHRpbGUgaXMgc3Rp
bGwgdW5vY2NsdWRlZC4KICAgICBFWFBFQ1RfVFJVRShsYXllckltcGwtPmhhc1RpbGVBdCgwLCAw
KSk7CiAgICAgRVhQRUNUX1RSVUUobGF5ZXJJbXBsLT5oYXNUaWxlQXQoMCwgMSkpOwpAQCAtODI0
LDYgKzgzMiwxMCBAQCBURVNUKFRpbGVkTGF5ZXJDaHJvbWl1bVRlc3QsIHRpbGVzUGFpbnRlZFdp
dGhPY2NsdXNpb24pCiAgICAgbGF5ZXItPnByZXBhcmVUb1VwZGF0ZShJbnRSZWN0KDAsIDAsIDYw
MCwgNjAwKSwgJm9jY2x1ZGVkKTsKICAgICBFWFBFQ1RfRVEoMzYtMywgbGF5ZXItPmZha2VMYXll
clRleHR1cmVVcGRhdGVyKCktPnByZXBhcmVSZWN0Q291bnQoKSk7CiAKKyAgICBFWFBFQ1RfTkVB
UihvY2NsdWRlZC5vdmVyZHJhd01ldHJpY3MoKS5waXhlbHNEcmF3bk9wYXF1ZSgpLCAwLCAxKTsK
KyAgICBFWFBFQ1RfTkVBUihvY2NsdWRlZC5vdmVyZHJhd01ldHJpY3MoKS5waXhlbHNEcmF3blRy
YW5zbHVjZW50KCksIDMzMDAwMCwgMSk7CisgICAgRVhQRUNUX05FQVIob2NjbHVkZWQub3ZlcmRy
YXdNZXRyaWNzKCkucGl4ZWxzQ3VsbGVkKCksIDMwMDAwLCAxKTsKKwogICAgIGxheWVyLT5mYWtl
TGF5ZXJUZXh0dXJlVXBkYXRlcigpLT5jbGVhclByZXBhcmVSZWN0Q291bnQoKTsKIAogICAgIG9j
Y2x1ZGVkLnNldE9jY2x1c2lvbihJbnRSZWN0KDI1MCwgMjAwLCAzMDAsIDEwMCkpOwpAQCAtODMx
LDEyICs4NDMsMjAgQEAgVEVTVChUaWxlZExheWVyQ2hyb21pdW1UZXN0LCB0aWxlc1BhaW50ZWRX
aXRoT2NjbHVzaW9uKQogICAgIGxheWVyLT5wcmVwYXJlVG9VcGRhdGUoSW50UmVjdCgwLCAwLCA2
MDAsIDYwMCksICZvY2NsdWRlZCk7CiAgICAgRVhQRUNUX0VRKDM2LTIsIGxheWVyLT5mYWtlTGF5
ZXJUZXh0dXJlVXBkYXRlcigpLT5wcmVwYXJlUmVjdENvdW50KCkpOwogCisgICAgRVhQRUNUX05F
QVIob2NjbHVkZWQub3ZlcmRyYXdNZXRyaWNzKCkucGl4ZWxzRHJhd25PcGFxdWUoKSwgMCwgMSk7
CisgICAgRVhQRUNUX05FQVIob2NjbHVkZWQub3ZlcmRyYXdNZXRyaWNzKCkucGl4ZWxzRHJhd25U
cmFuc2x1Y2VudCgpLCAzMzAwMDAgKyAzNDAwMDAsIDEpOworICAgIEVYUEVDVF9ORUFSKG9jY2x1
ZGVkLm92ZXJkcmF3TWV0cmljcygpLnBpeGVsc0N1bGxlZCgpLCAzMDAwMCArIDIwMDAwLCAxKTsK
KwogICAgIGxheWVyLT5mYWtlTGF5ZXJUZXh0dXJlVXBkYXRlcigpLT5jbGVhclByZXBhcmVSZWN0
Q291bnQoKTsKIAogICAgIG9jY2x1ZGVkLnNldE9jY2x1c2lvbihJbnRSZWN0KDI1MCwgMjUwLCAz
MDAsIDEwMCkpOwogICAgIGxheWVyLT5pbnZhbGlkYXRlUmVjdChJbnRSZWN0KDAsIDAsIDYwMCwg
NjAwKSk7CiAgICAgbGF5ZXItPnByZXBhcmVUb1VwZGF0ZShJbnRSZWN0KDAsIDAsIDYwMCwgNjAw
KSwgJm9jY2x1ZGVkKTsKICAgICBFWFBFQ1RfRVEoMzYsIGxheWVyLT5mYWtlTGF5ZXJUZXh0dXJl
VXBkYXRlcigpLT5wcmVwYXJlUmVjdENvdW50KCkpOworCisgICAgRVhQRUNUX05FQVIob2NjbHVk
ZWQub3ZlcmRyYXdNZXRyaWNzKCkucGl4ZWxzRHJhd25PcGFxdWUoKSwgMCwgMSk7CisgICAgRVhQ
RUNUX05FQVIob2NjbHVkZWQub3ZlcmRyYXdNZXRyaWNzKCkucGl4ZWxzRHJhd25UcmFuc2x1Y2Vu
dCgpLCAzMzAwMDAgKyAzNDAwMDAgKyAzNjAwMDAsIDEpOworICAgIEVYUEVDVF9ORUFSKG9jY2x1
ZGVkLm92ZXJkcmF3TWV0cmljcygpLnBpeGVsc0N1bGxlZCgpLCAzMDAwMCArIDIwMDAwLCAxKTsK
IH0KIAogVEVTVChUaWxlZExheWVyQ2hyb21pdW1UZXN0LCB0aWxlc1BhaW50ZWRXaXRoT2NjbHVz
aW9uQW5kVmlzaWJsaXR5Q29uc3RyYWludHMpCkBAIC04NTcsNiArODc3LDEwIEBAIFRFU1QoVGls
ZWRMYXllckNocm9taXVtVGVzdCwgdGlsZXNQYWludGVkV2l0aE9jY2x1c2lvbkFuZFZpc2libGl0
eUNvbnN0cmFpbnRzKQogICAgIGxheWVyLT5wcmVwYXJlVG9VcGRhdGUoSW50UmVjdCgwLCAwLCA2
MDAsIDYwMCksICZvY2NsdWRlZCk7CiAgICAgRVhQRUNUX0VRKDI0LTMsIGxheWVyLT5mYWtlTGF5
ZXJUZXh0dXJlVXBkYXRlcigpLT5wcmVwYXJlUmVjdENvdW50KCkpOwogCisgICAgRVhQRUNUX05F
QVIob2NjbHVkZWQub3ZlcmRyYXdNZXRyaWNzKCkucGl4ZWxzRHJhd25PcGFxdWUoKSwgMCwgMSk7
CisgICAgRVhQRUNUX05FQVIob2NjbHVkZWQub3ZlcmRyYXdNZXRyaWNzKCkucGl4ZWxzRHJhd25U
cmFuc2x1Y2VudCgpLCAyMTAwMDAsIDEpOworICAgIEVYUEVDVF9ORUFSKG9jY2x1ZGVkLm92ZXJk
cmF3TWV0cmljcygpLnBpeGVsc0N1bGxlZCgpLCAzMDAwMCwgMSk7CisKICAgICBsYXllci0+ZmFr
ZUxheWVyVGV4dHVyZVVwZGF0ZXIoKS0+Y2xlYXJQcmVwYXJlUmVjdENvdW50KCk7CiAKICAgICAv
LyBOb3cgdGhlIHZpc2libGUgcmVnaW9uIHN0b3BzIGF0IHRoZSBlZGdlIG9mIHRoZSBvY2NsdXNp
b24gc28gdGhlIHBhcnRseSB2aXNpYmxlIHRpbGVzIGJlY29tZSBmdWxseSBvY2NsdWRlZC4KQEAg
LTg2Niw2ICs4OTAsMTAgQEAgVEVTVChUaWxlZExheWVyQ2hyb21pdW1UZXN0LCB0aWxlc1BhaW50
ZWRXaXRoT2NjbHVzaW9uQW5kVmlzaWJsaXR5Q29uc3RyYWludHMpCiAgICAgbGF5ZXItPnByZXBh
cmVUb1VwZGF0ZShJbnRSZWN0KDAsIDAsIDYwMCwgNjAwKSwgJm9jY2x1ZGVkKTsKICAgICBFWFBF
Q1RfRVEoMjQtNiwgbGF5ZXItPmZha2VMYXllclRleHR1cmVVcGRhdGVyKCktPnByZXBhcmVSZWN0
Q291bnQoKSk7CiAKKyAgICBFWFBFQ1RfTkVBUihvY2NsdWRlZC5vdmVyZHJhd01ldHJpY3MoKS5w
aXhlbHNEcmF3bk9wYXF1ZSgpLCAwLCAxKTsKKyAgICBFWFBFQ1RfTkVBUihvY2NsdWRlZC5vdmVy
ZHJhd01ldHJpY3MoKS5waXhlbHNEcmF3blRyYW5zbHVjZW50KCksIDIxMDAwMCArIDE4MDAwMCwg
MSk7CisgICAgRVhQRUNUX05FQVIob2NjbHVkZWQub3ZlcmRyYXdNZXRyaWNzKCkucGl4ZWxzQ3Vs
bGVkKCksIDMwMDAwICsgNjAwMDAsIDEpOworCiAgICAgbGF5ZXItPmZha2VMYXllclRleHR1cmVV
cGRhdGVyKCktPmNsZWFyUHJlcGFyZVJlY3RDb3VudCgpOwogCiAgICAgLy8gTm93IHRoZSB2aXNp
YmxlIHJlZ2lvbiBpcyBldmVuIHNtYWxsZXIgdGhhbiB0aGUgb2NjbHVzaW9uLCBpdCBzaG91bGQg
aGF2ZSB0aGUgc2FtZSByZXN1bHQuCkBAIC04NzQsNiArOTAyLDExIEBAIFRFU1QoVGlsZWRMYXll
ckNocm9taXVtVGVzdCwgdGlsZXNQYWludGVkV2l0aE9jY2x1c2lvbkFuZFZpc2libGl0eUNvbnN0
cmFpbnRzKQogICAgIGxheWVyLT5pbnZhbGlkYXRlUmVjdChJbnRSZWN0KDAsIDAsIDYwMCwgNjAw
KSk7CiAgICAgbGF5ZXItPnByZXBhcmVUb1VwZGF0ZShJbnRSZWN0KDAsIDAsIDYwMCwgNjAwKSwg
Jm9jY2x1ZGVkKTsKICAgICBFWFBFQ1RfRVEoMjQtNiwgbGF5ZXItPmZha2VMYXllclRleHR1cmVV
cGRhdGVyKCktPnByZXBhcmVSZWN0Q291bnQoKSk7CisKKyAgICBFWFBFQ1RfTkVBUihvY2NsdWRl
ZC5vdmVyZHJhd01ldHJpY3MoKS5waXhlbHNEcmF3bk9wYXF1ZSgpLCAwLCAxKTsKKyAgICBFWFBF
Q1RfTkVBUihvY2NsdWRlZC5vdmVyZHJhd01ldHJpY3MoKS5waXhlbHNEcmF3blRyYW5zbHVjZW50
KCksIDIxMDAwMCArIDE4MDAwMCArIDE4MDAwMCwgMSk7CisgICAgRVhQRUNUX05FQVIob2NjbHVk
ZWQub3ZlcmRyYXdNZXRyaWNzKCkucGl4ZWxzQ3VsbGVkKCksIDMwMDAwICsgNjAwMDAgKyA2MDAw
MCwgMSk7CisKIH0KIAogVEVTVChUaWxlZExheWVyQ2hyb21pdW1UZXN0LCB0aWxlc05vdFBhaW50
ZWRXaXRob3V0SW52YWxpZGF0aW9uKQpAQCAtODkzLDExICs5MjYsMTkgQEAgVEVTVChUaWxlZExh
eWVyQ2hyb21pdW1UZXN0LCB0aWxlc05vdFBhaW50ZWRXaXRob3V0SW52YWxpZGF0aW9uKQogICAg
IGxheWVyLT5wcmVwYXJlVG9VcGRhdGUoSW50UmVjdCgwLCAwLCA2MDAsIDYwMCksICZvY2NsdWRl
ZCk7CiAgICAgRVhQRUNUX0VRKDM2LTMsIGxheWVyLT5mYWtlTGF5ZXJUZXh0dXJlVXBkYXRlcigp
LT5wcmVwYXJlUmVjdENvdW50KCkpOwogCisgICAgRVhQRUNUX05FQVIob2NjbHVkZWQub3ZlcmRy
YXdNZXRyaWNzKCkucGl4ZWxzRHJhd25PcGFxdWUoKSwgMCwgMSk7CisgICAgRVhQRUNUX05FQVIo
b2NjbHVkZWQub3ZlcmRyYXdNZXRyaWNzKCkucGl4ZWxzRHJhd25UcmFuc2x1Y2VudCgpLCAzMzAw
MDAsIDEpOworICAgIEVYUEVDVF9ORUFSKG9jY2x1ZGVkLm92ZXJkcmF3TWV0cmljcygpLnBpeGVs
c0N1bGxlZCgpLCAzMDAwMCwgMSk7CisKICAgICBsYXllci0+ZmFrZUxheWVyVGV4dHVyZVVwZGF0
ZXIoKS0+Y2xlYXJQcmVwYXJlUmVjdENvdW50KCk7CiAKICAgICAvLyBSZXBhaW50IHdpdGhvdXQg
bWFya2luZyBpdCBkaXJ0eS4KICAgICBsYXllci0+cHJlcGFyZVRvVXBkYXRlKEludFJlY3QoMCwg
MCwgNjAwLCA2MDApLCAmb2NjbHVkZWQpOwogICAgIEVYUEVDVF9FUSgwLCBsYXllci0+ZmFrZUxh
eWVyVGV4dHVyZVVwZGF0ZXIoKS0+cHJlcGFyZVJlY3RDb3VudCgpKTsKKworICAgIEVYUEVDVF9O
RUFSKG9jY2x1ZGVkLm92ZXJkcmF3TWV0cmljcygpLnBpeGVsc0RyYXduT3BhcXVlKCksIDAsIDEp
OworICAgIEVYUEVDVF9ORUFSKG9jY2x1ZGVkLm92ZXJkcmF3TWV0cmljcygpLnBpeGVsc0RyYXdu
VHJhbnNsdWNlbnQoKSwgMzMwMDAwLCAxKTsKKyAgICBFWFBFQ1RfTkVBUihvY2NsdWRlZC5vdmVy
ZHJhd01ldHJpY3MoKS5waXhlbHNDdWxsZWQoKSwgMzAwMDAsIDEpOwogfQogCiBURVNUKFRpbGVk
TGF5ZXJDaHJvbWl1bVRlc3QsIHRpbGVzUGFpbnRlZFdpdGhPY2NsdXNpb25BbmRUcmFuc2Zvcm1z
KQpAQCAtOTIxLDYgKzk2MiwxMCBAQCBURVNUKFRpbGVkTGF5ZXJDaHJvbWl1bVRlc3QsIHRpbGVz
UGFpbnRlZFdpdGhPY2NsdXNpb25BbmRUcmFuc2Zvcm1zKQogICAgIGxheWVyLT5pbnZhbGlkYXRl
UmVjdChJbnRSZWN0KDAsIDAsIDYwMCwgNjAwKSk7CiAgICAgbGF5ZXItPnByZXBhcmVUb1VwZGF0
ZShJbnRSZWN0KDAsIDAsIDYwMCwgNjAwKSwgJm9jY2x1ZGVkKTsKICAgICBFWFBFQ1RfRVEoMzYt
MywgbGF5ZXItPmZha2VMYXllclRleHR1cmVVcGRhdGVyKCktPnByZXBhcmVSZWN0Q291bnQoKSk7
CisKKyAgICBFWFBFQ1RfTkVBUihvY2NsdWRlZC5vdmVyZHJhd01ldHJpY3MoKS5waXhlbHNEcmF3
bk9wYXF1ZSgpLCAwLCAxKTsKKyAgICBFWFBFQ1RfTkVBUihvY2NsdWRlZC5vdmVyZHJhd01ldHJp
Y3MoKS5waXhlbHNEcmF3blRyYW5zbHVjZW50KCksIDMzMDAwMCwgMSk7CisgICAgRVhQRUNUX05F
QVIob2NjbHVkZWQub3ZlcmRyYXdNZXRyaWNzKCkucGl4ZWxzQ3VsbGVkKCksIDMwMDAwLCAxKTsK
IH0KIAogVEVTVChUaWxlZExheWVyQ2hyb21pdW1UZXN0LCB0aWxlc1BhaW50ZWRXaXRoT2NjbHVz
aW9uQW5kU2NhbGluZykKQEAgLTk0Nyw2ICs5OTIsMTAgQEAgVEVTVChUaWxlZExheWVyQ2hyb21p
dW1UZXN0LCB0aWxlc1BhaW50ZWRXaXRoT2NjbHVzaW9uQW5kU2NhbGluZykKICAgICAvLyBudW1i
ZXIgb2YgdGlsZXMgM3gzLgogICAgIEVYUEVDVF9FUSg5LCBsYXllci0+ZmFrZUxheWVyVGV4dHVy
ZVVwZGF0ZXIoKS0+cHJlcGFyZVJlY3RDb3VudCgpKTsKIAorICAgIEVYUEVDVF9ORUFSKG9jY2x1
ZGVkLm92ZXJkcmF3TWV0cmljcygpLnBpeGVsc0RyYXduT3BhcXVlKCksIDAsIDEpOworICAgIEVY
UEVDVF9ORUFSKG9jY2x1ZGVkLm92ZXJkcmF3TWV0cmljcygpLnBpeGVsc0RyYXduVHJhbnNsdWNl
bnQoKSwgOTAwMDAsIDEpOworICAgIEVYUEVDVF9ORUFSKG9jY2x1ZGVkLm92ZXJkcmF3TWV0cmlj
cygpLnBpeGVsc0N1bGxlZCgpLCAwLCAxKTsKKwogICAgIGxheWVyLT5mYWtlTGF5ZXJUZXh0dXJl
VXBkYXRlcigpLT5jbGVhclByZXBhcmVSZWN0Q291bnQoKTsKIAogICAgIC8vIFRoaXMgbWFrZXMg
c3VyZSB0aGUgcGFpbnRpbmcgd29ya3Mgd2hlbiB0aGUgY29udGVudCBzcGFjZSBpcyBzY2FsZWQg
dG8KQEAgLTk1OCw2ICsxMDA3LDEwIEBAIFRFU1QoVGlsZWRMYXllckNocm9taXVtVGVzdCwgdGls
ZXNQYWludGVkV2l0aE9jY2x1c2lvbkFuZFNjYWxpbmcpCiAgICAgbGF5ZXItPnByZXBhcmVUb1Vw
ZGF0ZShJbnRSZWN0KDAsIDAsIDYwMCwgNjAwKSwgJm9jY2x1ZGVkKTsKICAgICBFWFBFQ1RfRVEo
OS0xLCBsYXllci0+ZmFrZUxheWVyVGV4dHVyZVVwZGF0ZXIoKS0+cHJlcGFyZVJlY3RDb3VudCgp
KTsKIAorICAgIEVYUEVDVF9ORUFSKG9jY2x1ZGVkLm92ZXJkcmF3TWV0cmljcygpLnBpeGVsc0Ry
YXduT3BhcXVlKCksIDAsIDEpOworICAgIEVYUEVDVF9ORUFSKG9jY2x1ZGVkLm92ZXJkcmF3TWV0
cmljcygpLnBpeGVsc0RyYXduVHJhbnNsdWNlbnQoKSwgOTAwMDAgKyA4MDAwMCwgMSk7CisgICAg
RVhQRUNUX05FQVIob2NjbHVkZWQub3ZlcmRyYXdNZXRyaWNzKCkucGl4ZWxzQ3VsbGVkKCksIDEw
MDAwLCAxKTsKKwogICAgIGxheWVyLT5mYWtlTGF5ZXJUZXh0dXJlVXBkYXRlcigpLT5jbGVhclBy
ZXBhcmVSZWN0Q291bnQoKTsKIAogICAgIC8vIFRoaXMgbWFrZXMgc3VyZSBjb250ZW50IHNjYWxp
bmcgYW5kIHRyYW5zZm9ybXMgd29yayB0b2dldGhlci4KQEAgLTk3MSwxMiArMTAyNCwxNyBAQCBU
RVNUKFRpbGVkTGF5ZXJDaHJvbWl1bVRlc3QsIHRpbGVzUGFpbnRlZFdpdGhPY2NsdXNpb25BbmRT
Y2FsaW5nKQogICAgIGxheWVyLT5pbnZhbGlkYXRlUmVjdChJbnRSZWN0KDAsIDAsIDYwMCwgNjAw
KSk7CiAgICAgbGF5ZXItPnByZXBhcmVUb1VwZGF0ZShJbnRSZWN0KDAsIDAsIDYwMCwgNjAwKSwg
Jm9jY2x1ZGVkKTsKICAgICBFWFBFQ1RfRVEoOS0xLCBsYXllci0+ZmFrZUxheWVyVGV4dHVyZVVw
ZGF0ZXIoKS0+cHJlcGFyZVJlY3RDb3VudCgpKTsKKworICAgIEVYUEVDVF9ORUFSKG9jY2x1ZGVk
Lm92ZXJkcmF3TWV0cmljcygpLnBpeGVsc0RyYXduT3BhcXVlKCksIDAsIDEpOworICAgIEVYUEVD
VF9ORUFSKG9jY2x1ZGVkLm92ZXJkcmF3TWV0cmljcygpLnBpeGVsc0RyYXduVHJhbnNsdWNlbnQo
KSwgOTAwMDAgKyA4MDAwMCArIDgwMDAwLCAxKTsKKyAgICBFWFBFQ1RfTkVBUihvY2NsdWRlZC5v
dmVyZHJhd01ldHJpY3MoKS5waXhlbHNDdWxsZWQoKSwgMTAwMDAgKyAxMDAwMCwgMSk7CiB9CiAK
IFRFU1QoVGlsZWRMYXllckNocm9taXVtVGVzdCwgb3BhcXVlQ29udGVudHNSZWdpb24pCiB7CiAg
ICAgT3duUHRyPFRleHR1cmVNYW5hZ2VyPiB0ZXh0dXJlTWFuYWdlciA9IFRleHR1cmVNYW5hZ2Vy
OjpjcmVhdGUoNCoxMDI0KjEwMjQsIDIqMTAyNCoxMDI0LCAxMDI0KTsKICAgICBSZWZQdHI8RmFr
ZVRpbGVkTGF5ZXJDaHJvbWl1bT4gbGF5ZXIgPSBhZG9wdFJlZihuZXcgRmFrZVRpbGVkTGF5ZXJD
aHJvbWl1bSh0ZXh0dXJlTWFuYWdlci5nZXQoKSkpOworICAgIFRlc3RDQ09jY2x1c2lvblRyYWNr
ZXIgb2NjbHVkZWQ7CiAKICAgICAvLyBUaGUgdGlsZSBzaXplIGlzIDEwMHgxMDAsIHNvIHRoaXMg
aW52YWxpZGF0ZXMgYW5kIHRoZW4gcGFpbnRzIHR3byB0aWxlcyBpbiB2YXJpb3VzIHdheXMuCiAK
QEAgLTk4Nyw0OSArMTA0NSw3MCBAQCBURVNUKFRpbGVkTGF5ZXJDaHJvbWl1bVRlc3QsIG9wYXF1
ZUNvbnRlbnRzUmVnaW9uKQogICAgIEludFJlY3QgdmlzaWJsZUJvdW5kcyA9IEludFJlY3QoMCwg
MCwgMTAwLCAxNTApOwogCiAgICAgbGF5ZXItPnNldEJvdW5kcyhjb250ZW50Qm91bmRzLnNpemUo
KSk7CisgICAgbGF5ZXItPnNldERyYXdUcmFuc2Zvcm0oVHJhbnNmb3JtYXRpb25NYXRyaXgoMSwg
MCwgMCwgMSwgbGF5ZXItPmJvdW5kcygpLndpZHRoKCkgLyAyLjAsIGxheWVyLT5ib3VuZHMoKS5o
ZWlnaHQoKSAvIDIuMCkpOwogICAgIGxheWVyLT5zZXRWaXNpYmxlTGF5ZXJSZWN0KHZpc2libGVC
b3VuZHMpOwogICAgIGxheWVyLT5zZXREcmF3T3BhY2l0eSgxKTsKIAogICAgIC8vIElmIHRoZSBs
YXllciBkb2Vzbid0IHBhaW50IG9wYXF1ZSBjb250ZW50LCB0aGVuIHRoZSBvcGFxdWVDb250ZW50
c1JlZ2lvbiBzaG91bGQgYmUgZW1wdHkuCi0gICAgbGF5ZXItPmZha2VMYXllclRleHR1cmVVcGRh
dGVyKCktPnNldE9wYXF1ZVBhaW50UmVjdChvcGFxdWVQYWludFJlY3QpOworICAgIGxheWVyLT5m
YWtlTGF5ZXJUZXh0dXJlVXBkYXRlcigpLT5zZXRPcGFxdWVQYWludFJlY3QoSW50UmVjdCgpKTsK
ICAgICBsYXllci0+aW52YWxpZGF0ZVJlY3QoY29udGVudEJvdW5kcyk7Ci0gICAgbGF5ZXItPnBy
ZXBhcmVUb1VwZGF0ZShjb250ZW50Qm91bmRzLCAwKTsKKyAgICBsYXllci0+cHJlcGFyZVRvVXBk
YXRlKGNvbnRlbnRCb3VuZHMsICZvY2NsdWRlZCk7CiAgICAgb3BhcXVlQ29udGVudHMgPSBsYXll
ci0+b3BhcXVlQ29udGVudHNSZWdpb24oKTsKICAgICBFWFBFQ1RfVFJVRShvcGFxdWVDb250ZW50
cy5pc0VtcHR5KCkpOwogCisgICAgRVhQRUNUX05FQVIob2NjbHVkZWQub3ZlcmRyYXdNZXRyaWNz
KCkucGl4ZWxzRHJhd25PcGFxdWUoKSwgMCwgMSk7CisgICAgRVhQRUNUX05FQVIob2NjbHVkZWQu
b3ZlcmRyYXdNZXRyaWNzKCkucGl4ZWxzRHJhd25UcmFuc2x1Y2VudCgpLCAyMDAwMCwgMSk7Cisg
ICAgRVhQRUNUX05FQVIob2NjbHVkZWQub3ZlcmRyYXdNZXRyaWNzKCkucGl4ZWxzQ3VsbGVkKCks
IDAsIDEpOworCiAgICAgLy8gb3BhcXVlQ29udGVudHNSZWdpb24gc2hvdWxkIG1hdGNoIHRoZSB2
aXNpYmxlIHBhcnQgb2Ygd2hhdCBpcyBwYWludGVkIG9wYXF1ZS4KICAgICBvcGFxdWVQYWludFJl
Y3QgPSBJbnRSZWN0KDEwLCAxMCwgOTAsIDE5MCk7CiAgICAgbGF5ZXItPmZha2VMYXllclRleHR1
cmVVcGRhdGVyKCktPnNldE9wYXF1ZVBhaW50UmVjdChvcGFxdWVQYWludFJlY3QpOwogICAgIGxh
eWVyLT5pbnZhbGlkYXRlUmVjdChjb250ZW50Qm91bmRzKTsKLSAgICBsYXllci0+cHJlcGFyZVRv
VXBkYXRlKGNvbnRlbnRCb3VuZHMsIDApOworICAgIGxheWVyLT5wcmVwYXJlVG9VcGRhdGUoY29u
dGVudEJvdW5kcywgJm9jY2x1ZGVkKTsKICAgICBvcGFxdWVDb250ZW50cyA9IGxheWVyLT5vcGFx
dWVDb250ZW50c1JlZ2lvbigpOwogICAgIEVYUEVDVF9FUV9SRUNUKGludGVyc2VjdGlvbihvcGFx
dWVQYWludFJlY3QsIHZpc2libGVCb3VuZHMpLCBvcGFxdWVDb250ZW50cy5ib3VuZHMoKSk7CiAg
ICAgRVhQRUNUX0VRKDF1LCBvcGFxdWVDb250ZW50cy5yZWN0cygpLnNpemUoKSk7CiAKKyAgICBF
WFBFQ1RfTkVBUihvY2NsdWRlZC5vdmVyZHJhd01ldHJpY3MoKS5waXhlbHNEcmF3bk9wYXF1ZSgp
LCAxNzEwMCwgMSk7CisgICAgRVhQRUNUX05FQVIob2NjbHVkZWQub3ZlcmRyYXdNZXRyaWNzKCku
cGl4ZWxzRHJhd25UcmFuc2x1Y2VudCgpLCAyMDAwMCArIDIwMDAwIC0gMTcxMDAsIDEpOworICAg
IEVYUEVDVF9ORUFSKG9jY2x1ZGVkLm92ZXJkcmF3TWV0cmljcygpLnBpeGVsc0N1bGxlZCgpLCAw
LCAxKTsKKwogICAgIC8vIElmIHdlIHBhaW50IGFnYWluIHdpdGhvdXQgaW52YWxpZGF0aW5nLCB0
aGUgc2FtZSBzdHVmZiBzaG91bGQgYmUgb3BhcXVlLgogICAgIGxheWVyLT5mYWtlTGF5ZXJUZXh0
dXJlVXBkYXRlcigpLT5zZXRPcGFxdWVQYWludFJlY3QoSW50UmVjdCgpKTsKLSAgICBsYXllci0+
cHJlcGFyZVRvVXBkYXRlKGNvbnRlbnRCb3VuZHMsIDApOworICAgIGxheWVyLT5wcmVwYXJlVG9V
cGRhdGUoY29udGVudEJvdW5kcywgJm9jY2x1ZGVkKTsKICAgICBvcGFxdWVDb250ZW50cyA9IGxh
eWVyLT5vcGFxdWVDb250ZW50c1JlZ2lvbigpOwogICAgIEVYUEVDVF9FUV9SRUNUKGludGVyc2Vj
dGlvbihvcGFxdWVQYWludFJlY3QsIHZpc2libGVCb3VuZHMpLCBvcGFxdWVDb250ZW50cy5ib3Vu
ZHMoKSk7CiAgICAgRVhQRUNUX0VRKDF1LCBvcGFxdWVDb250ZW50cy5yZWN0cygpLnNpemUoKSk7
CiAKKyAgICBFWFBFQ1RfTkVBUihvY2NsdWRlZC5vdmVyZHJhd01ldHJpY3MoKS5waXhlbHNEcmF3
bk9wYXF1ZSgpLCAxNzEwMCwgMSk7CisgICAgRVhQRUNUX05FQVIob2NjbHVkZWQub3ZlcmRyYXdN
ZXRyaWNzKCkucGl4ZWxzRHJhd25UcmFuc2x1Y2VudCgpLCAyMDAwMCArIDIwMDAwIC0gMTcxMDAs
IDEpOworICAgIEVYUEVDVF9ORUFSKG9jY2x1ZGVkLm92ZXJkcmF3TWV0cmljcygpLnBpeGVsc0N1
bGxlZCgpLCAwLCAxKTsKKwogICAgIC8vIElmIHdlIHJlcGFpbnQgYSBub24tb3BhcXVlIHBhcnQg
b2YgdGhlIHRpbGUsIHRoZW4gaXQgc2hvdWxkbid0IGxvc2UgaXRzIG9wYXF1ZS1uZXNzLiBBbmQg
b3RoZXIgdGlsZXMgc2hvdWxkCiAgICAgLy8gbm90IGJlIGFmZmVjdGVkLgogICAgIGxheWVyLT5m
YWtlTGF5ZXJUZXh0dXJlVXBkYXRlcigpLT5zZXRPcGFxdWVQYWludFJlY3QoSW50UmVjdCgpKTsK
ICAgICBsYXllci0+aW52YWxpZGF0ZVJlY3QoSW50UmVjdCgwLCAwLCAxLCAxKSk7Ci0gICAgbGF5
ZXItPnByZXBhcmVUb1VwZGF0ZShjb250ZW50Qm91bmRzLCAwKTsKKyAgICBsYXllci0+cHJlcGFy
ZVRvVXBkYXRlKGNvbnRlbnRCb3VuZHMsICZvY2NsdWRlZCk7CiAgICAgb3BhcXVlQ29udGVudHMg
PSBsYXllci0+b3BhcXVlQ29udGVudHNSZWdpb24oKTsKICAgICBFWFBFQ1RfRVFfUkVDVChpbnRl
cnNlY3Rpb24ob3BhcXVlUGFpbnRSZWN0LCB2aXNpYmxlQm91bmRzKSwgb3BhcXVlQ29udGVudHMu
Ym91bmRzKCkpOwogICAgIEVYUEVDVF9FUSgxdSwgb3BhcXVlQ29udGVudHMucmVjdHMoKS5zaXpl
KCkpOwogCisgICAgRVhQRUNUX05FQVIob2NjbHVkZWQub3ZlcmRyYXdNZXRyaWNzKCkucGl4ZWxz
RHJhd25PcGFxdWUoKSwgMTcxMDAsIDEpOworICAgIEVYUEVDVF9ORUFSKG9jY2x1ZGVkLm92ZXJk
cmF3TWV0cmljcygpLnBpeGVsc0RyYXduVHJhbnNsdWNlbnQoKSwgMjAwMDAgKyAyMDAwMCAtIDE3
MTAwICsgMSwgMSk7CisgICAgRVhQRUNUX05FQVIob2NjbHVkZWQub3ZlcmRyYXdNZXRyaWNzKCku
cGl4ZWxzQ3VsbGVkKCksIDAsIDEpOworCiAgICAgLy8gSWYgd2UgcmVwYWludCBhbiBvcGFxdWUg
cGFydCBvZiB0aGUgdGlsZSwgdGhlbiBpdCBzaG91bGQgbG9zZSBpdHMgb3BhcXVlLW5lc3MuIEJ1
dCBvdGhlciB0aWxlcyBzaG91bGQgc3RpbGwKICAgICAvLyBub3QgYmUgYWZmZWN0ZWQuCiAgICAg
bGF5ZXItPmZha2VMYXllclRleHR1cmVVcGRhdGVyKCktPnNldE9wYXF1ZVBhaW50UmVjdChJbnRS
ZWN0KCkpOwogICAgIGxheWVyLT5pbnZhbGlkYXRlUmVjdChJbnRSZWN0KDEwLCAxMCwgMSwgMSkp
OwotICAgIGxheWVyLT5wcmVwYXJlVG9VcGRhdGUoY29udGVudEJvdW5kcywgMCk7CisgICAgbGF5
ZXItPnByZXBhcmVUb1VwZGF0ZShjb250ZW50Qm91bmRzLCAmb2NjbHVkZWQpOwogICAgIG9wYXF1
ZUNvbnRlbnRzID0gbGF5ZXItPm9wYXF1ZUNvbnRlbnRzUmVnaW9uKCk7CiAgICAgRVhQRUNUX0VR
X1JFQ1QoaW50ZXJzZWN0aW9uKEludFJlY3QoMTAsIDEwMCwgOTAsIDEwMCksIHZpc2libGVCb3Vu
ZHMpLCBvcGFxdWVDb250ZW50cy5ib3VuZHMoKSk7CiAgICAgRVhQRUNUX0VRKDF1LCBvcGFxdWVD
b250ZW50cy5yZWN0cygpLnNpemUoKSk7CisKKyAgICBFWFBFQ1RfTkVBUihvY2NsdWRlZC5vdmVy
ZHJhd01ldHJpY3MoKS5waXhlbHNEcmF3bk9wYXF1ZSgpLCAxNzEwMCwgMSk7CisgICAgRVhQRUNU
X05FQVIob2NjbHVkZWQub3ZlcmRyYXdNZXRyaWNzKCkucGl4ZWxzRHJhd25UcmFuc2x1Y2VudCgp
LCAyMDAwMCArIDIwMDAwIC0gMTcxMDAgKyAxICsgMSwgMSk7CisgICAgRVhQRUNUX05FQVIob2Nj
bHVkZWQub3ZlcmRyYXdNZXRyaWNzKCkucGl4ZWxzQ3VsbGVkKCksIDAsIDEpOwogfQogCiB9IC8v
IG5hbWVzcGFjZQo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>132061</attachid>
            <date>2012-03-15 09:21:09 -0700</date>
            <delta_ts>2012-03-15 17:32:46 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-81175-20120315122107.patch</filename>
            <type>text/plain</type>
            <size>21876</size>
            <attacher name="Dana Jansens">danakj</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTEwODA2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZjJiZjlkNjYyYTA4ZjFl
MmJkZjUzNDgxODQ0NzRiMGI3YTQ4ZTYyNC4uMGYwNDRkYjY4ZWNiN2VlY2EwY2JlMGNiNDJlODhh
Njg4YmY1YWNhOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSw1ICsxLDI5IEBACiAyMDEyLTAzLTE1ICBEYW5h
IEphbnNlbnMgIDxkYW5ha2pAY2hyb21pdW0ub3JnPgogCisgICAgICAgIFtjaHJvbWl1bV0gQWRk
IG92ZXJkcmF3IG1ldHJpY3MgZm9yIHRleHR1cmUgdXBsb2FkcworICAgICAgICBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9ODExNzUKKworICAgICAgICBSZXZpZXdlZCBi
eSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBSZWNvcmQgdGV4dHVyZSB1cGxvYWQgbWV0cmlj
cyBkdXJpbmcgcGFpbnQuIFRvIHByb3Blcmx5IHJlY29yZAorICAgICAgICB0aGUgYW1vdW50IG9m
IHBpeGVscyBjdWxsZWQsIHdlIG11c3QgY29tcHV0ZSB0aGUgYW1vdW50IG9mIHBpeGVscyB3ZQor
ICAgICAgICB3b3VsZCBoYXZlIHVwbG9hZGVkIGZvciBhIHRpbGUuIFRoaXMgcmVxdWlyZXMga25v
d2luZyB0aGUgZGlydHkgcmVjdCBvZgorICAgICAgICB0aGUgdGlsZSwgYnV0IHRoZSBkaXJ0eSBy
ZWN0IGNhbiBiZSBjaGFuZ2VkIGJ5IFdlYktpdCBkdXJpbmcgYSBwYWludCwgc28KKyAgICAgICAg
d2UgYWx3YXlzIHN0b3JlIHRoZSBkaXJ0eVJlY3QgaW4gdGhlIHRpbGUncyB1cGRhdGVSZWN0LiBX
ZSBhZGQgYW4KKyAgICAgICAgbV91cGRhdGVDdWxsZWQgYm9vbCB0byB0aGUgVXBkYXRhYmxlVGls
ZSBzdHJ1Y3R1cmUsIHRvIGlkZW50aWZ5IHRpbGVzCisgICAgICAgIHRoYXQgd2VyZSBub3QgdXBk
YXRlZCwgYW5kIGtub3cgYSB0aWxlIHdhcyB1cGRhdGVkIGlmIHVwZGF0ZVJlY3QgaXMgbm90Cisg
ICAgICAgIGVtcHR5IGFuZCB1cGRhdGVDdWxsZWQgaXMgZmFsc2UuCisKKyAgICAgICAgVGVzdGVk
IGJ5IGFsbCBUaWxlZExheWVyQ2hyb21pdW1UZXN0cyB0aGF0IHVzZSBvY2NsdXNpb24gdHJhY2tl
ci4KKworICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL1RpbGVkTGF5ZXJDaHJv
bWl1bS5jcHA6CisgICAgICAgIChVcGRhdGFibGVUaWxlKToKKyAgICAgICAgKFdlYkNvcmU6OlRp
bGVkTGF5ZXJDaHJvbWl1bTo6cHJlcGFyZVRvVXBkYXRlVGlsZXMpOgorICAgICAgICAqIHBsYXRm
b3JtL2dyYXBoaWNzL2Nocm9taXVtL2NjL0NDTGF5ZXJUcmVlSG9zdC5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpDQ0xheWVyVHJlZUhvc3Q6OnBhaW50TGF5ZXJDb250ZW50cyk6CisKKzIwMTItMDMt
MTUgIERhbmEgSmFuc2VucyAgPGRhbmFrakBjaHJvbWl1bS5vcmc+CisKICAgICAgICAgW2Nocm9t
aXVtXSBDaGFuZ2VzIHRvIG92ZXJkcmF3IG1ldHJpY3MgdG8gYWxsb3cgdXBsb2FkIHRyYWNraW5n
CiAgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD04MTIyMgog
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZyBiL1NvdXJjZS9X
ZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCmluZGV4IGJhYTI0M2JkMDE2YTNmODkxZDE1MDhlOGFj
NWUxMzUxYjRlN2RlNWUuLjIyMjEyZmZhYTg3ZTRiMzdmNGViYzZmODU0YzMzNGU4ZjYwOTNiZTMg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCkBAIC0xLDUgKzEsMTUgQEAKIDIwMTItMDMtMTUg
IERhbmEgSmFuc2VucyAgPGRhbmFrakBjaHJvbWl1bS5vcmc+CiAKKyAgICAgICAgW2Nocm9taXVt
XSBBZGQgb3ZlcmRyYXcgbWV0cmljcyBmb3IgdGV4dHVyZSB1cGxvYWRzCisgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD04MTE3NQorCisgICAgICAgIFJldmll
d2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogdGVzdHMvVGlsZWRMYXllckNocm9t
aXVtVGVzdC5jcHA6CisgICAgICAgIChXVEY6OlRFU1QpOgorCisyMDEyLTAzLTE1ICBEYW5hIEph
bnNlbnMgIDxkYW5ha2pAY2hyb21pdW0ub3JnPgorCiAgICAgICAgIFtjaHJvbWl1bV0gQ2hhbmdl
cyB0byBvdmVyZHJhdyBtZXRyaWNzIHRvIGFsbG93IHVwbG9hZCB0cmFja2luZwogICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9ODEyMjIKIApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vVGlsZWRMYXllckNo
cm9taXVtLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL1Rp
bGVkTGF5ZXJDaHJvbWl1bS5jcHAKaW5kZXggODUzZDY3NTRjYWE1OWI3YmUyODEzOTMyODllZDdk
MDBjZDM0OTI1Ni4uMzcwMzc0MWRmZTljNTc3YWQ4MTZhMmZjNTJjNjk1YjEzMzNmZmU3MiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vVGlsZWRM
YXllckNocm9taXVtLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9j
aHJvbWl1bS9UaWxlZExheWVyQ2hyb21pdW0uY3BwCkBAIC02MywxOSArNjMsMTYgQEAgcHVibGlj
OgogICAgIE1hbmFnZWRUZXh0dXJlKiBtYW5hZ2VkVGV4dHVyZSgpIHsgcmV0dXJuIG1fdGV4dHVy
ZS0+dGV4dHVyZSgpOyB9CiAKICAgICBib29sIGlzRGlydHkoKSBjb25zdCB7IHJldHVybiAhbV9k
aXJ0eVJlY3QuaXNFbXB0eSgpOyB9Ci0gICAgdm9pZCBjb3B5QW5kQ2xlYXJEaXJ0eSgpCi0gICAg
ewotICAgICAgICBtX3VwZGF0ZVJlY3QgPSBtX2RpcnR5UmVjdDsKLSAgICAgICAgbV9kaXJ0eVJl
Y3QgPSBJbnRSZWN0KCk7Ci0gICAgfQotICAgIGJvb2wgaXNEaXJ0eUZvckN1cnJlbnRGcmFtZSgp
IHsgcmV0dXJuICFtX2RpcnR5UmVjdC5pc0VtcHR5KCkgJiYgbV91cGRhdGVSZWN0LmlzRW1wdHko
KTsgfQorICAgIGJvb2wgaXNEaXJ0eUZvckN1cnJlbnRGcmFtZSgpIHsgcmV0dXJuICFtX2RpcnR5
UmVjdC5pc0VtcHR5KCkgJiYgKG1fdXBkYXRlUmVjdC5pc0VtcHR5KCkgfHwgbV91cGRhdGVDdWxs
ZWQpOyB9CiAKICAgICBJbnRSZWN0IG1fZGlydHlSZWN0OwogICAgIEludFJlY3QgbV91cGRhdGVS
ZWN0OwogICAgIGJvb2wgbV9wYXJ0aWFsVXBkYXRlOworICAgIGJvb2wgbV91cGRhdGVDdWxsZWQ7
CiBwcml2YXRlOgogICAgIGV4cGxpY2l0IFVwZGF0YWJsZVRpbGUoUGFzc093blB0cjxMYXllclRl
eHR1cmVVcGRhdGVyOjpUZXh0dXJlPiB0ZXh0dXJlKQogICAgICAgICA6IG1fcGFydGlhbFVwZGF0
ZShmYWxzZSkKKyAgICAgICAgLCBtX3VwZGF0ZUN1bGxlZChmYWxzZSkKICAgICAgICAgLCBtX3Rl
eHR1cmUodGV4dHVyZSkKICAgICB7CiAgICAgfQpAQCAtMTk2LDYgKzE5Myw5IEBAIHZvaWQgVGls
ZWRMYXllckNocm9taXVtOjp1cGRhdGVDb21wb3NpdG9yUmVzb3VyY2VzKEdyYXBoaWNzQ29udGV4
dDNEKiwgQ0NUZXh0dXJlCiAgICAgICAgICAgICBpZiAoIXRpbGUpCiAgICAgICAgICAgICAgICAg
Q1JBU0goKTsKIAorICAgICAgICAgICAgaWYgKHRpbGUtPm1fdXBkYXRlQ3VsbGVkKQorICAgICAg
ICAgICAgICAgIGNvbnRpbnVlOworCiAgICAgICAgICAgICBJbnRSZWN0IHNvdXJjZVJlY3QgPSB0
aWxlLT5tX3VwZGF0ZVJlY3Q7CiAgICAgICAgICAgICBpZiAodGlsZS0+bV91cGRhdGVSZWN0Lmlz
RW1wdHkoKSkKICAgICAgICAgICAgICAgICBjb250aW51ZTsKQEAgLTQxMiwxMyArNDEyLDE3IEBA
IHZvaWQgVGlsZWRMYXllckNocm9taXVtOjpwcmVwYXJlVG9VcGRhdGVUaWxlcyhib29sIGlkbGUs
IGludCBsZWZ0LCBpbnQgdG9wLCBpbnQKICAgICAgICAgICAgIGlmICghdGlsZSkKICAgICAgICAg
ICAgICAgICB0aWxlID0gY3JlYXRlVGlsZShpLCBqKTsKIAotICAgICAgICAgICAgLy8gV2hlbiBu
b3QgaWRsZSBwYWludGluZywgaWYgdGhlIHZpc2libGUgcmVnaW9uIG9mIHRoZSB0aWxlIGlzIG9j
Y2x1ZGVkLCBkb24ndCByZXNlcnZlIGEgdGV4dHVyZSBvciBtYXJrIGl0IGZvciB1cGRhdGUuCi0g
ICAgICAgICAgICAvLyBJZiBhbnkgcGFydCBvZiB0aGUgdGlsZSBpcyB2aXNpYmxlLCB0aGVuIHdl
IG5lZWQgdG8gcGFpbnQgaXQgc28gdGhlIHRpbGUgaXMgcHVzaGVkIHRvIHRoZSBpbXBsIHRocmVh
ZC4KLSAgICAgICAgICAgIC8vIFRoaXMgd2lsbCBhbHNvIGF2b2lkIHBhaW50aW5nIHRoZSB0aWxl
IGluIHRoZSBuZXh0IGxvb3AsIGJlbG93LgorICAgICAgICAgICAgLy8gU2F2ZSB0aGUgZGlydHkg
cmVjdCBzaW5jZSBXZWJLaXQgY2FuIGNoYW5nZSB0aGUgdGlsZSdzIGRpcnR5IHJlY3QgZHVyaW5n
IHBhaW50aW5nLgorICAgICAgICAgICAgdGlsZS0+bV91cGRhdGVSZWN0ID0gdGlsZS0+bV9kaXJ0
eVJlY3Q7CisKKyAgICAgICAgICAgIC8vIFdoZW4gbm90IGlkbGUgcGFpbnRpbmcsIGlmIHRoZSB2
aXNpYmxlIHJlZ2lvbiBvZiB0aGUgdGlsZSBpcyBvY2NsdWRlZCwgZG9uJ3QgcmVzZXJ2ZSBhIHRl
eHR1cmUgb3IgdXBkYXRlIHRoZSB0aWxlLgorICAgICAgICAgICAgLy8gSWYgYW55IHBhcnQgb2Yg
dGhlIHRpbGUgaXMgdmlzaWJsZSwgdGhlbiB3ZSBuZWVkIHRvIHVwZGF0ZSBpdCBzbyB0aGUgdGls
ZSBpcyBwdXNoZWQgdG8gdGhlIGltcGwgdGhyZWFkLgogICAgICAgICAgICAgaWYgKCFpZGxlICYm
IG9jY2x1c2lvbikgewogICAgICAgICAgICAgICAgIEludFJlY3QgdmlzaWJsZVRpbGVSZWN0ID0g
aW50ZXJzZWN0aW9uKG1fdGlsZXItPnRpbGVCb3VuZHMoaSwgaiksIHZpc2libGVMYXllclJlY3Qo
KSk7Ci0gICAgICAgICAgICAgICAgaWYgKG9jY2x1c2lvbi0+b2NjbHVkZWQodGhpcywgdmlzaWJs
ZVRpbGVSZWN0KSkKKyAgICAgICAgICAgICAgICBpZiAob2NjbHVzaW9uLT5vY2NsdWRlZCh0aGlz
LCB2aXNpYmxlVGlsZVJlY3QpKSB7CisgICAgICAgICAgICAgICAgICAgIHRpbGUtPm1fdXBkYXRl
Q3VsbGVkID0gdHJ1ZTsKICAgICAgICAgICAgICAgICAgICAgY29udGludWU7CisgICAgICAgICAg
ICAgICAgfQogICAgICAgICAgICAgfQogCiAgICAgICAgICAgICAvLyBGSVhNRTogRGVjaWRlIGlm
IHBhcnRpYWwgdXBkYXRlIHNob3VsZCBiZSBhbGxvd2VkIGJhc2VkIG9uIGNvc3QKQEAgLTQ0OCw3
ICs0NTIsOCBAQCB2b2lkIFRpbGVkTGF5ZXJDaHJvbWl1bTo6cHJlcGFyZVRvVXBkYXRlVGlsZXMo
Ym9vbCBpZGxlLCBpbnQgbGVmdCwgaW50IHRvcCwgaW50CiAgICAgICAgICAgICB9CiAKICAgICAg
ICAgICAgIGRpcnR5TGF5ZXJSZWN0LnVuaXRlKHRpbGUtPm1fZGlydHlSZWN0KTsKLSAgICAgICAg
ICAgIHRpbGUtPmNvcHlBbmRDbGVhckRpcnR5KCk7CisgICAgICAgICAgICAvLyBDbGVhciB0aGUg
ZGlydHkgcmVjdC4KKyAgICAgICAgICAgIHRpbGUtPm1fZGlydHlSZWN0ID0gSW50UmVjdCgpOwog
ICAgICAgICB9CiAgICAgfQogCkBAIC00NzksMTEgKzQ4NCwyMyBAQCB2b2lkIFRpbGVkTGF5ZXJD
aHJvbWl1bTo6cHJlcGFyZVRvVXBkYXRlVGlsZXMoYm9vbCBpZGxlLCBpbnQgbGVmdCwgaW50IHRv
cCwgaW50CiAKICAgICAgICAgICAgIEludFJlY3QgdGlsZVJlY3QgPSBtX3RpbGVyLT50aWxlQm91
bmRzKGksIGopOwogCi0gICAgICAgICAgICAvLyBVc2UgbV91cGRhdGVSZWN0IGFzIGNvcHlBbmRD
bGVhckRpcnR5IGFib3ZlIG1vdmVkIHRoZSBleGlzdGluZyBkaXJ0eSByZWN0IHRvIG1fdXBkYXRl
UmVjdCBpZiB0aGUgdGlsZSBpc24ndCBjdWxsZWQuCisgICAgICAgICAgICAvLyBVc2UgbV91cGRh
dGVSZWN0IGFzIHRoZSBhYm92ZSBsb29wIGNvcGllZCB0aGUgZGlydHkgcmVjdCBmb3IgdGhpcyBm
cmFtZSB0byBtX3VwZGF0ZVJlY3QuCiAgICAgICAgICAgICBjb25zdCBJbnRSZWN0JiBkaXJ0eVJl
Y3QgPSB0aWxlLT5tX3VwZGF0ZVJlY3Q7CiAgICAgICAgICAgICBpZiAoZGlydHlSZWN0LmlzRW1w
dHkoKSkKICAgICAgICAgICAgICAgICBjb250aW51ZTsKIAorICAgICAgICAgICAgLy8gc291cmNl
UmVjdCBzdGFydHMgYXMgYSBmdWxsLXNpemVkIHRpbGUgd2l0aCBib3JkZXIgdGV4ZWxzIGluY2x1
ZGVkLgorICAgICAgICAgICAgSW50UmVjdCBzb3VyY2VSZWN0ID0gbV90aWxlci0+dGlsZVJlY3Qo
dGlsZSk7CisgICAgICAgICAgICBzb3VyY2VSZWN0LmludGVyc2VjdChkaXJ0eVJlY3QpOworICAg
ICAgICAgICAgLy8gUGFpbnQgcmVjdCBub3QgZ3VhcmFudGVlZCB0byBsaW5lIHVwIG9uIHRpbGUg
Ym91bmRhcmllcywgc28KKyAgICAgICAgICAgIC8vIG1ha2Ugc3VyZSB0aGF0IHNvdXJjZVJlY3Qg
ZG9lc24ndCBleHRlbmQgb3V0c2lkZSBvZiBpdC4KKyAgICAgICAgICAgIHNvdXJjZVJlY3QuaW50
ZXJzZWN0KG1fcGFpbnRSZWN0KTsKKworICAgICAgICAgICAgaWYgKHRpbGUtPm1fdXBkYXRlQ3Vs
bGVkICYmIG9jY2x1c2lvbikgeworICAgICAgICAgICAgICAgIG9jY2x1c2lvbi0+b3ZlcmRyYXdN
ZXRyaWNzKCkuZGlkQ3VsbChUcmFuc2Zvcm1hdGlvbk1hdHJpeCgpLCBzb3VyY2VSZWN0LCBJbnRS
ZWN0KCkpOworICAgICAgICAgICAgICAgIGNvbnRpbnVlOworICAgICAgICAgICAgfQorCiAgICAg
ICAgICAgICAvLyBTYXZlIHdoYXQgd2FzIHBhaW50ZWQgb3BhcXVlIGluIHRoZSB0aWxlLiBLZWVw
IHRoZSBvbGQgYXJlYSBpZiB0aGUgcGFpbnQgZGlkbid0IHRvdWNoIGl0LCBhbmQgZGlkbid0IHBh
aW50IHNvbWUKICAgICAgICAgICAgIC8vIG90aGVyIHBhcnQgb2YgdGhlIHRpbGUgb3BhcXVlLgog
ICAgICAgICAgICAgSW50UmVjdCB0aWxlUGFpbnRlZFJlY3QgPSBpbnRlcnNlY3Rpb24odGlsZVJl
Y3QsIG1fcGFpbnRSZWN0KTsKQEAgLTQ5NywxOCArNTE0LDEzIEBAIHZvaWQgVGlsZWRMYXllckNo
cm9taXVtOjpwcmVwYXJlVG9VcGRhdGVUaWxlcyhib29sIGlkbGUsIGludCBsZWZ0LCBpbnQgdG9w
LCBpbnQKICAgICAgICAgICAgICAgICAgICAgdGlsZS0+c2V0T3BhcXVlUmVjdCh0aWxlUGFpbnRl
ZE9wYXF1ZVJlY3QpOwogICAgICAgICAgICAgfQogCi0gICAgICAgICAgICAvLyBzb3VyY2VSZWN0
IHN0YXJ0cyBhcyBhIGZ1bGwtc2l6ZWQgdGlsZSB3aXRoIGJvcmRlciB0ZXhlbHMgaW5jbHVkZWQu
Ci0gICAgICAgICAgICBJbnRSZWN0IHNvdXJjZVJlY3QgPSBtX3RpbGVyLT50aWxlUmVjdCh0aWxl
KTsKLSAgICAgICAgICAgIHNvdXJjZVJlY3QuaW50ZXJzZWN0KGRpcnR5UmVjdCk7Ci0gICAgICAg
ICAgICAvLyBQYWludCByZWN0IG5vdCBndWFyYW50ZWVkIHRvIGxpbmUgdXAgb24gdGlsZSBib3Vu
ZGFyaWVzLCBzbwotICAgICAgICAgICAgLy8gbWFrZSBzdXJlIHRoYXQgc291cmNlUmVjdCBkb2Vz
bid0IGV4dGVuZCBvdXRzaWRlIG9mIGl0LgotICAgICAgICAgICAgc291cmNlUmVjdC5pbnRlcnNl
Y3QobV9wYWludFJlY3QpOwotCiAgICAgICAgICAgICB0aWxlLT5tX3VwZGF0ZVJlY3QgPSBzb3Vy
Y2VSZWN0OwogICAgICAgICAgICAgaWYgKHNvdXJjZVJlY3QuaXNFbXB0eSgpKQogICAgICAgICAg
ICAgICAgIGNvbnRpbnVlOwogCiAgICAgICAgICAgICB0aWxlLT50ZXh0dXJlKCktPnByZXBhcmVS
ZWN0KHNvdXJjZVJlY3QpOworICAgICAgICAgICAgaWYgKG9jY2x1c2lvbikKKyAgICAgICAgICAg
ICAgICBvY2NsdXNpb24tPm92ZXJkcmF3TWV0cmljcygpLmRpZERyYXcoVHJhbnNmb3JtYXRpb25N
YXRyaXgoKSwgc291cmNlUmVjdCwgdGlsZS0+b3BhcXVlUmVjdCgpKTsKICAgICAgICAgfQogICAg
IH0KIH0KQEAgLTU1Niw2ICs1NjgsNyBAQCB2b2lkIFRpbGVkTGF5ZXJDaHJvbWl1bTo6cmVzZXRV
cGRhdGVTdGF0ZSgpCiAgICAgICAgIFVwZGF0YWJsZVRpbGUqIHRpbGUgPSBzdGF0aWNfY2FzdDxV
cGRhdGFibGVUaWxlKj4oaXRlci0+c2Vjb25kLmdldCgpKTsKICAgICAgICAgdGlsZS0+bV91cGRh
dGVSZWN0ID0gSW50UmVjdCgpOwogICAgICAgICB0aWxlLT5tX3BhcnRpYWxVcGRhdGUgPSBmYWxz
ZTsKKyAgICAgICAgdGlsZS0+bV91cGRhdGVDdWxsZWQgPSBmYWxzZTsKICAgICB9CiB9CiAKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL2NjL0ND
TGF5ZXJUcmVlSG9zdC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJv
bWl1bS9jYy9DQ0xheWVyVHJlZUhvc3QuY3BwCmluZGV4IDA2NTkwMmNlNWEzMTMyM2RmZmU5MWM4
ZTVhZWNmMDMxYzc1OTUwZTAuLmRlMzc2ZGJlNWMyZGY4YWZhM2QwMjIxNmU1YmJmNGNhMDBhYTc2
MDQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVt
L2NjL0NDTGF5ZXJUcmVlSG9zdC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvY2hyb21pdW0vY2MvQ0NMYXllclRyZWVIb3N0LmNwcApAQCAtNTU3LDYgKzU1Nyw4IEBA
IHZvaWQgQ0NMYXllclRyZWVIb3N0OjpwYWludExheWVyQ29udGVudHMoY29uc3QgTGF5ZXJMaXN0
JiByZW5kZXJTdXJmYWNlTGF5ZXJMaXN0CiAgICAgICAgIH0gZWxzZQogICAgICAgICAgICAgb2Nj
bHVzaW9uVHJhY2tlci5sZWF2ZVRvVGFyZ2V0UmVuZGVyU3VyZmFjZShpdC50YXJnZXRSZW5kZXJT
dXJmYWNlTGF5ZXIoKS0+cmVuZGVyU3VyZmFjZSgpKTsKICAgICB9CisKKyAgICBvY2NsdXNpb25U
cmFja2VyLm92ZXJkcmF3TWV0cmljcygpLnJlY29yZE1ldHJpY3ModGhpcyk7CiB9CiAKIHZvaWQg
Q0NMYXllclRyZWVIb3N0Ojp1cGRhdGVDb21wb3NpdG9yUmVzb3VyY2VzKEdyYXBoaWNzQ29udGV4
dDNEKiBjb250ZXh0LCBDQ1RleHR1cmVVcGRhdGVyJiB1cGRhdGVyKQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9jaHJvbWl1bS90ZXN0cy9UaWxlZExheWVyQ2hyb21pdW1UZXN0LmNwcCBiL1Nv
dXJjZS9XZWJLaXQvY2hyb21pdW0vdGVzdHMvVGlsZWRMYXllckNocm9taXVtVGVzdC5jcHAKaW5k
ZXggMDdjZWFhZTg4ZDc1Nzc3YjYzNjNjN2E3NGM5YmEwYzg5MzRiODBjMi4uN2VlYmI5NzE0Njg2
YWVlMTEzYmUwMmZhYWU4NTZlNTIwYTY1YzE4YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9j
aHJvbWl1bS90ZXN0cy9UaWxlZExheWVyQ2hyb21pdW1UZXN0LmNwcAorKysgYi9Tb3VyY2UvV2Vi
S2l0L2Nocm9taXVtL3Rlc3RzL1RpbGVkTGF5ZXJDaHJvbWl1bVRlc3QuY3BwCkBAIC0zMDgsNiAr
MzA4LDEwIEBAIFRFU1QoVGlsZWRMYXllckNocm9taXVtVGVzdCwgcHVzaE9jY2x1ZGVkRGlydHlU
aWxlcykKICAgICBsYXllci0+dXBkYXRlQ29tcG9zaXRvclJlc291cmNlcygwLCB1cGRhdGVyKTsK
ICAgICBsYXllci0+cHVzaFByb3BlcnRpZXNUbyhsYXllckltcGwuZ2V0KCkpOwogCisgICAgRVhQ
RUNUX05FQVIob2NjbHVkZWQub3ZlcmRyYXdNZXRyaWNzKCkucGl4ZWxzRHJhd25PcGFxdWUoKSwg
MCwgMSk7CisgICAgRVhQRUNUX05FQVIob2NjbHVkZWQub3ZlcmRyYXdNZXRyaWNzKCkucGl4ZWxz
RHJhd25UcmFuc2x1Y2VudCgpLCAyMDAwMCwgMSk7CisgICAgRVhQRUNUX05FQVIob2NjbHVkZWQu
b3ZlcmRyYXdNZXRyaWNzKCkucGl4ZWxzQ3VsbGVkKCksIDAsIDEpOworCiAgICAgLy8gV2Ugc2hv
dWxkIGhhdmUgYm90aCB0aWxlcyBvbiB0aGUgaW1wbCBzaWRlLgogICAgIEVYUEVDVF9UUlVFKGxh
eWVySW1wbC0+aGFzVGlsZUF0KDAsIDApKTsKICAgICBFWFBFQ1RfVFJVRShsYXllckltcGwtPmhh
c1RpbGVBdCgwLCAxKSk7CkBAIC0zMjIsNiArMzI2LDEwIEBAIFRFU1QoVGlsZWRMYXllckNocm9t
aXVtVGVzdCwgcHVzaE9jY2x1ZGVkRGlydHlUaWxlcykKICAgICBsYXllci0+dXBkYXRlQ29tcG9z
aXRvclJlc291cmNlcygwLCB1cGRhdGVyKTsKICAgICBsYXllci0+cHVzaFByb3BlcnRpZXNUbyhs
YXllckltcGwuZ2V0KCkpOwogCisgICAgRVhQRUNUX05FQVIob2NjbHVkZWQub3ZlcmRyYXdNZXRy
aWNzKCkucGl4ZWxzRHJhd25PcGFxdWUoKSwgMCwgMSk7CisgICAgRVhQRUNUX05FQVIob2NjbHVk
ZWQub3ZlcmRyYXdNZXRyaWNzKCkucGl4ZWxzRHJhd25UcmFuc2x1Y2VudCgpLCAyMDAwMCArIDI1
MDAsIDEpOworICAgIEVYUEVDVF9ORUFSKG9jY2x1ZGVkLm92ZXJkcmF3TWV0cmljcygpLnBpeGVs
c0N1bGxlZCgpLCAwLCAxKTsKKwogICAgIC8vIFdlIHNob3VsZCBzdGlsbCBoYXZlIGJvdGggdGls
ZXMsIGFzIHBhcnQgb2YgdGhlIHRvcCB0aWxlIGlzIHN0aWxsIHVub2NjbHVkZWQuCiAgICAgRVhQ
RUNUX1RSVUUobGF5ZXJJbXBsLT5oYXNUaWxlQXQoMCwgMCkpOwogICAgIEVYUEVDVF9UUlVFKGxh
eWVySW1wbC0+aGFzVGlsZUF0KDAsIDEpKTsKQEAgLTgyNCw2ICs4MzIsMTAgQEAgVEVTVChUaWxl
ZExheWVyQ2hyb21pdW1UZXN0LCB0aWxlc1BhaW50ZWRXaXRoT2NjbHVzaW9uKQogICAgIGxheWVy
LT5wcmVwYXJlVG9VcGRhdGUoSW50UmVjdCgwLCAwLCA2MDAsIDYwMCksICZvY2NsdWRlZCk7CiAg
ICAgRVhQRUNUX0VRKDM2LTMsIGxheWVyLT5mYWtlTGF5ZXJUZXh0dXJlVXBkYXRlcigpLT5wcmVw
YXJlUmVjdENvdW50KCkpOwogCisgICAgRVhQRUNUX05FQVIob2NjbHVkZWQub3ZlcmRyYXdNZXRy
aWNzKCkucGl4ZWxzRHJhd25PcGFxdWUoKSwgMCwgMSk7CisgICAgRVhQRUNUX05FQVIob2NjbHVk
ZWQub3ZlcmRyYXdNZXRyaWNzKCkucGl4ZWxzRHJhd25UcmFuc2x1Y2VudCgpLCAzMzAwMDAsIDEp
OworICAgIEVYUEVDVF9ORUFSKG9jY2x1ZGVkLm92ZXJkcmF3TWV0cmljcygpLnBpeGVsc0N1bGxl
ZCgpLCAzMDAwMCwgMSk7CisKICAgICBsYXllci0+ZmFrZUxheWVyVGV4dHVyZVVwZGF0ZXIoKS0+
Y2xlYXJQcmVwYXJlUmVjdENvdW50KCk7CiAKICAgICBvY2NsdWRlZC5zZXRPY2NsdXNpb24oSW50
UmVjdCgyNTAsIDIwMCwgMzAwLCAxMDApKTsKQEAgLTgzMSwxMiArODQzLDIwIEBAIFRFU1QoVGls
ZWRMYXllckNocm9taXVtVGVzdCwgdGlsZXNQYWludGVkV2l0aE9jY2x1c2lvbikKICAgICBsYXll
ci0+cHJlcGFyZVRvVXBkYXRlKEludFJlY3QoMCwgMCwgNjAwLCA2MDApLCAmb2NjbHVkZWQpOwog
ICAgIEVYUEVDVF9FUSgzNi0yLCBsYXllci0+ZmFrZUxheWVyVGV4dHVyZVVwZGF0ZXIoKS0+cHJl
cGFyZVJlY3RDb3VudCgpKTsKIAorICAgIEVYUEVDVF9ORUFSKG9jY2x1ZGVkLm92ZXJkcmF3TWV0
cmljcygpLnBpeGVsc0RyYXduT3BhcXVlKCksIDAsIDEpOworICAgIEVYUEVDVF9ORUFSKG9jY2x1
ZGVkLm92ZXJkcmF3TWV0cmljcygpLnBpeGVsc0RyYXduVHJhbnNsdWNlbnQoKSwgMzMwMDAwICsg
MzQwMDAwLCAxKTsKKyAgICBFWFBFQ1RfTkVBUihvY2NsdWRlZC5vdmVyZHJhd01ldHJpY3MoKS5w
aXhlbHNDdWxsZWQoKSwgMzAwMDAgKyAyMDAwMCwgMSk7CisKICAgICBsYXllci0+ZmFrZUxheWVy
VGV4dHVyZVVwZGF0ZXIoKS0+Y2xlYXJQcmVwYXJlUmVjdENvdW50KCk7CiAKICAgICBvY2NsdWRl
ZC5zZXRPY2NsdXNpb24oSW50UmVjdCgyNTAsIDI1MCwgMzAwLCAxMDApKTsKICAgICBsYXllci0+
aW52YWxpZGF0ZVJlY3QoSW50UmVjdCgwLCAwLCA2MDAsIDYwMCkpOwogICAgIGxheWVyLT5wcmVw
YXJlVG9VcGRhdGUoSW50UmVjdCgwLCAwLCA2MDAsIDYwMCksICZvY2NsdWRlZCk7CiAgICAgRVhQ
RUNUX0VRKDM2LCBsYXllci0+ZmFrZUxheWVyVGV4dHVyZVVwZGF0ZXIoKS0+cHJlcGFyZVJlY3RD
b3VudCgpKTsKKworICAgIEVYUEVDVF9ORUFSKG9jY2x1ZGVkLm92ZXJkcmF3TWV0cmljcygpLnBp
eGVsc0RyYXduT3BhcXVlKCksIDAsIDEpOworICAgIEVYUEVDVF9ORUFSKG9jY2x1ZGVkLm92ZXJk
cmF3TWV0cmljcygpLnBpeGVsc0RyYXduVHJhbnNsdWNlbnQoKSwgMzMwMDAwICsgMzQwMDAwICsg
MzYwMDAwLCAxKTsKKyAgICBFWFBFQ1RfTkVBUihvY2NsdWRlZC5vdmVyZHJhd01ldHJpY3MoKS5w
aXhlbHNDdWxsZWQoKSwgMzAwMDAgKyAyMDAwMCwgMSk7CiB9CiAKIFRFU1QoVGlsZWRMYXllckNo
cm9taXVtVGVzdCwgdGlsZXNQYWludGVkV2l0aE9jY2x1c2lvbkFuZFZpc2libGl0eUNvbnN0cmFp
bnRzKQpAQCAtODU3LDYgKzg3NywxMCBAQCBURVNUKFRpbGVkTGF5ZXJDaHJvbWl1bVRlc3QsIHRp
bGVzUGFpbnRlZFdpdGhPY2NsdXNpb25BbmRWaXNpYmxpdHlDb25zdHJhaW50cykKICAgICBsYXll
ci0+cHJlcGFyZVRvVXBkYXRlKEludFJlY3QoMCwgMCwgNjAwLCA2MDApLCAmb2NjbHVkZWQpOwog
ICAgIEVYUEVDVF9FUSgyNC0zLCBsYXllci0+ZmFrZUxheWVyVGV4dHVyZVVwZGF0ZXIoKS0+cHJl
cGFyZVJlY3RDb3VudCgpKTsKIAorICAgIEVYUEVDVF9ORUFSKG9jY2x1ZGVkLm92ZXJkcmF3TWV0
cmljcygpLnBpeGVsc0RyYXduT3BhcXVlKCksIDAsIDEpOworICAgIEVYUEVDVF9ORUFSKG9jY2x1
ZGVkLm92ZXJkcmF3TWV0cmljcygpLnBpeGVsc0RyYXduVHJhbnNsdWNlbnQoKSwgMjEwMDAwLCAx
KTsKKyAgICBFWFBFQ1RfTkVBUihvY2NsdWRlZC5vdmVyZHJhd01ldHJpY3MoKS5waXhlbHNDdWxs
ZWQoKSwgMzAwMDAsIDEpOworCiAgICAgbGF5ZXItPmZha2VMYXllclRleHR1cmVVcGRhdGVyKCkt
PmNsZWFyUHJlcGFyZVJlY3RDb3VudCgpOwogCiAgICAgLy8gTm93IHRoZSB2aXNpYmxlIHJlZ2lv
biBzdG9wcyBhdCB0aGUgZWRnZSBvZiB0aGUgb2NjbHVzaW9uIHNvIHRoZSBwYXJ0bHkgdmlzaWJs
ZSB0aWxlcyBiZWNvbWUgZnVsbHkgb2NjbHVkZWQuCkBAIC04NjYsNiArODkwLDEwIEBAIFRFU1Qo
VGlsZWRMYXllckNocm9taXVtVGVzdCwgdGlsZXNQYWludGVkV2l0aE9jY2x1c2lvbkFuZFZpc2li
bGl0eUNvbnN0cmFpbnRzKQogICAgIGxheWVyLT5wcmVwYXJlVG9VcGRhdGUoSW50UmVjdCgwLCAw
LCA2MDAsIDYwMCksICZvY2NsdWRlZCk7CiAgICAgRVhQRUNUX0VRKDI0LTYsIGxheWVyLT5mYWtl
TGF5ZXJUZXh0dXJlVXBkYXRlcigpLT5wcmVwYXJlUmVjdENvdW50KCkpOwogCisgICAgRVhQRUNU
X05FQVIob2NjbHVkZWQub3ZlcmRyYXdNZXRyaWNzKCkucGl4ZWxzRHJhd25PcGFxdWUoKSwgMCwg
MSk7CisgICAgRVhQRUNUX05FQVIob2NjbHVkZWQub3ZlcmRyYXdNZXRyaWNzKCkucGl4ZWxzRHJh
d25UcmFuc2x1Y2VudCgpLCAyMTAwMDAgKyAxODAwMDAsIDEpOworICAgIEVYUEVDVF9ORUFSKG9j
Y2x1ZGVkLm92ZXJkcmF3TWV0cmljcygpLnBpeGVsc0N1bGxlZCgpLCAzMDAwMCArIDYwMDAwLCAx
KTsKKwogICAgIGxheWVyLT5mYWtlTGF5ZXJUZXh0dXJlVXBkYXRlcigpLT5jbGVhclByZXBhcmVS
ZWN0Q291bnQoKTsKIAogICAgIC8vIE5vdyB0aGUgdmlzaWJsZSByZWdpb24gaXMgZXZlbiBzbWFs
bGVyIHRoYW4gdGhlIG9jY2x1c2lvbiwgaXQgc2hvdWxkIGhhdmUgdGhlIHNhbWUgcmVzdWx0LgpA
QCAtODc0LDYgKzkwMiwxMSBAQCBURVNUKFRpbGVkTGF5ZXJDaHJvbWl1bVRlc3QsIHRpbGVzUGFp
bnRlZFdpdGhPY2NsdXNpb25BbmRWaXNpYmxpdHlDb25zdHJhaW50cykKICAgICBsYXllci0+aW52
YWxpZGF0ZVJlY3QoSW50UmVjdCgwLCAwLCA2MDAsIDYwMCkpOwogICAgIGxheWVyLT5wcmVwYXJl
VG9VcGRhdGUoSW50UmVjdCgwLCAwLCA2MDAsIDYwMCksICZvY2NsdWRlZCk7CiAgICAgRVhQRUNU
X0VRKDI0LTYsIGxheWVyLT5mYWtlTGF5ZXJUZXh0dXJlVXBkYXRlcigpLT5wcmVwYXJlUmVjdENv
dW50KCkpOworCisgICAgRVhQRUNUX05FQVIob2NjbHVkZWQub3ZlcmRyYXdNZXRyaWNzKCkucGl4
ZWxzRHJhd25PcGFxdWUoKSwgMCwgMSk7CisgICAgRVhQRUNUX05FQVIob2NjbHVkZWQub3ZlcmRy
YXdNZXRyaWNzKCkucGl4ZWxzRHJhd25UcmFuc2x1Y2VudCgpLCAyMTAwMDAgKyAxODAwMDAgKyAx
ODAwMDAsIDEpOworICAgIEVYUEVDVF9ORUFSKG9jY2x1ZGVkLm92ZXJkcmF3TWV0cmljcygpLnBp
eGVsc0N1bGxlZCgpLCAzMDAwMCArIDYwMDAwICsgNjAwMDAsIDEpOworCiB9CiAKIFRFU1QoVGls
ZWRMYXllckNocm9taXVtVGVzdCwgdGlsZXNOb3RQYWludGVkV2l0aG91dEludmFsaWRhdGlvbikK
QEAgLTg5MywxMSArOTI2LDE5IEBAIFRFU1QoVGlsZWRMYXllckNocm9taXVtVGVzdCwgdGlsZXNO
b3RQYWludGVkV2l0aG91dEludmFsaWRhdGlvbikKICAgICBsYXllci0+cHJlcGFyZVRvVXBkYXRl
KEludFJlY3QoMCwgMCwgNjAwLCA2MDApLCAmb2NjbHVkZWQpOwogICAgIEVYUEVDVF9FUSgzNi0z
LCBsYXllci0+ZmFrZUxheWVyVGV4dHVyZVVwZGF0ZXIoKS0+cHJlcGFyZVJlY3RDb3VudCgpKTsK
IAorICAgIEVYUEVDVF9ORUFSKG9jY2x1ZGVkLm92ZXJkcmF3TWV0cmljcygpLnBpeGVsc0RyYXdu
T3BhcXVlKCksIDAsIDEpOworICAgIEVYUEVDVF9ORUFSKG9jY2x1ZGVkLm92ZXJkcmF3TWV0cmlj
cygpLnBpeGVsc0RyYXduVHJhbnNsdWNlbnQoKSwgMzMwMDAwLCAxKTsKKyAgICBFWFBFQ1RfTkVB
UihvY2NsdWRlZC5vdmVyZHJhd01ldHJpY3MoKS5waXhlbHNDdWxsZWQoKSwgMzAwMDAsIDEpOwor
CiAgICAgbGF5ZXItPmZha2VMYXllclRleHR1cmVVcGRhdGVyKCktPmNsZWFyUHJlcGFyZVJlY3RD
b3VudCgpOwogCiAgICAgLy8gUmVwYWludCB3aXRob3V0IG1hcmtpbmcgaXQgZGlydHkuCiAgICAg
bGF5ZXItPnByZXBhcmVUb1VwZGF0ZShJbnRSZWN0KDAsIDAsIDYwMCwgNjAwKSwgJm9jY2x1ZGVk
KTsKICAgICBFWFBFQ1RfRVEoMCwgbGF5ZXItPmZha2VMYXllclRleHR1cmVVcGRhdGVyKCktPnBy
ZXBhcmVSZWN0Q291bnQoKSk7CisKKyAgICBFWFBFQ1RfTkVBUihvY2NsdWRlZC5vdmVyZHJhd01l
dHJpY3MoKS5waXhlbHNEcmF3bk9wYXF1ZSgpLCAwLCAxKTsKKyAgICBFWFBFQ1RfTkVBUihvY2Ns
dWRlZC5vdmVyZHJhd01ldHJpY3MoKS5waXhlbHNEcmF3blRyYW5zbHVjZW50KCksIDMzMDAwMCwg
MSk7CisgICAgRVhQRUNUX05FQVIob2NjbHVkZWQub3ZlcmRyYXdNZXRyaWNzKCkucGl4ZWxzQ3Vs
bGVkKCksIDMwMDAwLCAxKTsKIH0KIAogVEVTVChUaWxlZExheWVyQ2hyb21pdW1UZXN0LCB0aWxl
c1BhaW50ZWRXaXRoT2NjbHVzaW9uQW5kVHJhbnNmb3JtcykKQEAgLTkyMSw2ICs5NjIsMTAgQEAg
VEVTVChUaWxlZExheWVyQ2hyb21pdW1UZXN0LCB0aWxlc1BhaW50ZWRXaXRoT2NjbHVzaW9uQW5k
VHJhbnNmb3JtcykKICAgICBsYXllci0+aW52YWxpZGF0ZVJlY3QoSW50UmVjdCgwLCAwLCA2MDAs
IDYwMCkpOwogICAgIGxheWVyLT5wcmVwYXJlVG9VcGRhdGUoSW50UmVjdCgwLCAwLCA2MDAsIDYw
MCksICZvY2NsdWRlZCk7CiAgICAgRVhQRUNUX0VRKDM2LTMsIGxheWVyLT5mYWtlTGF5ZXJUZXh0
dXJlVXBkYXRlcigpLT5wcmVwYXJlUmVjdENvdW50KCkpOworCisgICAgRVhQRUNUX05FQVIob2Nj
bHVkZWQub3ZlcmRyYXdNZXRyaWNzKCkucGl4ZWxzRHJhd25PcGFxdWUoKSwgMCwgMSk7CisgICAg
RVhQRUNUX05FQVIob2NjbHVkZWQub3ZlcmRyYXdNZXRyaWNzKCkucGl4ZWxzRHJhd25UcmFuc2x1
Y2VudCgpLCAzMzAwMDAsIDEpOworICAgIEVYUEVDVF9ORUFSKG9jY2x1ZGVkLm92ZXJkcmF3TWV0
cmljcygpLnBpeGVsc0N1bGxlZCgpLCAzMDAwMCwgMSk7CiB9CiAKIFRFU1QoVGlsZWRMYXllckNo
cm9taXVtVGVzdCwgdGlsZXNQYWludGVkV2l0aE9jY2x1c2lvbkFuZFNjYWxpbmcpCkBAIC05NDcs
NiArOTkyLDEwIEBAIFRFU1QoVGlsZWRMYXllckNocm9taXVtVGVzdCwgdGlsZXNQYWludGVkV2l0
aE9jY2x1c2lvbkFuZFNjYWxpbmcpCiAgICAgLy8gbnVtYmVyIG9mIHRpbGVzIDN4My4KICAgICBF
WFBFQ1RfRVEoOSwgbGF5ZXItPmZha2VMYXllclRleHR1cmVVcGRhdGVyKCktPnByZXBhcmVSZWN0
Q291bnQoKSk7CiAKKyAgICBFWFBFQ1RfTkVBUihvY2NsdWRlZC5vdmVyZHJhd01ldHJpY3MoKS5w
aXhlbHNEcmF3bk9wYXF1ZSgpLCAwLCAxKTsKKyAgICBFWFBFQ1RfTkVBUihvY2NsdWRlZC5vdmVy
ZHJhd01ldHJpY3MoKS5waXhlbHNEcmF3blRyYW5zbHVjZW50KCksIDkwMDAwLCAxKTsKKyAgICBF
WFBFQ1RfTkVBUihvY2NsdWRlZC5vdmVyZHJhd01ldHJpY3MoKS5waXhlbHNDdWxsZWQoKSwgMCwg
MSk7CisKICAgICBsYXllci0+ZmFrZUxheWVyVGV4dHVyZVVwZGF0ZXIoKS0+Y2xlYXJQcmVwYXJl
UmVjdENvdW50KCk7CiAKICAgICAvLyBUaGlzIG1ha2VzIHN1cmUgdGhlIHBhaW50aW5nIHdvcmtz
IHdoZW4gdGhlIGNvbnRlbnQgc3BhY2UgaXMgc2NhbGVkIHRvCkBAIC05NTgsNiArMTAwNywxMCBA
QCBURVNUKFRpbGVkTGF5ZXJDaHJvbWl1bVRlc3QsIHRpbGVzUGFpbnRlZFdpdGhPY2NsdXNpb25B
bmRTY2FsaW5nKQogICAgIGxheWVyLT5wcmVwYXJlVG9VcGRhdGUoSW50UmVjdCgwLCAwLCA2MDAs
IDYwMCksICZvY2NsdWRlZCk7CiAgICAgRVhQRUNUX0VRKDktMSwgbGF5ZXItPmZha2VMYXllclRl
eHR1cmVVcGRhdGVyKCktPnByZXBhcmVSZWN0Q291bnQoKSk7CiAKKyAgICBFWFBFQ1RfTkVBUihv
Y2NsdWRlZC5vdmVyZHJhd01ldHJpY3MoKS5waXhlbHNEcmF3bk9wYXF1ZSgpLCAwLCAxKTsKKyAg
ICBFWFBFQ1RfTkVBUihvY2NsdWRlZC5vdmVyZHJhd01ldHJpY3MoKS5waXhlbHNEcmF3blRyYW5z
bHVjZW50KCksIDkwMDAwICsgODAwMDAsIDEpOworICAgIEVYUEVDVF9ORUFSKG9jY2x1ZGVkLm92
ZXJkcmF3TWV0cmljcygpLnBpeGVsc0N1bGxlZCgpLCAxMDAwMCwgMSk7CisKICAgICBsYXllci0+
ZmFrZUxheWVyVGV4dHVyZVVwZGF0ZXIoKS0+Y2xlYXJQcmVwYXJlUmVjdENvdW50KCk7CiAKICAg
ICAvLyBUaGlzIG1ha2VzIHN1cmUgY29udGVudCBzY2FsaW5nIGFuZCB0cmFuc2Zvcm1zIHdvcmsg
dG9nZXRoZXIuCkBAIC05NzEsMTIgKzEwMjQsMTcgQEAgVEVTVChUaWxlZExheWVyQ2hyb21pdW1U
ZXN0LCB0aWxlc1BhaW50ZWRXaXRoT2NjbHVzaW9uQW5kU2NhbGluZykKICAgICBsYXllci0+aW52
YWxpZGF0ZVJlY3QoSW50UmVjdCgwLCAwLCA2MDAsIDYwMCkpOwogICAgIGxheWVyLT5wcmVwYXJl
VG9VcGRhdGUoSW50UmVjdCgwLCAwLCA2MDAsIDYwMCksICZvY2NsdWRlZCk7CiAgICAgRVhQRUNU
X0VRKDktMSwgbGF5ZXItPmZha2VMYXllclRleHR1cmVVcGRhdGVyKCktPnByZXBhcmVSZWN0Q291
bnQoKSk7CisKKyAgICBFWFBFQ1RfTkVBUihvY2NsdWRlZC5vdmVyZHJhd01ldHJpY3MoKS5waXhl
bHNEcmF3bk9wYXF1ZSgpLCAwLCAxKTsKKyAgICBFWFBFQ1RfTkVBUihvY2NsdWRlZC5vdmVyZHJh
d01ldHJpY3MoKS5waXhlbHNEcmF3blRyYW5zbHVjZW50KCksIDkwMDAwICsgODAwMDAgKyA4MDAw
MCwgMSk7CisgICAgRVhQRUNUX05FQVIob2NjbHVkZWQub3ZlcmRyYXdNZXRyaWNzKCkucGl4ZWxz
Q3VsbGVkKCksIDEwMDAwICsgMTAwMDAsIDEpOwogfQogCiBURVNUKFRpbGVkTGF5ZXJDaHJvbWl1
bVRlc3QsIG9wYXF1ZUNvbnRlbnRzUmVnaW9uKQogewogICAgIE93blB0cjxUZXh0dXJlTWFuYWdl
cj4gdGV4dHVyZU1hbmFnZXIgPSBUZXh0dXJlTWFuYWdlcjo6Y3JlYXRlKDQqMTAyNCoxMDI0LCAy
KjEwMjQqMTAyNCwgMTAyNCk7CiAgICAgUmVmUHRyPEZha2VUaWxlZExheWVyQ2hyb21pdW0+IGxh
eWVyID0gYWRvcHRSZWYobmV3IEZha2VUaWxlZExheWVyQ2hyb21pdW0odGV4dHVyZU1hbmFnZXIu
Z2V0KCkpKTsKKyAgICBUZXN0Q0NPY2NsdXNpb25UcmFja2VyIG9jY2x1ZGVkOwogCiAgICAgLy8g
VGhlIHRpbGUgc2l6ZSBpcyAxMDB4MTAwLCBzbyB0aGlzIGludmFsaWRhdGVzIGFuZCB0aGVuIHBh
aW50cyB0d28gdGlsZXMgaW4gdmFyaW91cyB3YXlzLgogCkBAIC05ODcsNDkgKzEwNDUsNzAgQEAg
VEVTVChUaWxlZExheWVyQ2hyb21pdW1UZXN0LCBvcGFxdWVDb250ZW50c1JlZ2lvbikKICAgICBJ
bnRSZWN0IHZpc2libGVCb3VuZHMgPSBJbnRSZWN0KDAsIDAsIDEwMCwgMTUwKTsKIAogICAgIGxh
eWVyLT5zZXRCb3VuZHMoY29udGVudEJvdW5kcy5zaXplKCkpOworICAgIGxheWVyLT5zZXREcmF3
VHJhbnNmb3JtKFRyYW5zZm9ybWF0aW9uTWF0cml4KDEsIDAsIDAsIDEsIGxheWVyLT5ib3VuZHMo
KS53aWR0aCgpIC8gMi4wLCBsYXllci0+Ym91bmRzKCkuaGVpZ2h0KCkgLyAyLjApKTsKICAgICBs
YXllci0+c2V0VmlzaWJsZUxheWVyUmVjdCh2aXNpYmxlQm91bmRzKTsKICAgICBsYXllci0+c2V0
RHJhd09wYWNpdHkoMSk7CiAKICAgICAvLyBJZiB0aGUgbGF5ZXIgZG9lc24ndCBwYWludCBvcGFx
dWUgY29udGVudCwgdGhlbiB0aGUgb3BhcXVlQ29udGVudHNSZWdpb24gc2hvdWxkIGJlIGVtcHR5
LgotICAgIGxheWVyLT5mYWtlTGF5ZXJUZXh0dXJlVXBkYXRlcigpLT5zZXRPcGFxdWVQYWludFJl
Y3Qob3BhcXVlUGFpbnRSZWN0KTsKKyAgICBsYXllci0+ZmFrZUxheWVyVGV4dHVyZVVwZGF0ZXIo
KS0+c2V0T3BhcXVlUGFpbnRSZWN0KEludFJlY3QoKSk7CiAgICAgbGF5ZXItPmludmFsaWRhdGVS
ZWN0KGNvbnRlbnRCb3VuZHMpOwotICAgIGxheWVyLT5wcmVwYXJlVG9VcGRhdGUoY29udGVudEJv
dW5kcywgMCk7CisgICAgbGF5ZXItPnByZXBhcmVUb1VwZGF0ZShjb250ZW50Qm91bmRzLCAmb2Nj
bHVkZWQpOwogICAgIG9wYXF1ZUNvbnRlbnRzID0gbGF5ZXItPm9wYXF1ZUNvbnRlbnRzUmVnaW9u
KCk7CiAgICAgRVhQRUNUX1RSVUUob3BhcXVlQ29udGVudHMuaXNFbXB0eSgpKTsKIAorICAgIEVY
UEVDVF9ORUFSKG9jY2x1ZGVkLm92ZXJkcmF3TWV0cmljcygpLnBpeGVsc0RyYXduT3BhcXVlKCks
IDAsIDEpOworICAgIEVYUEVDVF9ORUFSKG9jY2x1ZGVkLm92ZXJkcmF3TWV0cmljcygpLnBpeGVs
c0RyYXduVHJhbnNsdWNlbnQoKSwgMjAwMDAsIDEpOworICAgIEVYUEVDVF9ORUFSKG9jY2x1ZGVk
Lm92ZXJkcmF3TWV0cmljcygpLnBpeGVsc0N1bGxlZCgpLCAwLCAxKTsKKwogICAgIC8vIG9wYXF1
ZUNvbnRlbnRzUmVnaW9uIHNob3VsZCBtYXRjaCB0aGUgdmlzaWJsZSBwYXJ0IG9mIHdoYXQgaXMg
cGFpbnRlZCBvcGFxdWUuCiAgICAgb3BhcXVlUGFpbnRSZWN0ID0gSW50UmVjdCgxMCwgMTAsIDkw
LCAxOTApOwogICAgIGxheWVyLT5mYWtlTGF5ZXJUZXh0dXJlVXBkYXRlcigpLT5zZXRPcGFxdWVQ
YWludFJlY3Qob3BhcXVlUGFpbnRSZWN0KTsKICAgICBsYXllci0+aW52YWxpZGF0ZVJlY3QoY29u
dGVudEJvdW5kcyk7Ci0gICAgbGF5ZXItPnByZXBhcmVUb1VwZGF0ZShjb250ZW50Qm91bmRzLCAw
KTsKKyAgICBsYXllci0+cHJlcGFyZVRvVXBkYXRlKGNvbnRlbnRCb3VuZHMsICZvY2NsdWRlZCk7
CiAgICAgb3BhcXVlQ29udGVudHMgPSBsYXllci0+b3BhcXVlQ29udGVudHNSZWdpb24oKTsKICAg
ICBFWFBFQ1RfRVFfUkVDVChpbnRlcnNlY3Rpb24ob3BhcXVlUGFpbnRSZWN0LCB2aXNpYmxlQm91
bmRzKSwgb3BhcXVlQ29udGVudHMuYm91bmRzKCkpOwogICAgIEVYUEVDVF9FUSgxdSwgb3BhcXVl
Q29udGVudHMucmVjdHMoKS5zaXplKCkpOwogCisgICAgRVhQRUNUX05FQVIob2NjbHVkZWQub3Zl
cmRyYXdNZXRyaWNzKCkucGl4ZWxzRHJhd25PcGFxdWUoKSwgMTcxMDAsIDEpOworICAgIEVYUEVD
VF9ORUFSKG9jY2x1ZGVkLm92ZXJkcmF3TWV0cmljcygpLnBpeGVsc0RyYXduVHJhbnNsdWNlbnQo
KSwgMjAwMDAgKyAyMDAwMCAtIDE3MTAwLCAxKTsKKyAgICBFWFBFQ1RfTkVBUihvY2NsdWRlZC5v
dmVyZHJhd01ldHJpY3MoKS5waXhlbHNDdWxsZWQoKSwgMCwgMSk7CisKICAgICAvLyBJZiB3ZSBw
YWludCBhZ2FpbiB3aXRob3V0IGludmFsaWRhdGluZywgdGhlIHNhbWUgc3R1ZmYgc2hvdWxkIGJl
IG9wYXF1ZS4KICAgICBsYXllci0+ZmFrZUxheWVyVGV4dHVyZVVwZGF0ZXIoKS0+c2V0T3BhcXVl
UGFpbnRSZWN0KEludFJlY3QoKSk7Ci0gICAgbGF5ZXItPnByZXBhcmVUb1VwZGF0ZShjb250ZW50
Qm91bmRzLCAwKTsKKyAgICBsYXllci0+cHJlcGFyZVRvVXBkYXRlKGNvbnRlbnRCb3VuZHMsICZv
Y2NsdWRlZCk7CiAgICAgb3BhcXVlQ29udGVudHMgPSBsYXllci0+b3BhcXVlQ29udGVudHNSZWdp
b24oKTsKICAgICBFWFBFQ1RfRVFfUkVDVChpbnRlcnNlY3Rpb24ob3BhcXVlUGFpbnRSZWN0LCB2
aXNpYmxlQm91bmRzKSwgb3BhcXVlQ29udGVudHMuYm91bmRzKCkpOwogICAgIEVYUEVDVF9FUSgx
dSwgb3BhcXVlQ29udGVudHMucmVjdHMoKS5zaXplKCkpOwogCisgICAgRVhQRUNUX05FQVIob2Nj
bHVkZWQub3ZlcmRyYXdNZXRyaWNzKCkucGl4ZWxzRHJhd25PcGFxdWUoKSwgMTcxMDAsIDEpOwor
ICAgIEVYUEVDVF9ORUFSKG9jY2x1ZGVkLm92ZXJkcmF3TWV0cmljcygpLnBpeGVsc0RyYXduVHJh
bnNsdWNlbnQoKSwgMjAwMDAgKyAyMDAwMCAtIDE3MTAwLCAxKTsKKyAgICBFWFBFQ1RfTkVBUihv
Y2NsdWRlZC5vdmVyZHJhd01ldHJpY3MoKS5waXhlbHNDdWxsZWQoKSwgMCwgMSk7CisKICAgICAv
LyBJZiB3ZSByZXBhaW50IGEgbm9uLW9wYXF1ZSBwYXJ0IG9mIHRoZSB0aWxlLCB0aGVuIGl0IHNo
b3VsZG4ndCBsb3NlIGl0cyBvcGFxdWUtbmVzcy4gQW5kIG90aGVyIHRpbGVzIHNob3VsZAogICAg
IC8vIG5vdCBiZSBhZmZlY3RlZC4KICAgICBsYXllci0+ZmFrZUxheWVyVGV4dHVyZVVwZGF0ZXIo
KS0+c2V0T3BhcXVlUGFpbnRSZWN0KEludFJlY3QoKSk7CiAgICAgbGF5ZXItPmludmFsaWRhdGVS
ZWN0KEludFJlY3QoMCwgMCwgMSwgMSkpOwotICAgIGxheWVyLT5wcmVwYXJlVG9VcGRhdGUoY29u
dGVudEJvdW5kcywgMCk7CisgICAgbGF5ZXItPnByZXBhcmVUb1VwZGF0ZShjb250ZW50Qm91bmRz
LCAmb2NjbHVkZWQpOwogICAgIG9wYXF1ZUNvbnRlbnRzID0gbGF5ZXItPm9wYXF1ZUNvbnRlbnRz
UmVnaW9uKCk7CiAgICAgRVhQRUNUX0VRX1JFQ1QoaW50ZXJzZWN0aW9uKG9wYXF1ZVBhaW50UmVj
dCwgdmlzaWJsZUJvdW5kcyksIG9wYXF1ZUNvbnRlbnRzLmJvdW5kcygpKTsKICAgICBFWFBFQ1Rf
RVEoMXUsIG9wYXF1ZUNvbnRlbnRzLnJlY3RzKCkuc2l6ZSgpKTsKIAorICAgIEVYUEVDVF9ORUFS
KG9jY2x1ZGVkLm92ZXJkcmF3TWV0cmljcygpLnBpeGVsc0RyYXduT3BhcXVlKCksIDE3MTAwLCAx
KTsKKyAgICBFWFBFQ1RfTkVBUihvY2NsdWRlZC5vdmVyZHJhd01ldHJpY3MoKS5waXhlbHNEcmF3
blRyYW5zbHVjZW50KCksIDIwMDAwICsgMjAwMDAgLSAxNzEwMCArIDEsIDEpOworICAgIEVYUEVD
VF9ORUFSKG9jY2x1ZGVkLm92ZXJkcmF3TWV0cmljcygpLnBpeGVsc0N1bGxlZCgpLCAwLCAxKTsK
KwogICAgIC8vIElmIHdlIHJlcGFpbnQgYW4gb3BhcXVlIHBhcnQgb2YgdGhlIHRpbGUsIHRoZW4g
aXQgc2hvdWxkIGxvc2UgaXRzIG9wYXF1ZS1uZXNzLiBCdXQgb3RoZXIgdGlsZXMgc2hvdWxkIHN0
aWxsCiAgICAgLy8gbm90IGJlIGFmZmVjdGVkLgogICAgIGxheWVyLT5mYWtlTGF5ZXJUZXh0dXJl
VXBkYXRlcigpLT5zZXRPcGFxdWVQYWludFJlY3QoSW50UmVjdCgpKTsKICAgICBsYXllci0+aW52
YWxpZGF0ZVJlY3QoSW50UmVjdCgxMCwgMTAsIDEsIDEpKTsKLSAgICBsYXllci0+cHJlcGFyZVRv
VXBkYXRlKGNvbnRlbnRCb3VuZHMsIDApOworICAgIGxheWVyLT5wcmVwYXJlVG9VcGRhdGUoY29u
dGVudEJvdW5kcywgJm9jY2x1ZGVkKTsKICAgICBvcGFxdWVDb250ZW50cyA9IGxheWVyLT5vcGFx
dWVDb250ZW50c1JlZ2lvbigpOwogICAgIEVYUEVDVF9FUV9SRUNUKGludGVyc2VjdGlvbihJbnRS
ZWN0KDEwLCAxMDAsIDkwLCAxMDApLCB2aXNpYmxlQm91bmRzKSwgb3BhcXVlQ29udGVudHMuYm91
bmRzKCkpOwogICAgIEVYUEVDVF9FUSgxdSwgb3BhcXVlQ29udGVudHMucmVjdHMoKS5zaXplKCkp
OworCisgICAgRVhQRUNUX05FQVIob2NjbHVkZWQub3ZlcmRyYXdNZXRyaWNzKCkucGl4ZWxzRHJh
d25PcGFxdWUoKSwgMTcxMDAsIDEpOworICAgIEVYUEVDVF9ORUFSKG9jY2x1ZGVkLm92ZXJkcmF3
TWV0cmljcygpLnBpeGVsc0RyYXduVHJhbnNsdWNlbnQoKSwgMjAwMDAgKyAyMDAwMCAtIDE3MTAw
ICsgMSArIDEsIDEpOworICAgIEVYUEVDVF9ORUFSKG9jY2x1ZGVkLm92ZXJkcmF3TWV0cmljcygp
LnBpeGVsc0N1bGxlZCgpLCAwLCAxKTsKIH0KIAogfSAvLyBuYW1lc3BhY2UK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>132160</attachid>
            <date>2012-03-15 17:33:16 -0700</date>
            <delta_ts>2012-03-16 07:35:55 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-81175-20120315203315.patch</filename>
            <type>text/plain</type>
            <size>22110</size>
            <attacher name="Dana Jansens">danakj</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTEwODA2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZjJiZjlkNjYyYTA4ZjFl
MmJkZjUzNDgxODQ0NzRiMGI3YTQ4ZTYyNC4uZjEwMzliMmM0ZWFlODcxNWI0NGU3YzQ2ZDY5Y2Rj
ZTQzOGY3NmFjNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSw1ICsxLDI5IEBACiAyMDEyLTAzLTE1ICBEYW5h
IEphbnNlbnMgIDxkYW5ha2pAY2hyb21pdW0ub3JnPgogCisgICAgICAgIFtjaHJvbWl1bV0gQWRk
IG92ZXJkcmF3IG1ldHJpY3MgZm9yIHRleHR1cmUgdXBsb2FkcworICAgICAgICBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9ODExNzUKKworICAgICAgICBSZXZpZXdlZCBi
eSBBZHJpZW5uZSBXYWxrZXIuCisKKyAgICAgICAgUmVjb3JkIHRleHR1cmUgdXBsb2FkIG1ldHJp
Y3MgZHVyaW5nIHBhaW50LiBUbyBwcm9wZXJseSByZWNvcmQKKyAgICAgICAgdGhlIGFtb3VudCBv
ZiBwaXhlbHMgY3VsbGVkLCB3ZSBtdXN0IGNvbXB1dGUgdGhlIGFtb3VudCBvZiBwaXhlbHMgd2UK
KyAgICAgICAgd291bGQgaGF2ZSB1cGxvYWRlZCBmb3IgYSB0aWxlLiBUaGlzIHJlcXVpcmVzIGtu
b3dpbmcgdGhlIGRpcnR5IHJlY3Qgb2YKKyAgICAgICAgdGhlIHRpbGUsIGJ1dCB0aGUgZGlydHkg
cmVjdCBjYW4gYmUgY2hhbmdlZCBieSBXZWJLaXQgZHVyaW5nIGEgcGFpbnQsIHNvCisgICAgICAg
IHdlIGFsd2F5cyBzdG9yZSB0aGUgZGlydHlSZWN0IGluIHRoZSB0aWxlJ3MgdXBkYXRlUmVjdC4g
V2UgYWRkIGFuCisgICAgICAgIG1fdXBkYXRlQ3VsbGVkIGJvb2wgdG8gdGhlIFVwZGF0YWJsZVRp
bGUgc3RydWN0dXJlLCB0byBpZGVudGlmeSB0aWxlcworICAgICAgICB0aGF0IHdlcmUgbm90IHVw
ZGF0ZWQsIGFuZCBrbm93IGEgdGlsZSB3YXMgdXBkYXRlZCBpZiB1cGRhdGVSZWN0IGlzIG5vdAor
ICAgICAgICBlbXB0eSBhbmQgdXBkYXRlQ3VsbGVkIGlzIGZhbHNlLgorCisgICAgICAgIFRlc3Rl
ZCBieSBhbGwgVGlsZWRMYXllckNocm9taXVtVGVzdHMgdGhhdCB1c2Ugb2NjbHVzaW9uIHRyYWNr
ZXIuCisKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9UaWxlZExheWVyQ2hy
b21pdW0uY3BwOgorICAgICAgICAoVXBkYXRhYmxlVGlsZSk6CisgICAgICAgIChXZWJDb3JlOjpU
aWxlZExheWVyQ2hyb21pdW06OnByZXBhcmVUb1VwZGF0ZVRpbGVzKToKKyAgICAgICAgKiBwbGF0
Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9jYy9DQ0xheWVyVHJlZUhvc3QuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6Q0NMYXllclRyZWVIb3N0OjpwYWludExheWVyQ29udGVudHMpOgorCisyMDEyLTAz
LTE1ICBEYW5hIEphbnNlbnMgIDxkYW5ha2pAY2hyb21pdW0ub3JnPgorCiAgICAgICAgIFtjaHJv
bWl1bV0gQ2hhbmdlcyB0byBvdmVyZHJhdyBtZXRyaWNzIHRvIGFsbG93IHVwbG9hZCB0cmFja2lu
ZwogICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9ODEyMjIK
IApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cgYi9Tb3VyY2Uv
V2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZwppbmRleCBiYWEyNDNiZDAxNmEzZjg5MWQxNTA4ZThh
YzVlMTM1MWI0ZTdkZTVlLi5lOGRjZDEwZjBkZGQ3ODQ4ZTljZDcwNmI5NDViZTRiMjMyNGVlNjYy
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZworKysgYi9Tb3Vy
Y2UvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZwpAQCAtMSw1ICsxLDE1IEBACiAyMDEyLTAzLTE1
ICBEYW5hIEphbnNlbnMgIDxkYW5ha2pAY2hyb21pdW0ub3JnPgogCisgICAgICAgIFtjaHJvbWl1
bV0gQWRkIG92ZXJkcmF3IG1ldHJpY3MgZm9yIHRleHR1cmUgdXBsb2FkcworICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9ODExNzUKKworICAgICAgICBSZXZp
ZXdlZCBieSBBZHJpZW5uZSBXYWxrZXIuCisKKyAgICAgICAgKiB0ZXN0cy9UaWxlZExheWVyQ2hy
b21pdW1UZXN0LmNwcDoKKyAgICAgICAgKFdURjo6VEVTVCk6CisKKzIwMTItMDMtMTUgIERhbmEg
SmFuc2VucyAgPGRhbmFrakBjaHJvbWl1bS5vcmc+CisKICAgICAgICAgW2Nocm9taXVtXSBDaGFu
Z2VzIHRvIG92ZXJkcmF3IG1ldHJpY3MgdG8gYWxsb3cgdXBsb2FkIHRyYWNraW5nCiAgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD04MTIyMgogCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9UaWxlZExheWVy
Q2hyb21pdW0uY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0v
VGlsZWRMYXllckNocm9taXVtLmNwcAppbmRleCA4NTNkNjc1NGNhYTU5YjdiZTI4MTM5MzI4OWVk
N2QwMGNkMzQ5MjU2Li5mN2E0MDA4NjIxYmE0NmY2ZTg0YTJkNzk4ZTFhMjg3NDhlNDFjOTNlIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9UaWxl
ZExheWVyQ2hyb21pdW0uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L2Nocm9taXVtL1RpbGVkTGF5ZXJDaHJvbWl1bS5jcHAKQEAgLTYzLDE5ICs2MywxOCBAQCBwdWJs
aWM6CiAgICAgTWFuYWdlZFRleHR1cmUqIG1hbmFnZWRUZXh0dXJlKCkgeyByZXR1cm4gbV90ZXh0
dXJlLT50ZXh0dXJlKCk7IH0KIAogICAgIGJvb2wgaXNEaXJ0eSgpIGNvbnN0IHsgcmV0dXJuICFt
X2RpcnR5UmVjdC5pc0VtcHR5KCk7IH0KLSAgICB2b2lkIGNvcHlBbmRDbGVhckRpcnR5KCkKLSAg
ICB7Ci0gICAgICAgIG1fdXBkYXRlUmVjdCA9IG1fZGlydHlSZWN0OwotICAgICAgICBtX2RpcnR5
UmVjdCA9IEludFJlY3QoKTsKLSAgICB9Ci0gICAgYm9vbCBpc0RpcnR5Rm9yQ3VycmVudEZyYW1l
KCkgeyByZXR1cm4gIW1fZGlydHlSZWN0LmlzRW1wdHkoKSAmJiBtX3VwZGF0ZVJlY3QuaXNFbXB0
eSgpOyB9CisgICAgLy8gUmV0dXJucyB3aGV0aGVyIHRoZSBsYXllciB3YXMgZGlydHkgYW5kIG5v
dCB1cGRhdGVkIGluIHRoZSBjdXJyZW50IGZyYW1lLiBGb3IgdGlsZXMgdGhhdCB3ZXJlIG5vdCBj
dWxsZWQsIHRoZQorICAgIC8vIHVwZGF0ZVJlY3QgaG9sZHMgdGhlIGFyZWEgb2YgdGhlIHRpbGUg
dGhhdCB3YXMgdXBkYXRlZC4gT3RoZXJ3aXNlLCB0aGUgYXJlYSB0aGF0IHdvdWxkIGhhdmUgYmVl
biB1cGRhdGVkLgorICAgIGJvb2wgaXNEaXJ0eUZvckN1cnJlbnRGcmFtZSgpIHsgcmV0dXJuICFt
X2RpcnR5UmVjdC5pc0VtcHR5KCkgJiYgKG1fdXBkYXRlUmVjdC5pc0VtcHR5KCkgfHwgbV91cGRh
dGVDdWxsZWQpOyB9CiAKICAgICBJbnRSZWN0IG1fZGlydHlSZWN0OwogICAgIEludFJlY3QgbV91
cGRhdGVSZWN0OwogICAgIGJvb2wgbV9wYXJ0aWFsVXBkYXRlOworICAgIGJvb2wgbV91cGRhdGVD
dWxsZWQ7CiBwcml2YXRlOgogICAgIGV4cGxpY2l0IFVwZGF0YWJsZVRpbGUoUGFzc093blB0cjxM
YXllclRleHR1cmVVcGRhdGVyOjpUZXh0dXJlPiB0ZXh0dXJlKQogICAgICAgICA6IG1fcGFydGlh
bFVwZGF0ZShmYWxzZSkKKyAgICAgICAgLCBtX3VwZGF0ZUN1bGxlZChmYWxzZSkKICAgICAgICAg
LCBtX3RleHR1cmUodGV4dHVyZSkKICAgICB7CiAgICAgfQpAQCAtMTk2LDYgKzE5NSw5IEBAIHZv
aWQgVGlsZWRMYXllckNocm9taXVtOjp1cGRhdGVDb21wb3NpdG9yUmVzb3VyY2VzKEdyYXBoaWNz
Q29udGV4dDNEKiwgQ0NUZXh0dXJlCiAgICAgICAgICAgICBpZiAoIXRpbGUpCiAgICAgICAgICAg
ICAgICAgQ1JBU0goKTsKIAorICAgICAgICAgICAgaWYgKHRpbGUtPm1fdXBkYXRlQ3VsbGVkKQor
ICAgICAgICAgICAgICAgIGNvbnRpbnVlOworCiAgICAgICAgICAgICBJbnRSZWN0IHNvdXJjZVJl
Y3QgPSB0aWxlLT5tX3VwZGF0ZVJlY3Q7CiAgICAgICAgICAgICBpZiAodGlsZS0+bV91cGRhdGVS
ZWN0LmlzRW1wdHkoKSkKICAgICAgICAgICAgICAgICBjb250aW51ZTsKQEAgLTQxMiwxMyArNDE0
LDE3IEBAIHZvaWQgVGlsZWRMYXllckNocm9taXVtOjpwcmVwYXJlVG9VcGRhdGVUaWxlcyhib29s
IGlkbGUsIGludCBsZWZ0LCBpbnQgdG9wLCBpbnQKICAgICAgICAgICAgIGlmICghdGlsZSkKICAg
ICAgICAgICAgICAgICB0aWxlID0gY3JlYXRlVGlsZShpLCBqKTsKIAotICAgICAgICAgICAgLy8g
V2hlbiBub3QgaWRsZSBwYWludGluZywgaWYgdGhlIHZpc2libGUgcmVnaW9uIG9mIHRoZSB0aWxl
IGlzIG9jY2x1ZGVkLCBkb24ndCByZXNlcnZlIGEgdGV4dHVyZSBvciBtYXJrIGl0IGZvciB1cGRh
dGUuCi0gICAgICAgICAgICAvLyBJZiBhbnkgcGFydCBvZiB0aGUgdGlsZSBpcyB2aXNpYmxlLCB0
aGVuIHdlIG5lZWQgdG8gcGFpbnQgaXQgc28gdGhlIHRpbGUgaXMgcHVzaGVkIHRvIHRoZSBpbXBs
IHRocmVhZC4KLSAgICAgICAgICAgIC8vIFRoaXMgd2lsbCBhbHNvIGF2b2lkIHBhaW50aW5nIHRo
ZSB0aWxlIGluIHRoZSBuZXh0IGxvb3AsIGJlbG93LgorICAgICAgICAgICAgLy8gU2F2ZSB0aGUg
ZGlydHkgcmVjdCBzaW5jZSBXZWJLaXQgY2FuIGNoYW5nZSB0aGUgdGlsZSdzIGRpcnR5IHJlY3Qg
ZHVyaW5nIHBhaW50aW5nLgorICAgICAgICAgICAgdGlsZS0+bV91cGRhdGVSZWN0ID0gdGlsZS0+
bV9kaXJ0eVJlY3Q7CisKKyAgICAgICAgICAgIC8vIFdoZW4gbm90IGlkbGUgcGFpbnRpbmcsIGlm
IHRoZSB2aXNpYmxlIHJlZ2lvbiBvZiB0aGUgdGlsZSBpcyBvY2NsdWRlZCwgZG9uJ3QgcmVzZXJ2
ZSBhIHRleHR1cmUgb3IgdXBkYXRlIHRoZSB0aWxlLgorICAgICAgICAgICAgLy8gSWYgYW55IHBh
cnQgb2YgdGhlIHRpbGUgaXMgdmlzaWJsZSwgdGhlbiB3ZSBuZWVkIHRvIHVwZGF0ZSBpdCBzbyB0
aGUgdGlsZSBpcyBwdXNoZWQgdG8gdGhlIGltcGwgdGhyZWFkLgogICAgICAgICAgICAgaWYgKCFp
ZGxlICYmIG9jY2x1c2lvbikgewogICAgICAgICAgICAgICAgIEludFJlY3QgdmlzaWJsZVRpbGVS
ZWN0ID0gaW50ZXJzZWN0aW9uKG1fdGlsZXItPnRpbGVCb3VuZHMoaSwgaiksIHZpc2libGVMYXll
clJlY3QoKSk7Ci0gICAgICAgICAgICAgICAgaWYgKG9jY2x1c2lvbi0+b2NjbHVkZWQodGhpcywg
dmlzaWJsZVRpbGVSZWN0KSkKKyAgICAgICAgICAgICAgICBpZiAob2NjbHVzaW9uLT5vY2NsdWRl
ZCh0aGlzLCB2aXNpYmxlVGlsZVJlY3QpKSB7CisgICAgICAgICAgICAgICAgICAgIHRpbGUtPm1f
dXBkYXRlQ3VsbGVkID0gdHJ1ZTsKICAgICAgICAgICAgICAgICAgICAgY29udGludWU7CisgICAg
ICAgICAgICAgICAgfQogICAgICAgICAgICAgfQogCiAgICAgICAgICAgICAvLyBGSVhNRTogRGVj
aWRlIGlmIHBhcnRpYWwgdXBkYXRlIHNob3VsZCBiZSBhbGxvd2VkIGJhc2VkIG9uIGNvc3QKQEAg
LTQ0OCw3ICs0NTQsOCBAQCB2b2lkIFRpbGVkTGF5ZXJDaHJvbWl1bTo6cHJlcGFyZVRvVXBkYXRl
VGlsZXMoYm9vbCBpZGxlLCBpbnQgbGVmdCwgaW50IHRvcCwgaW50CiAgICAgICAgICAgICB9CiAK
ICAgICAgICAgICAgIGRpcnR5TGF5ZXJSZWN0LnVuaXRlKHRpbGUtPm1fZGlydHlSZWN0KTsKLSAg
ICAgICAgICAgIHRpbGUtPmNvcHlBbmRDbGVhckRpcnR5KCk7CisgICAgICAgICAgICAvLyBDbGVh
ciB0aGUgZGlydHkgcmVjdC4KKyAgICAgICAgICAgIHRpbGUtPm1fZGlydHlSZWN0ID0gSW50UmVj
dCgpOwogICAgICAgICB9CiAgICAgfQogCkBAIC00NzksMTEgKzQ4NiwyMyBAQCB2b2lkIFRpbGVk
TGF5ZXJDaHJvbWl1bTo6cHJlcGFyZVRvVXBkYXRlVGlsZXMoYm9vbCBpZGxlLCBpbnQgbGVmdCwg
aW50IHRvcCwgaW50CiAKICAgICAgICAgICAgIEludFJlY3QgdGlsZVJlY3QgPSBtX3RpbGVyLT50
aWxlQm91bmRzKGksIGopOwogCi0gICAgICAgICAgICAvLyBVc2UgbV91cGRhdGVSZWN0IGFzIGNv
cHlBbmRDbGVhckRpcnR5IGFib3ZlIG1vdmVkIHRoZSBleGlzdGluZyBkaXJ0eSByZWN0IHRvIG1f
dXBkYXRlUmVjdCBpZiB0aGUgdGlsZSBpc24ndCBjdWxsZWQuCisgICAgICAgICAgICAvLyBVc2Ug
bV91cGRhdGVSZWN0IGFzIHRoZSBhYm92ZSBsb29wIGNvcGllZCB0aGUgZGlydHkgcmVjdCBmb3Ig
dGhpcyBmcmFtZSB0byBtX3VwZGF0ZVJlY3QuCiAgICAgICAgICAgICBjb25zdCBJbnRSZWN0JiBk
aXJ0eVJlY3QgPSB0aWxlLT5tX3VwZGF0ZVJlY3Q7CiAgICAgICAgICAgICBpZiAoZGlydHlSZWN0
LmlzRW1wdHkoKSkKICAgICAgICAgICAgICAgICBjb250aW51ZTsKIAorICAgICAgICAgICAgLy8g
c291cmNlUmVjdCBzdGFydHMgYXMgYSBmdWxsLXNpemVkIHRpbGUgd2l0aCBib3JkZXIgdGV4ZWxz
IGluY2x1ZGVkLgorICAgICAgICAgICAgSW50UmVjdCBzb3VyY2VSZWN0ID0gbV90aWxlci0+dGls
ZVJlY3QodGlsZSk7CisgICAgICAgICAgICBzb3VyY2VSZWN0LmludGVyc2VjdChkaXJ0eVJlY3Qp
OworICAgICAgICAgICAgLy8gUGFpbnQgcmVjdCBub3QgZ3VhcmFudGVlZCB0byBsaW5lIHVwIG9u
IHRpbGUgYm91bmRhcmllcywgc28KKyAgICAgICAgICAgIC8vIG1ha2Ugc3VyZSB0aGF0IHNvdXJj
ZVJlY3QgZG9lc24ndCBleHRlbmQgb3V0c2lkZSBvZiBpdC4KKyAgICAgICAgICAgIHNvdXJjZVJl
Y3QuaW50ZXJzZWN0KG1fcGFpbnRSZWN0KTsKKworICAgICAgICAgICAgaWYgKHRpbGUtPm1fdXBk
YXRlQ3VsbGVkICYmIG9jY2x1c2lvbikgeworICAgICAgICAgICAgICAgIG9jY2x1c2lvbi0+b3Zl
cmRyYXdNZXRyaWNzKCkuZGlkQ3VsbChUcmFuc2Zvcm1hdGlvbk1hdHJpeCgpLCBzb3VyY2VSZWN0
LCBJbnRSZWN0KCkpOworICAgICAgICAgICAgICAgIGNvbnRpbnVlOworICAgICAgICAgICAgfQor
CiAgICAgICAgICAgICAvLyBTYXZlIHdoYXQgd2FzIHBhaW50ZWQgb3BhcXVlIGluIHRoZSB0aWxl
LiBLZWVwIHRoZSBvbGQgYXJlYSBpZiB0aGUgcGFpbnQgZGlkbid0IHRvdWNoIGl0LCBhbmQgZGlk
bid0IHBhaW50IHNvbWUKICAgICAgICAgICAgIC8vIG90aGVyIHBhcnQgb2YgdGhlIHRpbGUgb3Bh
cXVlLgogICAgICAgICAgICAgSW50UmVjdCB0aWxlUGFpbnRlZFJlY3QgPSBpbnRlcnNlY3Rpb24o
dGlsZVJlY3QsIG1fcGFpbnRSZWN0KTsKQEAgLTQ5NywxOCArNTE2LDEzIEBAIHZvaWQgVGlsZWRM
YXllckNocm9taXVtOjpwcmVwYXJlVG9VcGRhdGVUaWxlcyhib29sIGlkbGUsIGludCBsZWZ0LCBp
bnQgdG9wLCBpbnQKICAgICAgICAgICAgICAgICAgICAgdGlsZS0+c2V0T3BhcXVlUmVjdCh0aWxl
UGFpbnRlZE9wYXF1ZVJlY3QpOwogICAgICAgICAgICAgfQogCi0gICAgICAgICAgICAvLyBzb3Vy
Y2VSZWN0IHN0YXJ0cyBhcyBhIGZ1bGwtc2l6ZWQgdGlsZSB3aXRoIGJvcmRlciB0ZXhlbHMgaW5j
bHVkZWQuCi0gICAgICAgICAgICBJbnRSZWN0IHNvdXJjZVJlY3QgPSBtX3RpbGVyLT50aWxlUmVj
dCh0aWxlKTsKLSAgICAgICAgICAgIHNvdXJjZVJlY3QuaW50ZXJzZWN0KGRpcnR5UmVjdCk7Ci0g
ICAgICAgICAgICAvLyBQYWludCByZWN0IG5vdCBndWFyYW50ZWVkIHRvIGxpbmUgdXAgb24gdGls
ZSBib3VuZGFyaWVzLCBzbwotICAgICAgICAgICAgLy8gbWFrZSBzdXJlIHRoYXQgc291cmNlUmVj
dCBkb2Vzbid0IGV4dGVuZCBvdXRzaWRlIG9mIGl0LgotICAgICAgICAgICAgc291cmNlUmVjdC5p
bnRlcnNlY3QobV9wYWludFJlY3QpOwotCiAgICAgICAgICAgICB0aWxlLT5tX3VwZGF0ZVJlY3Qg
PSBzb3VyY2VSZWN0OwogICAgICAgICAgICAgaWYgKHNvdXJjZVJlY3QuaXNFbXB0eSgpKQogICAg
ICAgICAgICAgICAgIGNvbnRpbnVlOwogCiAgICAgICAgICAgICB0aWxlLT50ZXh0dXJlKCktPnBy
ZXBhcmVSZWN0KHNvdXJjZVJlY3QpOworICAgICAgICAgICAgaWYgKG9jY2x1c2lvbikKKyAgICAg
ICAgICAgICAgICBvY2NsdXNpb24tPm92ZXJkcmF3TWV0cmljcygpLmRpZERyYXcoVHJhbnNmb3Jt
YXRpb25NYXRyaXgoKSwgc291cmNlUmVjdCwgdGlsZS0+b3BhcXVlUmVjdCgpKTsKICAgICAgICAg
fQogICAgIH0KIH0KQEAgLTU1Niw2ICs1NzAsNyBAQCB2b2lkIFRpbGVkTGF5ZXJDaHJvbWl1bTo6
cmVzZXRVcGRhdGVTdGF0ZSgpCiAgICAgICAgIFVwZGF0YWJsZVRpbGUqIHRpbGUgPSBzdGF0aWNf
Y2FzdDxVcGRhdGFibGVUaWxlKj4oaXRlci0+c2Vjb25kLmdldCgpKTsKICAgICAgICAgdGlsZS0+
bV91cGRhdGVSZWN0ID0gSW50UmVjdCgpOwogICAgICAgICB0aWxlLT5tX3BhcnRpYWxVcGRhdGUg
PSBmYWxzZTsKKyAgICAgICAgdGlsZS0+bV91cGRhdGVDdWxsZWQgPSBmYWxzZTsKICAgICB9CiB9
CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVt
L2NjL0NDTGF5ZXJUcmVlSG9zdC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9jaHJvbWl1bS9jYy9DQ0xheWVyVHJlZUhvc3QuY3BwCmluZGV4IDA2NTkwMmNlNWEzMTMyM2Rm
ZmU5MWM4ZTVhZWNmMDMxYzc1OTUwZTAuLmRlMzc2ZGJlNWMyZGY4YWZhM2QwMjIxNmU1YmJmNGNh
MDBhYTc2MDQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2No
cm9taXVtL2NjL0NDTGF5ZXJUcmVlSG9zdC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvY2hyb21pdW0vY2MvQ0NMYXllclRyZWVIb3N0LmNwcApAQCAtNTU3LDYgKzU1
Nyw4IEBAIHZvaWQgQ0NMYXllclRyZWVIb3N0OjpwYWludExheWVyQ29udGVudHMoY29uc3QgTGF5
ZXJMaXN0JiByZW5kZXJTdXJmYWNlTGF5ZXJMaXN0CiAgICAgICAgIH0gZWxzZQogICAgICAgICAg
ICAgb2NjbHVzaW9uVHJhY2tlci5sZWF2ZVRvVGFyZ2V0UmVuZGVyU3VyZmFjZShpdC50YXJnZXRS
ZW5kZXJTdXJmYWNlTGF5ZXIoKS0+cmVuZGVyU3VyZmFjZSgpKTsKICAgICB9CisKKyAgICBvY2Ns
dXNpb25UcmFja2VyLm92ZXJkcmF3TWV0cmljcygpLnJlY29yZE1ldHJpY3ModGhpcyk7CiB9CiAK
IHZvaWQgQ0NMYXllclRyZWVIb3N0Ojp1cGRhdGVDb21wb3NpdG9yUmVzb3VyY2VzKEdyYXBoaWNz
Q29udGV4dDNEKiBjb250ZXh0LCBDQ1RleHR1cmVVcGRhdGVyJiB1cGRhdGVyKQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS90ZXN0cy9UaWxlZExheWVyQ2hyb21pdW1UZXN0LmNw
cCBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vdGVzdHMvVGlsZWRMYXllckNocm9taXVtVGVzdC5j
cHAKaW5kZXggMDdjZWFhZTg4ZDc1Nzc3YjYzNjNjN2E3NGM5YmEwYzg5MzRiODBjMi4uN2VlYmI5
NzE0Njg2YWVlMTEzYmUwMmZhYWU4NTZlNTIwYTY1YzE4YiAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC9jaHJvbWl1bS90ZXN0cy9UaWxlZExheWVyQ2hyb21pdW1UZXN0LmNwcAorKysgYi9Tb3Vy
Y2UvV2ViS2l0L2Nocm9taXVtL3Rlc3RzL1RpbGVkTGF5ZXJDaHJvbWl1bVRlc3QuY3BwCkBAIC0z
MDgsNiArMzA4LDEwIEBAIFRFU1QoVGlsZWRMYXllckNocm9taXVtVGVzdCwgcHVzaE9jY2x1ZGVk
RGlydHlUaWxlcykKICAgICBsYXllci0+dXBkYXRlQ29tcG9zaXRvclJlc291cmNlcygwLCB1cGRh
dGVyKTsKICAgICBsYXllci0+cHVzaFByb3BlcnRpZXNUbyhsYXllckltcGwuZ2V0KCkpOwogCisg
ICAgRVhQRUNUX05FQVIob2NjbHVkZWQub3ZlcmRyYXdNZXRyaWNzKCkucGl4ZWxzRHJhd25PcGFx
dWUoKSwgMCwgMSk7CisgICAgRVhQRUNUX05FQVIob2NjbHVkZWQub3ZlcmRyYXdNZXRyaWNzKCku
cGl4ZWxzRHJhd25UcmFuc2x1Y2VudCgpLCAyMDAwMCwgMSk7CisgICAgRVhQRUNUX05FQVIob2Nj
bHVkZWQub3ZlcmRyYXdNZXRyaWNzKCkucGl4ZWxzQ3VsbGVkKCksIDAsIDEpOworCiAgICAgLy8g
V2Ugc2hvdWxkIGhhdmUgYm90aCB0aWxlcyBvbiB0aGUgaW1wbCBzaWRlLgogICAgIEVYUEVDVF9U
UlVFKGxheWVySW1wbC0+aGFzVGlsZUF0KDAsIDApKTsKICAgICBFWFBFQ1RfVFJVRShsYXllcklt
cGwtPmhhc1RpbGVBdCgwLCAxKSk7CkBAIC0zMjIsNiArMzI2LDEwIEBAIFRFU1QoVGlsZWRMYXll
ckNocm9taXVtVGVzdCwgcHVzaE9jY2x1ZGVkRGlydHlUaWxlcykKICAgICBsYXllci0+dXBkYXRl
Q29tcG9zaXRvclJlc291cmNlcygwLCB1cGRhdGVyKTsKICAgICBsYXllci0+cHVzaFByb3BlcnRp
ZXNUbyhsYXllckltcGwuZ2V0KCkpOwogCisgICAgRVhQRUNUX05FQVIob2NjbHVkZWQub3ZlcmRy
YXdNZXRyaWNzKCkucGl4ZWxzRHJhd25PcGFxdWUoKSwgMCwgMSk7CisgICAgRVhQRUNUX05FQVIo
b2NjbHVkZWQub3ZlcmRyYXdNZXRyaWNzKCkucGl4ZWxzRHJhd25UcmFuc2x1Y2VudCgpLCAyMDAw
MCArIDI1MDAsIDEpOworICAgIEVYUEVDVF9ORUFSKG9jY2x1ZGVkLm92ZXJkcmF3TWV0cmljcygp
LnBpeGVsc0N1bGxlZCgpLCAwLCAxKTsKKwogICAgIC8vIFdlIHNob3VsZCBzdGlsbCBoYXZlIGJv
dGggdGlsZXMsIGFzIHBhcnQgb2YgdGhlIHRvcCB0aWxlIGlzIHN0aWxsIHVub2NjbHVkZWQuCiAg
ICAgRVhQRUNUX1RSVUUobGF5ZXJJbXBsLT5oYXNUaWxlQXQoMCwgMCkpOwogICAgIEVYUEVDVF9U
UlVFKGxheWVySW1wbC0+aGFzVGlsZUF0KDAsIDEpKTsKQEAgLTgyNCw2ICs4MzIsMTAgQEAgVEVT
VChUaWxlZExheWVyQ2hyb21pdW1UZXN0LCB0aWxlc1BhaW50ZWRXaXRoT2NjbHVzaW9uKQogICAg
IGxheWVyLT5wcmVwYXJlVG9VcGRhdGUoSW50UmVjdCgwLCAwLCA2MDAsIDYwMCksICZvY2NsdWRl
ZCk7CiAgICAgRVhQRUNUX0VRKDM2LTMsIGxheWVyLT5mYWtlTGF5ZXJUZXh0dXJlVXBkYXRlcigp
LT5wcmVwYXJlUmVjdENvdW50KCkpOwogCisgICAgRVhQRUNUX05FQVIob2NjbHVkZWQub3ZlcmRy
YXdNZXRyaWNzKCkucGl4ZWxzRHJhd25PcGFxdWUoKSwgMCwgMSk7CisgICAgRVhQRUNUX05FQVIo
b2NjbHVkZWQub3ZlcmRyYXdNZXRyaWNzKCkucGl4ZWxzRHJhd25UcmFuc2x1Y2VudCgpLCAzMzAw
MDAsIDEpOworICAgIEVYUEVDVF9ORUFSKG9jY2x1ZGVkLm92ZXJkcmF3TWV0cmljcygpLnBpeGVs
c0N1bGxlZCgpLCAzMDAwMCwgMSk7CisKICAgICBsYXllci0+ZmFrZUxheWVyVGV4dHVyZVVwZGF0
ZXIoKS0+Y2xlYXJQcmVwYXJlUmVjdENvdW50KCk7CiAKICAgICBvY2NsdWRlZC5zZXRPY2NsdXNp
b24oSW50UmVjdCgyNTAsIDIwMCwgMzAwLCAxMDApKTsKQEAgLTgzMSwxMiArODQzLDIwIEBAIFRF
U1QoVGlsZWRMYXllckNocm9taXVtVGVzdCwgdGlsZXNQYWludGVkV2l0aE9jY2x1c2lvbikKICAg
ICBsYXllci0+cHJlcGFyZVRvVXBkYXRlKEludFJlY3QoMCwgMCwgNjAwLCA2MDApLCAmb2NjbHVk
ZWQpOwogICAgIEVYUEVDVF9FUSgzNi0yLCBsYXllci0+ZmFrZUxheWVyVGV4dHVyZVVwZGF0ZXIo
KS0+cHJlcGFyZVJlY3RDb3VudCgpKTsKIAorICAgIEVYUEVDVF9ORUFSKG9jY2x1ZGVkLm92ZXJk
cmF3TWV0cmljcygpLnBpeGVsc0RyYXduT3BhcXVlKCksIDAsIDEpOworICAgIEVYUEVDVF9ORUFS
KG9jY2x1ZGVkLm92ZXJkcmF3TWV0cmljcygpLnBpeGVsc0RyYXduVHJhbnNsdWNlbnQoKSwgMzMw
MDAwICsgMzQwMDAwLCAxKTsKKyAgICBFWFBFQ1RfTkVBUihvY2NsdWRlZC5vdmVyZHJhd01ldHJp
Y3MoKS5waXhlbHNDdWxsZWQoKSwgMzAwMDAgKyAyMDAwMCwgMSk7CisKICAgICBsYXllci0+ZmFr
ZUxheWVyVGV4dHVyZVVwZGF0ZXIoKS0+Y2xlYXJQcmVwYXJlUmVjdENvdW50KCk7CiAKICAgICBv
Y2NsdWRlZC5zZXRPY2NsdXNpb24oSW50UmVjdCgyNTAsIDI1MCwgMzAwLCAxMDApKTsKICAgICBs
YXllci0+aW52YWxpZGF0ZVJlY3QoSW50UmVjdCgwLCAwLCA2MDAsIDYwMCkpOwogICAgIGxheWVy
LT5wcmVwYXJlVG9VcGRhdGUoSW50UmVjdCgwLCAwLCA2MDAsIDYwMCksICZvY2NsdWRlZCk7CiAg
ICAgRVhQRUNUX0VRKDM2LCBsYXllci0+ZmFrZUxheWVyVGV4dHVyZVVwZGF0ZXIoKS0+cHJlcGFy
ZVJlY3RDb3VudCgpKTsKKworICAgIEVYUEVDVF9ORUFSKG9jY2x1ZGVkLm92ZXJkcmF3TWV0cmlj
cygpLnBpeGVsc0RyYXduT3BhcXVlKCksIDAsIDEpOworICAgIEVYUEVDVF9ORUFSKG9jY2x1ZGVk
Lm92ZXJkcmF3TWV0cmljcygpLnBpeGVsc0RyYXduVHJhbnNsdWNlbnQoKSwgMzMwMDAwICsgMzQw
MDAwICsgMzYwMDAwLCAxKTsKKyAgICBFWFBFQ1RfTkVBUihvY2NsdWRlZC5vdmVyZHJhd01ldHJp
Y3MoKS5waXhlbHNDdWxsZWQoKSwgMzAwMDAgKyAyMDAwMCwgMSk7CiB9CiAKIFRFU1QoVGlsZWRM
YXllckNocm9taXVtVGVzdCwgdGlsZXNQYWludGVkV2l0aE9jY2x1c2lvbkFuZFZpc2libGl0eUNv
bnN0cmFpbnRzKQpAQCAtODU3LDYgKzg3NywxMCBAQCBURVNUKFRpbGVkTGF5ZXJDaHJvbWl1bVRl
c3QsIHRpbGVzUGFpbnRlZFdpdGhPY2NsdXNpb25BbmRWaXNpYmxpdHlDb25zdHJhaW50cykKICAg
ICBsYXllci0+cHJlcGFyZVRvVXBkYXRlKEludFJlY3QoMCwgMCwgNjAwLCA2MDApLCAmb2NjbHVk
ZWQpOwogICAgIEVYUEVDVF9FUSgyNC0zLCBsYXllci0+ZmFrZUxheWVyVGV4dHVyZVVwZGF0ZXIo
KS0+cHJlcGFyZVJlY3RDb3VudCgpKTsKIAorICAgIEVYUEVDVF9ORUFSKG9jY2x1ZGVkLm92ZXJk
cmF3TWV0cmljcygpLnBpeGVsc0RyYXduT3BhcXVlKCksIDAsIDEpOworICAgIEVYUEVDVF9ORUFS
KG9jY2x1ZGVkLm92ZXJkcmF3TWV0cmljcygpLnBpeGVsc0RyYXduVHJhbnNsdWNlbnQoKSwgMjEw
MDAwLCAxKTsKKyAgICBFWFBFQ1RfTkVBUihvY2NsdWRlZC5vdmVyZHJhd01ldHJpY3MoKS5waXhl
bHNDdWxsZWQoKSwgMzAwMDAsIDEpOworCiAgICAgbGF5ZXItPmZha2VMYXllclRleHR1cmVVcGRh
dGVyKCktPmNsZWFyUHJlcGFyZVJlY3RDb3VudCgpOwogCiAgICAgLy8gTm93IHRoZSB2aXNpYmxl
IHJlZ2lvbiBzdG9wcyBhdCB0aGUgZWRnZSBvZiB0aGUgb2NjbHVzaW9uIHNvIHRoZSBwYXJ0bHkg
dmlzaWJsZSB0aWxlcyBiZWNvbWUgZnVsbHkgb2NjbHVkZWQuCkBAIC04NjYsNiArODkwLDEwIEBA
IFRFU1QoVGlsZWRMYXllckNocm9taXVtVGVzdCwgdGlsZXNQYWludGVkV2l0aE9jY2x1c2lvbkFu
ZFZpc2libGl0eUNvbnN0cmFpbnRzKQogICAgIGxheWVyLT5wcmVwYXJlVG9VcGRhdGUoSW50UmVj
dCgwLCAwLCA2MDAsIDYwMCksICZvY2NsdWRlZCk7CiAgICAgRVhQRUNUX0VRKDI0LTYsIGxheWVy
LT5mYWtlTGF5ZXJUZXh0dXJlVXBkYXRlcigpLT5wcmVwYXJlUmVjdENvdW50KCkpOwogCisgICAg
RVhQRUNUX05FQVIob2NjbHVkZWQub3ZlcmRyYXdNZXRyaWNzKCkucGl4ZWxzRHJhd25PcGFxdWUo
KSwgMCwgMSk7CisgICAgRVhQRUNUX05FQVIob2NjbHVkZWQub3ZlcmRyYXdNZXRyaWNzKCkucGl4
ZWxzRHJhd25UcmFuc2x1Y2VudCgpLCAyMTAwMDAgKyAxODAwMDAsIDEpOworICAgIEVYUEVDVF9O
RUFSKG9jY2x1ZGVkLm92ZXJkcmF3TWV0cmljcygpLnBpeGVsc0N1bGxlZCgpLCAzMDAwMCArIDYw
MDAwLCAxKTsKKwogICAgIGxheWVyLT5mYWtlTGF5ZXJUZXh0dXJlVXBkYXRlcigpLT5jbGVhclBy
ZXBhcmVSZWN0Q291bnQoKTsKIAogICAgIC8vIE5vdyB0aGUgdmlzaWJsZSByZWdpb24gaXMgZXZl
biBzbWFsbGVyIHRoYW4gdGhlIG9jY2x1c2lvbiwgaXQgc2hvdWxkIGhhdmUgdGhlIHNhbWUgcmVz
dWx0LgpAQCAtODc0LDYgKzkwMiwxMSBAQCBURVNUKFRpbGVkTGF5ZXJDaHJvbWl1bVRlc3QsIHRp
bGVzUGFpbnRlZFdpdGhPY2NsdXNpb25BbmRWaXNpYmxpdHlDb25zdHJhaW50cykKICAgICBsYXll
ci0+aW52YWxpZGF0ZVJlY3QoSW50UmVjdCgwLCAwLCA2MDAsIDYwMCkpOwogICAgIGxheWVyLT5w
cmVwYXJlVG9VcGRhdGUoSW50UmVjdCgwLCAwLCA2MDAsIDYwMCksICZvY2NsdWRlZCk7CiAgICAg
RVhQRUNUX0VRKDI0LTYsIGxheWVyLT5mYWtlTGF5ZXJUZXh0dXJlVXBkYXRlcigpLT5wcmVwYXJl
UmVjdENvdW50KCkpOworCisgICAgRVhQRUNUX05FQVIob2NjbHVkZWQub3ZlcmRyYXdNZXRyaWNz
KCkucGl4ZWxzRHJhd25PcGFxdWUoKSwgMCwgMSk7CisgICAgRVhQRUNUX05FQVIob2NjbHVkZWQu
b3ZlcmRyYXdNZXRyaWNzKCkucGl4ZWxzRHJhd25UcmFuc2x1Y2VudCgpLCAyMTAwMDAgKyAxODAw
MDAgKyAxODAwMDAsIDEpOworICAgIEVYUEVDVF9ORUFSKG9jY2x1ZGVkLm92ZXJkcmF3TWV0cmlj
cygpLnBpeGVsc0N1bGxlZCgpLCAzMDAwMCArIDYwMDAwICsgNjAwMDAsIDEpOworCiB9CiAKIFRF
U1QoVGlsZWRMYXllckNocm9taXVtVGVzdCwgdGlsZXNOb3RQYWludGVkV2l0aG91dEludmFsaWRh
dGlvbikKQEAgLTg5MywxMSArOTI2LDE5IEBAIFRFU1QoVGlsZWRMYXllckNocm9taXVtVGVzdCwg
dGlsZXNOb3RQYWludGVkV2l0aG91dEludmFsaWRhdGlvbikKICAgICBsYXllci0+cHJlcGFyZVRv
VXBkYXRlKEludFJlY3QoMCwgMCwgNjAwLCA2MDApLCAmb2NjbHVkZWQpOwogICAgIEVYUEVDVF9F
USgzNi0zLCBsYXllci0+ZmFrZUxheWVyVGV4dHVyZVVwZGF0ZXIoKS0+cHJlcGFyZVJlY3RDb3Vu
dCgpKTsKIAorICAgIEVYUEVDVF9ORUFSKG9jY2x1ZGVkLm92ZXJkcmF3TWV0cmljcygpLnBpeGVs
c0RyYXduT3BhcXVlKCksIDAsIDEpOworICAgIEVYUEVDVF9ORUFSKG9jY2x1ZGVkLm92ZXJkcmF3
TWV0cmljcygpLnBpeGVsc0RyYXduVHJhbnNsdWNlbnQoKSwgMzMwMDAwLCAxKTsKKyAgICBFWFBF
Q1RfTkVBUihvY2NsdWRlZC5vdmVyZHJhd01ldHJpY3MoKS5waXhlbHNDdWxsZWQoKSwgMzAwMDAs
IDEpOworCiAgICAgbGF5ZXItPmZha2VMYXllclRleHR1cmVVcGRhdGVyKCktPmNsZWFyUHJlcGFy
ZVJlY3RDb3VudCgpOwogCiAgICAgLy8gUmVwYWludCB3aXRob3V0IG1hcmtpbmcgaXQgZGlydHku
CiAgICAgbGF5ZXItPnByZXBhcmVUb1VwZGF0ZShJbnRSZWN0KDAsIDAsIDYwMCwgNjAwKSwgJm9j
Y2x1ZGVkKTsKICAgICBFWFBFQ1RfRVEoMCwgbGF5ZXItPmZha2VMYXllclRleHR1cmVVcGRhdGVy
KCktPnByZXBhcmVSZWN0Q291bnQoKSk7CisKKyAgICBFWFBFQ1RfTkVBUihvY2NsdWRlZC5vdmVy
ZHJhd01ldHJpY3MoKS5waXhlbHNEcmF3bk9wYXF1ZSgpLCAwLCAxKTsKKyAgICBFWFBFQ1RfTkVB
UihvY2NsdWRlZC5vdmVyZHJhd01ldHJpY3MoKS5waXhlbHNEcmF3blRyYW5zbHVjZW50KCksIDMz
MDAwMCwgMSk7CisgICAgRVhQRUNUX05FQVIob2NjbHVkZWQub3ZlcmRyYXdNZXRyaWNzKCkucGl4
ZWxzQ3VsbGVkKCksIDMwMDAwLCAxKTsKIH0KIAogVEVTVChUaWxlZExheWVyQ2hyb21pdW1UZXN0
LCB0aWxlc1BhaW50ZWRXaXRoT2NjbHVzaW9uQW5kVHJhbnNmb3JtcykKQEAgLTkyMSw2ICs5NjIs
MTAgQEAgVEVTVChUaWxlZExheWVyQ2hyb21pdW1UZXN0LCB0aWxlc1BhaW50ZWRXaXRoT2NjbHVz
aW9uQW5kVHJhbnNmb3JtcykKICAgICBsYXllci0+aW52YWxpZGF0ZVJlY3QoSW50UmVjdCgwLCAw
LCA2MDAsIDYwMCkpOwogICAgIGxheWVyLT5wcmVwYXJlVG9VcGRhdGUoSW50UmVjdCgwLCAwLCA2
MDAsIDYwMCksICZvY2NsdWRlZCk7CiAgICAgRVhQRUNUX0VRKDM2LTMsIGxheWVyLT5mYWtlTGF5
ZXJUZXh0dXJlVXBkYXRlcigpLT5wcmVwYXJlUmVjdENvdW50KCkpOworCisgICAgRVhQRUNUX05F
QVIob2NjbHVkZWQub3ZlcmRyYXdNZXRyaWNzKCkucGl4ZWxzRHJhd25PcGFxdWUoKSwgMCwgMSk7
CisgICAgRVhQRUNUX05FQVIob2NjbHVkZWQub3ZlcmRyYXdNZXRyaWNzKCkucGl4ZWxzRHJhd25U
cmFuc2x1Y2VudCgpLCAzMzAwMDAsIDEpOworICAgIEVYUEVDVF9ORUFSKG9jY2x1ZGVkLm92ZXJk
cmF3TWV0cmljcygpLnBpeGVsc0N1bGxlZCgpLCAzMDAwMCwgMSk7CiB9CiAKIFRFU1QoVGlsZWRM
YXllckNocm9taXVtVGVzdCwgdGlsZXNQYWludGVkV2l0aE9jY2x1c2lvbkFuZFNjYWxpbmcpCkBA
IC05NDcsNiArOTkyLDEwIEBAIFRFU1QoVGlsZWRMYXllckNocm9taXVtVGVzdCwgdGlsZXNQYWlu
dGVkV2l0aE9jY2x1c2lvbkFuZFNjYWxpbmcpCiAgICAgLy8gbnVtYmVyIG9mIHRpbGVzIDN4My4K
ICAgICBFWFBFQ1RfRVEoOSwgbGF5ZXItPmZha2VMYXllclRleHR1cmVVcGRhdGVyKCktPnByZXBh
cmVSZWN0Q291bnQoKSk7CiAKKyAgICBFWFBFQ1RfTkVBUihvY2NsdWRlZC5vdmVyZHJhd01ldHJp
Y3MoKS5waXhlbHNEcmF3bk9wYXF1ZSgpLCAwLCAxKTsKKyAgICBFWFBFQ1RfTkVBUihvY2NsdWRl
ZC5vdmVyZHJhd01ldHJpY3MoKS5waXhlbHNEcmF3blRyYW5zbHVjZW50KCksIDkwMDAwLCAxKTsK
KyAgICBFWFBFQ1RfTkVBUihvY2NsdWRlZC5vdmVyZHJhd01ldHJpY3MoKS5waXhlbHNDdWxsZWQo
KSwgMCwgMSk7CisKICAgICBsYXllci0+ZmFrZUxheWVyVGV4dHVyZVVwZGF0ZXIoKS0+Y2xlYXJQ
cmVwYXJlUmVjdENvdW50KCk7CiAKICAgICAvLyBUaGlzIG1ha2VzIHN1cmUgdGhlIHBhaW50aW5n
IHdvcmtzIHdoZW4gdGhlIGNvbnRlbnQgc3BhY2UgaXMgc2NhbGVkIHRvCkBAIC05NTgsNiArMTAw
NywxMCBAQCBURVNUKFRpbGVkTGF5ZXJDaHJvbWl1bVRlc3QsIHRpbGVzUGFpbnRlZFdpdGhPY2Ns
dXNpb25BbmRTY2FsaW5nKQogICAgIGxheWVyLT5wcmVwYXJlVG9VcGRhdGUoSW50UmVjdCgwLCAw
LCA2MDAsIDYwMCksICZvY2NsdWRlZCk7CiAgICAgRVhQRUNUX0VRKDktMSwgbGF5ZXItPmZha2VM
YXllclRleHR1cmVVcGRhdGVyKCktPnByZXBhcmVSZWN0Q291bnQoKSk7CiAKKyAgICBFWFBFQ1Rf
TkVBUihvY2NsdWRlZC5vdmVyZHJhd01ldHJpY3MoKS5waXhlbHNEcmF3bk9wYXF1ZSgpLCAwLCAx
KTsKKyAgICBFWFBFQ1RfTkVBUihvY2NsdWRlZC5vdmVyZHJhd01ldHJpY3MoKS5waXhlbHNEcmF3
blRyYW5zbHVjZW50KCksIDkwMDAwICsgODAwMDAsIDEpOworICAgIEVYUEVDVF9ORUFSKG9jY2x1
ZGVkLm92ZXJkcmF3TWV0cmljcygpLnBpeGVsc0N1bGxlZCgpLCAxMDAwMCwgMSk7CisKICAgICBs
YXllci0+ZmFrZUxheWVyVGV4dHVyZVVwZGF0ZXIoKS0+Y2xlYXJQcmVwYXJlUmVjdENvdW50KCk7
CiAKICAgICAvLyBUaGlzIG1ha2VzIHN1cmUgY29udGVudCBzY2FsaW5nIGFuZCB0cmFuc2Zvcm1z
IHdvcmsgdG9nZXRoZXIuCkBAIC05NzEsMTIgKzEwMjQsMTcgQEAgVEVTVChUaWxlZExheWVyQ2hy
b21pdW1UZXN0LCB0aWxlc1BhaW50ZWRXaXRoT2NjbHVzaW9uQW5kU2NhbGluZykKICAgICBsYXll
ci0+aW52YWxpZGF0ZVJlY3QoSW50UmVjdCgwLCAwLCA2MDAsIDYwMCkpOwogICAgIGxheWVyLT5w
cmVwYXJlVG9VcGRhdGUoSW50UmVjdCgwLCAwLCA2MDAsIDYwMCksICZvY2NsdWRlZCk7CiAgICAg
RVhQRUNUX0VRKDktMSwgbGF5ZXItPmZha2VMYXllclRleHR1cmVVcGRhdGVyKCktPnByZXBhcmVS
ZWN0Q291bnQoKSk7CisKKyAgICBFWFBFQ1RfTkVBUihvY2NsdWRlZC5vdmVyZHJhd01ldHJpY3Mo
KS5waXhlbHNEcmF3bk9wYXF1ZSgpLCAwLCAxKTsKKyAgICBFWFBFQ1RfTkVBUihvY2NsdWRlZC5v
dmVyZHJhd01ldHJpY3MoKS5waXhlbHNEcmF3blRyYW5zbHVjZW50KCksIDkwMDAwICsgODAwMDAg
KyA4MDAwMCwgMSk7CisgICAgRVhQRUNUX05FQVIob2NjbHVkZWQub3ZlcmRyYXdNZXRyaWNzKCku
cGl4ZWxzQ3VsbGVkKCksIDEwMDAwICsgMTAwMDAsIDEpOwogfQogCiBURVNUKFRpbGVkTGF5ZXJD
aHJvbWl1bVRlc3QsIG9wYXF1ZUNvbnRlbnRzUmVnaW9uKQogewogICAgIE93blB0cjxUZXh0dXJl
TWFuYWdlcj4gdGV4dHVyZU1hbmFnZXIgPSBUZXh0dXJlTWFuYWdlcjo6Y3JlYXRlKDQqMTAyNCox
MDI0LCAyKjEwMjQqMTAyNCwgMTAyNCk7CiAgICAgUmVmUHRyPEZha2VUaWxlZExheWVyQ2hyb21p
dW0+IGxheWVyID0gYWRvcHRSZWYobmV3IEZha2VUaWxlZExheWVyQ2hyb21pdW0odGV4dHVyZU1h
bmFnZXIuZ2V0KCkpKTsKKyAgICBUZXN0Q0NPY2NsdXNpb25UcmFja2VyIG9jY2x1ZGVkOwogCiAg
ICAgLy8gVGhlIHRpbGUgc2l6ZSBpcyAxMDB4MTAwLCBzbyB0aGlzIGludmFsaWRhdGVzIGFuZCB0
aGVuIHBhaW50cyB0d28gdGlsZXMgaW4gdmFyaW91cyB3YXlzLgogCkBAIC05ODcsNDkgKzEwNDUs
NzAgQEAgVEVTVChUaWxlZExheWVyQ2hyb21pdW1UZXN0LCBvcGFxdWVDb250ZW50c1JlZ2lvbikK
ICAgICBJbnRSZWN0IHZpc2libGVCb3VuZHMgPSBJbnRSZWN0KDAsIDAsIDEwMCwgMTUwKTsKIAog
ICAgIGxheWVyLT5zZXRCb3VuZHMoY29udGVudEJvdW5kcy5zaXplKCkpOworICAgIGxheWVyLT5z
ZXREcmF3VHJhbnNmb3JtKFRyYW5zZm9ybWF0aW9uTWF0cml4KDEsIDAsIDAsIDEsIGxheWVyLT5i
b3VuZHMoKS53aWR0aCgpIC8gMi4wLCBsYXllci0+Ym91bmRzKCkuaGVpZ2h0KCkgLyAyLjApKTsK
ICAgICBsYXllci0+c2V0VmlzaWJsZUxheWVyUmVjdCh2aXNpYmxlQm91bmRzKTsKICAgICBsYXll
ci0+c2V0RHJhd09wYWNpdHkoMSk7CiAKICAgICAvLyBJZiB0aGUgbGF5ZXIgZG9lc24ndCBwYWlu
dCBvcGFxdWUgY29udGVudCwgdGhlbiB0aGUgb3BhcXVlQ29udGVudHNSZWdpb24gc2hvdWxkIGJl
IGVtcHR5LgotICAgIGxheWVyLT5mYWtlTGF5ZXJUZXh0dXJlVXBkYXRlcigpLT5zZXRPcGFxdWVQ
YWludFJlY3Qob3BhcXVlUGFpbnRSZWN0KTsKKyAgICBsYXllci0+ZmFrZUxheWVyVGV4dHVyZVVw
ZGF0ZXIoKS0+c2V0T3BhcXVlUGFpbnRSZWN0KEludFJlY3QoKSk7CiAgICAgbGF5ZXItPmludmFs
aWRhdGVSZWN0KGNvbnRlbnRCb3VuZHMpOwotICAgIGxheWVyLT5wcmVwYXJlVG9VcGRhdGUoY29u
dGVudEJvdW5kcywgMCk7CisgICAgbGF5ZXItPnByZXBhcmVUb1VwZGF0ZShjb250ZW50Qm91bmRz
LCAmb2NjbHVkZWQpOwogICAgIG9wYXF1ZUNvbnRlbnRzID0gbGF5ZXItPm9wYXF1ZUNvbnRlbnRz
UmVnaW9uKCk7CiAgICAgRVhQRUNUX1RSVUUob3BhcXVlQ29udGVudHMuaXNFbXB0eSgpKTsKIAor
ICAgIEVYUEVDVF9ORUFSKG9jY2x1ZGVkLm92ZXJkcmF3TWV0cmljcygpLnBpeGVsc0RyYXduT3Bh
cXVlKCksIDAsIDEpOworICAgIEVYUEVDVF9ORUFSKG9jY2x1ZGVkLm92ZXJkcmF3TWV0cmljcygp
LnBpeGVsc0RyYXduVHJhbnNsdWNlbnQoKSwgMjAwMDAsIDEpOworICAgIEVYUEVDVF9ORUFSKG9j
Y2x1ZGVkLm92ZXJkcmF3TWV0cmljcygpLnBpeGVsc0N1bGxlZCgpLCAwLCAxKTsKKwogICAgIC8v
IG9wYXF1ZUNvbnRlbnRzUmVnaW9uIHNob3VsZCBtYXRjaCB0aGUgdmlzaWJsZSBwYXJ0IG9mIHdo
YXQgaXMgcGFpbnRlZCBvcGFxdWUuCiAgICAgb3BhcXVlUGFpbnRSZWN0ID0gSW50UmVjdCgxMCwg
MTAsIDkwLCAxOTApOwogICAgIGxheWVyLT5mYWtlTGF5ZXJUZXh0dXJlVXBkYXRlcigpLT5zZXRP
cGFxdWVQYWludFJlY3Qob3BhcXVlUGFpbnRSZWN0KTsKICAgICBsYXllci0+aW52YWxpZGF0ZVJl
Y3QoY29udGVudEJvdW5kcyk7Ci0gICAgbGF5ZXItPnByZXBhcmVUb1VwZGF0ZShjb250ZW50Qm91
bmRzLCAwKTsKKyAgICBsYXllci0+cHJlcGFyZVRvVXBkYXRlKGNvbnRlbnRCb3VuZHMsICZvY2Ns
dWRlZCk7CiAgICAgb3BhcXVlQ29udGVudHMgPSBsYXllci0+b3BhcXVlQ29udGVudHNSZWdpb24o
KTsKICAgICBFWFBFQ1RfRVFfUkVDVChpbnRlcnNlY3Rpb24ob3BhcXVlUGFpbnRSZWN0LCB2aXNp
YmxlQm91bmRzKSwgb3BhcXVlQ29udGVudHMuYm91bmRzKCkpOwogICAgIEVYUEVDVF9FUSgxdSwg
b3BhcXVlQ29udGVudHMucmVjdHMoKS5zaXplKCkpOwogCisgICAgRVhQRUNUX05FQVIob2NjbHVk
ZWQub3ZlcmRyYXdNZXRyaWNzKCkucGl4ZWxzRHJhd25PcGFxdWUoKSwgMTcxMDAsIDEpOworICAg
IEVYUEVDVF9ORUFSKG9jY2x1ZGVkLm92ZXJkcmF3TWV0cmljcygpLnBpeGVsc0RyYXduVHJhbnNs
dWNlbnQoKSwgMjAwMDAgKyAyMDAwMCAtIDE3MTAwLCAxKTsKKyAgICBFWFBFQ1RfTkVBUihvY2Ns
dWRlZC5vdmVyZHJhd01ldHJpY3MoKS5waXhlbHNDdWxsZWQoKSwgMCwgMSk7CisKICAgICAvLyBJ
ZiB3ZSBwYWludCBhZ2FpbiB3aXRob3V0IGludmFsaWRhdGluZywgdGhlIHNhbWUgc3R1ZmYgc2hv
dWxkIGJlIG9wYXF1ZS4KICAgICBsYXllci0+ZmFrZUxheWVyVGV4dHVyZVVwZGF0ZXIoKS0+c2V0
T3BhcXVlUGFpbnRSZWN0KEludFJlY3QoKSk7Ci0gICAgbGF5ZXItPnByZXBhcmVUb1VwZGF0ZShj
b250ZW50Qm91bmRzLCAwKTsKKyAgICBsYXllci0+cHJlcGFyZVRvVXBkYXRlKGNvbnRlbnRCb3Vu
ZHMsICZvY2NsdWRlZCk7CiAgICAgb3BhcXVlQ29udGVudHMgPSBsYXllci0+b3BhcXVlQ29udGVu
dHNSZWdpb24oKTsKICAgICBFWFBFQ1RfRVFfUkVDVChpbnRlcnNlY3Rpb24ob3BhcXVlUGFpbnRS
ZWN0LCB2aXNpYmxlQm91bmRzKSwgb3BhcXVlQ29udGVudHMuYm91bmRzKCkpOwogICAgIEVYUEVD
VF9FUSgxdSwgb3BhcXVlQ29udGVudHMucmVjdHMoKS5zaXplKCkpOwogCisgICAgRVhQRUNUX05F
QVIob2NjbHVkZWQub3ZlcmRyYXdNZXRyaWNzKCkucGl4ZWxzRHJhd25PcGFxdWUoKSwgMTcxMDAs
IDEpOworICAgIEVYUEVDVF9ORUFSKG9jY2x1ZGVkLm92ZXJkcmF3TWV0cmljcygpLnBpeGVsc0Ry
YXduVHJhbnNsdWNlbnQoKSwgMjAwMDAgKyAyMDAwMCAtIDE3MTAwLCAxKTsKKyAgICBFWFBFQ1Rf
TkVBUihvY2NsdWRlZC5vdmVyZHJhd01ldHJpY3MoKS5waXhlbHNDdWxsZWQoKSwgMCwgMSk7CisK
ICAgICAvLyBJZiB3ZSByZXBhaW50IGEgbm9uLW9wYXF1ZSBwYXJ0IG9mIHRoZSB0aWxlLCB0aGVu
IGl0IHNob3VsZG4ndCBsb3NlIGl0cyBvcGFxdWUtbmVzcy4gQW5kIG90aGVyIHRpbGVzIHNob3Vs
ZAogICAgIC8vIG5vdCBiZSBhZmZlY3RlZC4KICAgICBsYXllci0+ZmFrZUxheWVyVGV4dHVyZVVw
ZGF0ZXIoKS0+c2V0T3BhcXVlUGFpbnRSZWN0KEludFJlY3QoKSk7CiAgICAgbGF5ZXItPmludmFs
aWRhdGVSZWN0KEludFJlY3QoMCwgMCwgMSwgMSkpOwotICAgIGxheWVyLT5wcmVwYXJlVG9VcGRh
dGUoY29udGVudEJvdW5kcywgMCk7CisgICAgbGF5ZXItPnByZXBhcmVUb1VwZGF0ZShjb250ZW50
Qm91bmRzLCAmb2NjbHVkZWQpOwogICAgIG9wYXF1ZUNvbnRlbnRzID0gbGF5ZXItPm9wYXF1ZUNv
bnRlbnRzUmVnaW9uKCk7CiAgICAgRVhQRUNUX0VRX1JFQ1QoaW50ZXJzZWN0aW9uKG9wYXF1ZVBh
aW50UmVjdCwgdmlzaWJsZUJvdW5kcyksIG9wYXF1ZUNvbnRlbnRzLmJvdW5kcygpKTsKICAgICBF
WFBFQ1RfRVEoMXUsIG9wYXF1ZUNvbnRlbnRzLnJlY3RzKCkuc2l6ZSgpKTsKIAorICAgIEVYUEVD
VF9ORUFSKG9jY2x1ZGVkLm92ZXJkcmF3TWV0cmljcygpLnBpeGVsc0RyYXduT3BhcXVlKCksIDE3
MTAwLCAxKTsKKyAgICBFWFBFQ1RfTkVBUihvY2NsdWRlZC5vdmVyZHJhd01ldHJpY3MoKS5waXhl
bHNEcmF3blRyYW5zbHVjZW50KCksIDIwMDAwICsgMjAwMDAgLSAxNzEwMCArIDEsIDEpOworICAg
IEVYUEVDVF9ORUFSKG9jY2x1ZGVkLm92ZXJkcmF3TWV0cmljcygpLnBpeGVsc0N1bGxlZCgpLCAw
LCAxKTsKKwogICAgIC8vIElmIHdlIHJlcGFpbnQgYW4gb3BhcXVlIHBhcnQgb2YgdGhlIHRpbGUs
IHRoZW4gaXQgc2hvdWxkIGxvc2UgaXRzIG9wYXF1ZS1uZXNzLiBCdXQgb3RoZXIgdGlsZXMgc2hv
dWxkIHN0aWxsCiAgICAgLy8gbm90IGJlIGFmZmVjdGVkLgogICAgIGxheWVyLT5mYWtlTGF5ZXJU
ZXh0dXJlVXBkYXRlcigpLT5zZXRPcGFxdWVQYWludFJlY3QoSW50UmVjdCgpKTsKICAgICBsYXll
ci0+aW52YWxpZGF0ZVJlY3QoSW50UmVjdCgxMCwgMTAsIDEsIDEpKTsKLSAgICBsYXllci0+cHJl
cGFyZVRvVXBkYXRlKGNvbnRlbnRCb3VuZHMsIDApOworICAgIGxheWVyLT5wcmVwYXJlVG9VcGRh
dGUoY29udGVudEJvdW5kcywgJm9jY2x1ZGVkKTsKICAgICBvcGFxdWVDb250ZW50cyA9IGxheWVy
LT5vcGFxdWVDb250ZW50c1JlZ2lvbigpOwogICAgIEVYUEVDVF9FUV9SRUNUKGludGVyc2VjdGlv
bihJbnRSZWN0KDEwLCAxMDAsIDkwLCAxMDApLCB2aXNpYmxlQm91bmRzKSwgb3BhcXVlQ29udGVu
dHMuYm91bmRzKCkpOwogICAgIEVYUEVDVF9FUSgxdSwgb3BhcXVlQ29udGVudHMucmVjdHMoKS5z
aXplKCkpOworCisgICAgRVhQRUNUX05FQVIob2NjbHVkZWQub3ZlcmRyYXdNZXRyaWNzKCkucGl4
ZWxzRHJhd25PcGFxdWUoKSwgMTcxMDAsIDEpOworICAgIEVYUEVDVF9ORUFSKG9jY2x1ZGVkLm92
ZXJkcmF3TWV0cmljcygpLnBpeGVsc0RyYXduVHJhbnNsdWNlbnQoKSwgMjAwMDAgKyAyMDAwMCAt
IDE3MTAwICsgMSArIDEsIDEpOworICAgIEVYUEVDVF9ORUFSKG9jY2x1ZGVkLm92ZXJkcmF3TWV0
cmljcygpLnBpeGVsc0N1bGxlZCgpLCAwLCAxKTsKIH0KIAogfSAvLyBuYW1lc3BhY2UK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>132281</attachid>
            <date>2012-03-16 07:36:32 -0700</date>
            <delta_ts>2012-03-16 10:14:46 -0700</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-81175-20120316103631.patch</filename>
            <type>text/plain</type>
            <size>21975</size>
            <attacher name="Dana Jansens">danakj</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTExMDA0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZjE4MDRkN2E3Mzc5ZjFi
OTc3OTBkZjE3MWMzZGRkZDdiMDQyODJhMi4uODgxNzQwYWFiNTBhODMyYzczYjU1NmFiYjZmMjk1
OTIzNTEyMWI2YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI3IEBACisyMDEyLTAzLTE1ICBEYW5h
IEphbnNlbnMgIDxkYW5ha2pAY2hyb21pdW0ub3JnPgorCisgICAgICAgIFtjaHJvbWl1bV0gQWRk
IG92ZXJkcmF3IG1ldHJpY3MgZm9yIHRleHR1cmUgdXBsb2FkcworICAgICAgICBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9ODExNzUKKworICAgICAgICBSZXZpZXdlZCBi
eSBBZHJpZW5uZSBXYWxrZXIuCisKKyAgICAgICAgUmVjb3JkIHRleHR1cmUgdXBsb2FkIG1ldHJp
Y3MgZHVyaW5nIHBhaW50LiBUbyBwcm9wZXJseSByZWNvcmQKKyAgICAgICAgdGhlIGFtb3VudCBv
ZiBwaXhlbHMgY3VsbGVkLCB3ZSBtdXN0IGNvbXB1dGUgdGhlIGFtb3VudCBvZiBwaXhlbHMgd2UK
KyAgICAgICAgd291bGQgaGF2ZSB1cGxvYWRlZCBmb3IgYSB0aWxlLiBUaGlzIHJlcXVpcmVzIGtu
b3dpbmcgdGhlIGRpcnR5IHJlY3Qgb2YKKyAgICAgICAgdGhlIHRpbGUsIGJ1dCB0aGUgZGlydHkg
cmVjdCBjYW4gYmUgY2hhbmdlZCBieSBXZWJLaXQgZHVyaW5nIGEgcGFpbnQsIHNvCisgICAgICAg
IHdlIGFsd2F5cyBzdG9yZSB0aGUgZGlydHlSZWN0IGluIHRoZSB0aWxlJ3MgdXBkYXRlUmVjdC4g
V2UgYWRkIGFuCisgICAgICAgIG1fdXBkYXRlQ3VsbGVkIGJvb2wgdG8gdGhlIFVwZGF0YWJsZVRp
bGUgc3RydWN0dXJlLCB0byBpZGVudGlmeSB0aWxlcworICAgICAgICB0aGF0IHdlcmUgbm90IHVw
ZGF0ZWQsIGFuZCBrbm93IGEgdGlsZSB3YXMgdXBkYXRlZCBpZiB1cGRhdGVSZWN0IGlzIG5vdAor
ICAgICAgICBlbXB0eSBhbmQgdXBkYXRlQ3VsbGVkIGlzIGZhbHNlLgorCisgICAgICAgIFRlc3Rl
ZCBieSBhbGwgVGlsZWRMYXllckNocm9taXVtVGVzdHMgdGhhdCB1c2Ugb2NjbHVzaW9uIHRyYWNr
ZXIuCisKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9UaWxlZExheWVyQ2hy
b21pdW0uY3BwOgorICAgICAgICAoVXBkYXRhYmxlVGlsZSk6CisgICAgICAgIChXZWJDb3JlOjpU
aWxlZExheWVyQ2hyb21pdW06OnByZXBhcmVUb1VwZGF0ZVRpbGVzKToKKyAgICAgICAgKiBwbGF0
Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9jYy9DQ0xheWVyVHJlZUhvc3QuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6Q0NMYXllclRyZWVIb3N0OjpwYWludExheWVyQ29udGVudHMpOgorCiAyMDEyLTAz
LTE2ICBLZW50YXJvIEhhcmEgIDxoYXJha2VuQGNocm9taXVtLm9yZz4KIAogICAgICAgICBUaGUg
SURMIHBhcnNlciBzaG91bGQgc3VwcG9ydCBzZXF1ZW5jZTxUPiB0eXBlCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0v
Q2hhbmdlTG9nCmluZGV4IGNkNjhiMWUyMzZiOTk1YmRjZGI4YTJlMGMzNjBiNGQ4YTUzOGVkZjUu
LmVmNGJhMzM5ZmZhZmRjODVmZDNhNjBmOGExMTcyM2VjMDhhNGVlN2IgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21p
dW0vQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTMgQEAKKzIwMTItMDMtMTUgIERhbmEgSmFuc2VucyAg
PGRhbmFrakBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgW2Nocm9taXVtXSBBZGQgb3ZlcmRyYXcg
bWV0cmljcyBmb3IgdGV4dHVyZSB1cGxvYWRzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD04MTE3NQorCisgICAgICAgIFJldmlld2VkIGJ5IEFkcmllbm5l
IFdhbGtlci4KKworICAgICAgICAqIHRlc3RzL1RpbGVkTGF5ZXJDaHJvbWl1bVRlc3QuY3BwOgor
ICAgICAgICAoV1RGOjpURVNUKToKKwogMjAxMi0wMy0xNiAgSWFuIFZvbGxpY2sgIDx2b2xsaWNr
QGNocm9taXVtLm9yZz4KIAogICAgICAgICBbY2hyb21pdW1dIFRocmVhZGVkIG9wYWNpdHkgYW5p
bWF0aW9uIGp1bXAgdG8gb3BhY2l0eSBvZiAwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9UaWxlZExheWVyQ2hyb21pdW0uY3BwIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vVGlsZWRMYXllckNocm9taXVtLmNw
cAppbmRleCA4NTNkNjc1NGNhYTU5YjdiZTI4MTM5MzI4OWVkN2QwMGNkMzQ5MjU2Li5mN2E0MDA4
NjIxYmE0NmY2ZTg0YTJkNzk4ZTFhMjg3NDhlNDFjOTNlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9UaWxlZExheWVyQ2hyb21pdW0uY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL1RpbGVkTGF5ZXJD
aHJvbWl1bS5jcHAKQEAgLTYzLDE5ICs2MywxOCBAQCBwdWJsaWM6CiAgICAgTWFuYWdlZFRleHR1
cmUqIG1hbmFnZWRUZXh0dXJlKCkgeyByZXR1cm4gbV90ZXh0dXJlLT50ZXh0dXJlKCk7IH0KIAog
ICAgIGJvb2wgaXNEaXJ0eSgpIGNvbnN0IHsgcmV0dXJuICFtX2RpcnR5UmVjdC5pc0VtcHR5KCk7
IH0KLSAgICB2b2lkIGNvcHlBbmRDbGVhckRpcnR5KCkKLSAgICB7Ci0gICAgICAgIG1fdXBkYXRl
UmVjdCA9IG1fZGlydHlSZWN0OwotICAgICAgICBtX2RpcnR5UmVjdCA9IEludFJlY3QoKTsKLSAg
ICB9Ci0gICAgYm9vbCBpc0RpcnR5Rm9yQ3VycmVudEZyYW1lKCkgeyByZXR1cm4gIW1fZGlydHlS
ZWN0LmlzRW1wdHkoKSAmJiBtX3VwZGF0ZVJlY3QuaXNFbXB0eSgpOyB9CisgICAgLy8gUmV0dXJu
cyB3aGV0aGVyIHRoZSBsYXllciB3YXMgZGlydHkgYW5kIG5vdCB1cGRhdGVkIGluIHRoZSBjdXJy
ZW50IGZyYW1lLiBGb3IgdGlsZXMgdGhhdCB3ZXJlIG5vdCBjdWxsZWQsIHRoZQorICAgIC8vIHVw
ZGF0ZVJlY3QgaG9sZHMgdGhlIGFyZWEgb2YgdGhlIHRpbGUgdGhhdCB3YXMgdXBkYXRlZC4gT3Ro
ZXJ3aXNlLCB0aGUgYXJlYSB0aGF0IHdvdWxkIGhhdmUgYmVlbiB1cGRhdGVkLgorICAgIGJvb2wg
aXNEaXJ0eUZvckN1cnJlbnRGcmFtZSgpIHsgcmV0dXJuICFtX2RpcnR5UmVjdC5pc0VtcHR5KCkg
JiYgKG1fdXBkYXRlUmVjdC5pc0VtcHR5KCkgfHwgbV91cGRhdGVDdWxsZWQpOyB9CiAKICAgICBJ
bnRSZWN0IG1fZGlydHlSZWN0OwogICAgIEludFJlY3QgbV91cGRhdGVSZWN0OwogICAgIGJvb2wg
bV9wYXJ0aWFsVXBkYXRlOworICAgIGJvb2wgbV91cGRhdGVDdWxsZWQ7CiBwcml2YXRlOgogICAg
IGV4cGxpY2l0IFVwZGF0YWJsZVRpbGUoUGFzc093blB0cjxMYXllclRleHR1cmVVcGRhdGVyOjpU
ZXh0dXJlPiB0ZXh0dXJlKQogICAgICAgICA6IG1fcGFydGlhbFVwZGF0ZShmYWxzZSkKKyAgICAg
ICAgLCBtX3VwZGF0ZUN1bGxlZChmYWxzZSkKICAgICAgICAgLCBtX3RleHR1cmUodGV4dHVyZSkK
ICAgICB7CiAgICAgfQpAQCAtMTk2LDYgKzE5NSw5IEBAIHZvaWQgVGlsZWRMYXllckNocm9taXVt
Ojp1cGRhdGVDb21wb3NpdG9yUmVzb3VyY2VzKEdyYXBoaWNzQ29udGV4dDNEKiwgQ0NUZXh0dXJl
CiAgICAgICAgICAgICBpZiAoIXRpbGUpCiAgICAgICAgICAgICAgICAgQ1JBU0goKTsKIAorICAg
ICAgICAgICAgaWYgKHRpbGUtPm1fdXBkYXRlQ3VsbGVkKQorICAgICAgICAgICAgICAgIGNvbnRp
bnVlOworCiAgICAgICAgICAgICBJbnRSZWN0IHNvdXJjZVJlY3QgPSB0aWxlLT5tX3VwZGF0ZVJl
Y3Q7CiAgICAgICAgICAgICBpZiAodGlsZS0+bV91cGRhdGVSZWN0LmlzRW1wdHkoKSkKICAgICAg
ICAgICAgICAgICBjb250aW51ZTsKQEAgLTQxMiwxMyArNDE0LDE3IEBAIHZvaWQgVGlsZWRMYXll
ckNocm9taXVtOjpwcmVwYXJlVG9VcGRhdGVUaWxlcyhib29sIGlkbGUsIGludCBsZWZ0LCBpbnQg
dG9wLCBpbnQKICAgICAgICAgICAgIGlmICghdGlsZSkKICAgICAgICAgICAgICAgICB0aWxlID0g
Y3JlYXRlVGlsZShpLCBqKTsKIAotICAgICAgICAgICAgLy8gV2hlbiBub3QgaWRsZSBwYWludGlu
ZywgaWYgdGhlIHZpc2libGUgcmVnaW9uIG9mIHRoZSB0aWxlIGlzIG9jY2x1ZGVkLCBkb24ndCBy
ZXNlcnZlIGEgdGV4dHVyZSBvciBtYXJrIGl0IGZvciB1cGRhdGUuCi0gICAgICAgICAgICAvLyBJ
ZiBhbnkgcGFydCBvZiB0aGUgdGlsZSBpcyB2aXNpYmxlLCB0aGVuIHdlIG5lZWQgdG8gcGFpbnQg
aXQgc28gdGhlIHRpbGUgaXMgcHVzaGVkIHRvIHRoZSBpbXBsIHRocmVhZC4KLSAgICAgICAgICAg
IC8vIFRoaXMgd2lsbCBhbHNvIGF2b2lkIHBhaW50aW5nIHRoZSB0aWxlIGluIHRoZSBuZXh0IGxv
b3AsIGJlbG93LgorICAgICAgICAgICAgLy8gU2F2ZSB0aGUgZGlydHkgcmVjdCBzaW5jZSBXZWJL
aXQgY2FuIGNoYW5nZSB0aGUgdGlsZSdzIGRpcnR5IHJlY3QgZHVyaW5nIHBhaW50aW5nLgorICAg
ICAgICAgICAgdGlsZS0+bV91cGRhdGVSZWN0ID0gdGlsZS0+bV9kaXJ0eVJlY3Q7CisKKyAgICAg
ICAgICAgIC8vIFdoZW4gbm90IGlkbGUgcGFpbnRpbmcsIGlmIHRoZSB2aXNpYmxlIHJlZ2lvbiBv
ZiB0aGUgdGlsZSBpcyBvY2NsdWRlZCwgZG9uJ3QgcmVzZXJ2ZSBhIHRleHR1cmUgb3IgdXBkYXRl
IHRoZSB0aWxlLgorICAgICAgICAgICAgLy8gSWYgYW55IHBhcnQgb2YgdGhlIHRpbGUgaXMgdmlz
aWJsZSwgdGhlbiB3ZSBuZWVkIHRvIHVwZGF0ZSBpdCBzbyB0aGUgdGlsZSBpcyBwdXNoZWQgdG8g
dGhlIGltcGwgdGhyZWFkLgogICAgICAgICAgICAgaWYgKCFpZGxlICYmIG9jY2x1c2lvbikgewog
ICAgICAgICAgICAgICAgIEludFJlY3QgdmlzaWJsZVRpbGVSZWN0ID0gaW50ZXJzZWN0aW9uKG1f
dGlsZXItPnRpbGVCb3VuZHMoaSwgaiksIHZpc2libGVMYXllclJlY3QoKSk7Ci0gICAgICAgICAg
ICAgICAgaWYgKG9jY2x1c2lvbi0+b2NjbHVkZWQodGhpcywgdmlzaWJsZVRpbGVSZWN0KSkKKyAg
ICAgICAgICAgICAgICBpZiAob2NjbHVzaW9uLT5vY2NsdWRlZCh0aGlzLCB2aXNpYmxlVGlsZVJl
Y3QpKSB7CisgICAgICAgICAgICAgICAgICAgIHRpbGUtPm1fdXBkYXRlQ3VsbGVkID0gdHJ1ZTsK
ICAgICAgICAgICAgICAgICAgICAgY29udGludWU7CisgICAgICAgICAgICAgICAgfQogICAgICAg
ICAgICAgfQogCiAgICAgICAgICAgICAvLyBGSVhNRTogRGVjaWRlIGlmIHBhcnRpYWwgdXBkYXRl
IHNob3VsZCBiZSBhbGxvd2VkIGJhc2VkIG9uIGNvc3QKQEAgLTQ0OCw3ICs0NTQsOCBAQCB2b2lk
IFRpbGVkTGF5ZXJDaHJvbWl1bTo6cHJlcGFyZVRvVXBkYXRlVGlsZXMoYm9vbCBpZGxlLCBpbnQg
bGVmdCwgaW50IHRvcCwgaW50CiAgICAgICAgICAgICB9CiAKICAgICAgICAgICAgIGRpcnR5TGF5
ZXJSZWN0LnVuaXRlKHRpbGUtPm1fZGlydHlSZWN0KTsKLSAgICAgICAgICAgIHRpbGUtPmNvcHlB
bmRDbGVhckRpcnR5KCk7CisgICAgICAgICAgICAvLyBDbGVhciB0aGUgZGlydHkgcmVjdC4KKyAg
ICAgICAgICAgIHRpbGUtPm1fZGlydHlSZWN0ID0gSW50UmVjdCgpOwogICAgICAgICB9CiAgICAg
fQogCkBAIC00NzksMTEgKzQ4NiwyMyBAQCB2b2lkIFRpbGVkTGF5ZXJDaHJvbWl1bTo6cHJlcGFy
ZVRvVXBkYXRlVGlsZXMoYm9vbCBpZGxlLCBpbnQgbGVmdCwgaW50IHRvcCwgaW50CiAKICAgICAg
ICAgICAgIEludFJlY3QgdGlsZVJlY3QgPSBtX3RpbGVyLT50aWxlQm91bmRzKGksIGopOwogCi0g
ICAgICAgICAgICAvLyBVc2UgbV91cGRhdGVSZWN0IGFzIGNvcHlBbmRDbGVhckRpcnR5IGFib3Zl
IG1vdmVkIHRoZSBleGlzdGluZyBkaXJ0eSByZWN0IHRvIG1fdXBkYXRlUmVjdCBpZiB0aGUgdGls
ZSBpc24ndCBjdWxsZWQuCisgICAgICAgICAgICAvLyBVc2UgbV91cGRhdGVSZWN0IGFzIHRoZSBh
Ym92ZSBsb29wIGNvcGllZCB0aGUgZGlydHkgcmVjdCBmb3IgdGhpcyBmcmFtZSB0byBtX3VwZGF0
ZVJlY3QuCiAgICAgICAgICAgICBjb25zdCBJbnRSZWN0JiBkaXJ0eVJlY3QgPSB0aWxlLT5tX3Vw
ZGF0ZVJlY3Q7CiAgICAgICAgICAgICBpZiAoZGlydHlSZWN0LmlzRW1wdHkoKSkKICAgICAgICAg
ICAgICAgICBjb250aW51ZTsKIAorICAgICAgICAgICAgLy8gc291cmNlUmVjdCBzdGFydHMgYXMg
YSBmdWxsLXNpemVkIHRpbGUgd2l0aCBib3JkZXIgdGV4ZWxzIGluY2x1ZGVkLgorICAgICAgICAg
ICAgSW50UmVjdCBzb3VyY2VSZWN0ID0gbV90aWxlci0+dGlsZVJlY3QodGlsZSk7CisgICAgICAg
ICAgICBzb3VyY2VSZWN0LmludGVyc2VjdChkaXJ0eVJlY3QpOworICAgICAgICAgICAgLy8gUGFp
bnQgcmVjdCBub3QgZ3VhcmFudGVlZCB0byBsaW5lIHVwIG9uIHRpbGUgYm91bmRhcmllcywgc28K
KyAgICAgICAgICAgIC8vIG1ha2Ugc3VyZSB0aGF0IHNvdXJjZVJlY3QgZG9lc24ndCBleHRlbmQg
b3V0c2lkZSBvZiBpdC4KKyAgICAgICAgICAgIHNvdXJjZVJlY3QuaW50ZXJzZWN0KG1fcGFpbnRS
ZWN0KTsKKworICAgICAgICAgICAgaWYgKHRpbGUtPm1fdXBkYXRlQ3VsbGVkICYmIG9jY2x1c2lv
bikgeworICAgICAgICAgICAgICAgIG9jY2x1c2lvbi0+b3ZlcmRyYXdNZXRyaWNzKCkuZGlkQ3Vs
bChUcmFuc2Zvcm1hdGlvbk1hdHJpeCgpLCBzb3VyY2VSZWN0LCBJbnRSZWN0KCkpOworICAgICAg
ICAgICAgICAgIGNvbnRpbnVlOworICAgICAgICAgICAgfQorCiAgICAgICAgICAgICAvLyBTYXZl
IHdoYXQgd2FzIHBhaW50ZWQgb3BhcXVlIGluIHRoZSB0aWxlLiBLZWVwIHRoZSBvbGQgYXJlYSBp
ZiB0aGUgcGFpbnQgZGlkbid0IHRvdWNoIGl0LCBhbmQgZGlkbid0IHBhaW50IHNvbWUKICAgICAg
ICAgICAgIC8vIG90aGVyIHBhcnQgb2YgdGhlIHRpbGUgb3BhcXVlLgogICAgICAgICAgICAgSW50
UmVjdCB0aWxlUGFpbnRlZFJlY3QgPSBpbnRlcnNlY3Rpb24odGlsZVJlY3QsIG1fcGFpbnRSZWN0
KTsKQEAgLTQ5NywxOCArNTE2LDEzIEBAIHZvaWQgVGlsZWRMYXllckNocm9taXVtOjpwcmVwYXJl
VG9VcGRhdGVUaWxlcyhib29sIGlkbGUsIGludCBsZWZ0LCBpbnQgdG9wLCBpbnQKICAgICAgICAg
ICAgICAgICAgICAgdGlsZS0+c2V0T3BhcXVlUmVjdCh0aWxlUGFpbnRlZE9wYXF1ZVJlY3QpOwog
ICAgICAgICAgICAgfQogCi0gICAgICAgICAgICAvLyBzb3VyY2VSZWN0IHN0YXJ0cyBhcyBhIGZ1
bGwtc2l6ZWQgdGlsZSB3aXRoIGJvcmRlciB0ZXhlbHMgaW5jbHVkZWQuCi0gICAgICAgICAgICBJ
bnRSZWN0IHNvdXJjZVJlY3QgPSBtX3RpbGVyLT50aWxlUmVjdCh0aWxlKTsKLSAgICAgICAgICAg
IHNvdXJjZVJlY3QuaW50ZXJzZWN0KGRpcnR5UmVjdCk7Ci0gICAgICAgICAgICAvLyBQYWludCBy
ZWN0IG5vdCBndWFyYW50ZWVkIHRvIGxpbmUgdXAgb24gdGlsZSBib3VuZGFyaWVzLCBzbwotICAg
ICAgICAgICAgLy8gbWFrZSBzdXJlIHRoYXQgc291cmNlUmVjdCBkb2Vzbid0IGV4dGVuZCBvdXRz
aWRlIG9mIGl0LgotICAgICAgICAgICAgc291cmNlUmVjdC5pbnRlcnNlY3QobV9wYWludFJlY3Qp
OwotCiAgICAgICAgICAgICB0aWxlLT5tX3VwZGF0ZVJlY3QgPSBzb3VyY2VSZWN0OwogICAgICAg
ICAgICAgaWYgKHNvdXJjZVJlY3QuaXNFbXB0eSgpKQogICAgICAgICAgICAgICAgIGNvbnRpbnVl
OwogCiAgICAgICAgICAgICB0aWxlLT50ZXh0dXJlKCktPnByZXBhcmVSZWN0KHNvdXJjZVJlY3Qp
OworICAgICAgICAgICAgaWYgKG9jY2x1c2lvbikKKyAgICAgICAgICAgICAgICBvY2NsdXNpb24t
Pm92ZXJkcmF3TWV0cmljcygpLmRpZERyYXcoVHJhbnNmb3JtYXRpb25NYXRyaXgoKSwgc291cmNl
UmVjdCwgdGlsZS0+b3BhcXVlUmVjdCgpKTsKICAgICAgICAgfQogICAgIH0KIH0KQEAgLTU1Niw2
ICs1NzAsNyBAQCB2b2lkIFRpbGVkTGF5ZXJDaHJvbWl1bTo6cmVzZXRVcGRhdGVTdGF0ZSgpCiAg
ICAgICAgIFVwZGF0YWJsZVRpbGUqIHRpbGUgPSBzdGF0aWNfY2FzdDxVcGRhdGFibGVUaWxlKj4o
aXRlci0+c2Vjb25kLmdldCgpKTsKICAgICAgICAgdGlsZS0+bV91cGRhdGVSZWN0ID0gSW50UmVj
dCgpOwogICAgICAgICB0aWxlLT5tX3BhcnRpYWxVcGRhdGUgPSBmYWxzZTsKKyAgICAgICAgdGls
ZS0+bV91cGRhdGVDdWxsZWQgPSBmYWxzZTsKICAgICB9CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL2NjL0NDTGF5ZXJUcmVlSG9zdC5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9jYy9DQ0xheWVy
VHJlZUhvc3QuY3BwCmluZGV4IDA4MzFjY2Y3YWZiN2YwNGZjZjBkMWI5NDYzNDVlMjc4Zjg2N2Vh
OTcuLjAxNzgyMGE3YzcwZTFiOTNmYzYyYTRkZjQ3NjY0NTI4Njk3MDM1YTEgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL2NjL0NDTGF5ZXJUcmVl
SG9zdC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0v
Y2MvQ0NMYXllclRyZWVIb3N0LmNwcApAQCAtNTU3LDYgKzU1Nyw4IEBAIHZvaWQgQ0NMYXllclRy
ZWVIb3N0OjpwYWludExheWVyQ29udGVudHMoY29uc3QgTGF5ZXJMaXN0JiByZW5kZXJTdXJmYWNl
TGF5ZXJMaXN0CiAgICAgICAgIH0gZWxzZQogICAgICAgICAgICAgb2NjbHVzaW9uVHJhY2tlci5s
ZWF2ZVRvVGFyZ2V0UmVuZGVyU3VyZmFjZShpdC50YXJnZXRSZW5kZXJTdXJmYWNlTGF5ZXIoKS0+
cmVuZGVyU3VyZmFjZSgpKTsKICAgICB9CisKKyAgICBvY2NsdXNpb25UcmFja2VyLm92ZXJkcmF3
TWV0cmljcygpLnJlY29yZE1ldHJpY3ModGhpcyk7CiB9CiAKIHZvaWQgQ0NMYXllclRyZWVIb3N0
Ojp1cGRhdGVDb21wb3NpdG9yUmVzb3VyY2VzKEdyYXBoaWNzQ29udGV4dDNEKiBjb250ZXh0LCBD
Q1RleHR1cmVVcGRhdGVyJiB1cGRhdGVyKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJv
bWl1bS90ZXN0cy9UaWxlZExheWVyQ2hyb21pdW1UZXN0LmNwcCBiL1NvdXJjZS9XZWJLaXQvY2hy
b21pdW0vdGVzdHMvVGlsZWRMYXllckNocm9taXVtVGVzdC5jcHAKaW5kZXggMDdjZWFhZTg4ZDc1
Nzc3YjYzNjNjN2E3NGM5YmEwYzg5MzRiODBjMi4uN2VlYmI5NzE0Njg2YWVlMTEzYmUwMmZhYWU4
NTZlNTIwYTY1YzE4YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS90ZXN0cy9U
aWxlZExheWVyQ2hyb21pdW1UZXN0LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3Rl
c3RzL1RpbGVkTGF5ZXJDaHJvbWl1bVRlc3QuY3BwCkBAIC0zMDgsNiArMzA4LDEwIEBAIFRFU1Qo
VGlsZWRMYXllckNocm9taXVtVGVzdCwgcHVzaE9jY2x1ZGVkRGlydHlUaWxlcykKICAgICBsYXll
ci0+dXBkYXRlQ29tcG9zaXRvclJlc291cmNlcygwLCB1cGRhdGVyKTsKICAgICBsYXllci0+cHVz
aFByb3BlcnRpZXNUbyhsYXllckltcGwuZ2V0KCkpOwogCisgICAgRVhQRUNUX05FQVIob2NjbHVk
ZWQub3ZlcmRyYXdNZXRyaWNzKCkucGl4ZWxzRHJhd25PcGFxdWUoKSwgMCwgMSk7CisgICAgRVhQ
RUNUX05FQVIob2NjbHVkZWQub3ZlcmRyYXdNZXRyaWNzKCkucGl4ZWxzRHJhd25UcmFuc2x1Y2Vu
dCgpLCAyMDAwMCwgMSk7CisgICAgRVhQRUNUX05FQVIob2NjbHVkZWQub3ZlcmRyYXdNZXRyaWNz
KCkucGl4ZWxzQ3VsbGVkKCksIDAsIDEpOworCiAgICAgLy8gV2Ugc2hvdWxkIGhhdmUgYm90aCB0
aWxlcyBvbiB0aGUgaW1wbCBzaWRlLgogICAgIEVYUEVDVF9UUlVFKGxheWVySW1wbC0+aGFzVGls
ZUF0KDAsIDApKTsKICAgICBFWFBFQ1RfVFJVRShsYXllckltcGwtPmhhc1RpbGVBdCgwLCAxKSk7
CkBAIC0zMjIsNiArMzI2LDEwIEBAIFRFU1QoVGlsZWRMYXllckNocm9taXVtVGVzdCwgcHVzaE9j
Y2x1ZGVkRGlydHlUaWxlcykKICAgICBsYXllci0+dXBkYXRlQ29tcG9zaXRvclJlc291cmNlcygw
LCB1cGRhdGVyKTsKICAgICBsYXllci0+cHVzaFByb3BlcnRpZXNUbyhsYXllckltcGwuZ2V0KCkp
OwogCisgICAgRVhQRUNUX05FQVIob2NjbHVkZWQub3ZlcmRyYXdNZXRyaWNzKCkucGl4ZWxzRHJh
d25PcGFxdWUoKSwgMCwgMSk7CisgICAgRVhQRUNUX05FQVIob2NjbHVkZWQub3ZlcmRyYXdNZXRy
aWNzKCkucGl4ZWxzRHJhd25UcmFuc2x1Y2VudCgpLCAyMDAwMCArIDI1MDAsIDEpOworICAgIEVY
UEVDVF9ORUFSKG9jY2x1ZGVkLm92ZXJkcmF3TWV0cmljcygpLnBpeGVsc0N1bGxlZCgpLCAwLCAx
KTsKKwogICAgIC8vIFdlIHNob3VsZCBzdGlsbCBoYXZlIGJvdGggdGlsZXMsIGFzIHBhcnQgb2Yg
dGhlIHRvcCB0aWxlIGlzIHN0aWxsIHVub2NjbHVkZWQuCiAgICAgRVhQRUNUX1RSVUUobGF5ZXJJ
bXBsLT5oYXNUaWxlQXQoMCwgMCkpOwogICAgIEVYUEVDVF9UUlVFKGxheWVySW1wbC0+aGFzVGls
ZUF0KDAsIDEpKTsKQEAgLTgyNCw2ICs4MzIsMTAgQEAgVEVTVChUaWxlZExheWVyQ2hyb21pdW1U
ZXN0LCB0aWxlc1BhaW50ZWRXaXRoT2NjbHVzaW9uKQogICAgIGxheWVyLT5wcmVwYXJlVG9VcGRh
dGUoSW50UmVjdCgwLCAwLCA2MDAsIDYwMCksICZvY2NsdWRlZCk7CiAgICAgRVhQRUNUX0VRKDM2
LTMsIGxheWVyLT5mYWtlTGF5ZXJUZXh0dXJlVXBkYXRlcigpLT5wcmVwYXJlUmVjdENvdW50KCkp
OwogCisgICAgRVhQRUNUX05FQVIob2NjbHVkZWQub3ZlcmRyYXdNZXRyaWNzKCkucGl4ZWxzRHJh
d25PcGFxdWUoKSwgMCwgMSk7CisgICAgRVhQRUNUX05FQVIob2NjbHVkZWQub3ZlcmRyYXdNZXRy
aWNzKCkucGl4ZWxzRHJhd25UcmFuc2x1Y2VudCgpLCAzMzAwMDAsIDEpOworICAgIEVYUEVDVF9O
RUFSKG9jY2x1ZGVkLm92ZXJkcmF3TWV0cmljcygpLnBpeGVsc0N1bGxlZCgpLCAzMDAwMCwgMSk7
CisKICAgICBsYXllci0+ZmFrZUxheWVyVGV4dHVyZVVwZGF0ZXIoKS0+Y2xlYXJQcmVwYXJlUmVj
dENvdW50KCk7CiAKICAgICBvY2NsdWRlZC5zZXRPY2NsdXNpb24oSW50UmVjdCgyNTAsIDIwMCwg
MzAwLCAxMDApKTsKQEAgLTgzMSwxMiArODQzLDIwIEBAIFRFU1QoVGlsZWRMYXllckNocm9taXVt
VGVzdCwgdGlsZXNQYWludGVkV2l0aE9jY2x1c2lvbikKICAgICBsYXllci0+cHJlcGFyZVRvVXBk
YXRlKEludFJlY3QoMCwgMCwgNjAwLCA2MDApLCAmb2NjbHVkZWQpOwogICAgIEVYUEVDVF9FUSgz
Ni0yLCBsYXllci0+ZmFrZUxheWVyVGV4dHVyZVVwZGF0ZXIoKS0+cHJlcGFyZVJlY3RDb3VudCgp
KTsKIAorICAgIEVYUEVDVF9ORUFSKG9jY2x1ZGVkLm92ZXJkcmF3TWV0cmljcygpLnBpeGVsc0Ry
YXduT3BhcXVlKCksIDAsIDEpOworICAgIEVYUEVDVF9ORUFSKG9jY2x1ZGVkLm92ZXJkcmF3TWV0
cmljcygpLnBpeGVsc0RyYXduVHJhbnNsdWNlbnQoKSwgMzMwMDAwICsgMzQwMDAwLCAxKTsKKyAg
ICBFWFBFQ1RfTkVBUihvY2NsdWRlZC5vdmVyZHJhd01ldHJpY3MoKS5waXhlbHNDdWxsZWQoKSwg
MzAwMDAgKyAyMDAwMCwgMSk7CisKICAgICBsYXllci0+ZmFrZUxheWVyVGV4dHVyZVVwZGF0ZXIo
KS0+Y2xlYXJQcmVwYXJlUmVjdENvdW50KCk7CiAKICAgICBvY2NsdWRlZC5zZXRPY2NsdXNpb24o
SW50UmVjdCgyNTAsIDI1MCwgMzAwLCAxMDApKTsKICAgICBsYXllci0+aW52YWxpZGF0ZVJlY3Qo
SW50UmVjdCgwLCAwLCA2MDAsIDYwMCkpOwogICAgIGxheWVyLT5wcmVwYXJlVG9VcGRhdGUoSW50
UmVjdCgwLCAwLCA2MDAsIDYwMCksICZvY2NsdWRlZCk7CiAgICAgRVhQRUNUX0VRKDM2LCBsYXll
ci0+ZmFrZUxheWVyVGV4dHVyZVVwZGF0ZXIoKS0+cHJlcGFyZVJlY3RDb3VudCgpKTsKKworICAg
IEVYUEVDVF9ORUFSKG9jY2x1ZGVkLm92ZXJkcmF3TWV0cmljcygpLnBpeGVsc0RyYXduT3BhcXVl
KCksIDAsIDEpOworICAgIEVYUEVDVF9ORUFSKG9jY2x1ZGVkLm92ZXJkcmF3TWV0cmljcygpLnBp
eGVsc0RyYXduVHJhbnNsdWNlbnQoKSwgMzMwMDAwICsgMzQwMDAwICsgMzYwMDAwLCAxKTsKKyAg
ICBFWFBFQ1RfTkVBUihvY2NsdWRlZC5vdmVyZHJhd01ldHJpY3MoKS5waXhlbHNDdWxsZWQoKSwg
MzAwMDAgKyAyMDAwMCwgMSk7CiB9CiAKIFRFU1QoVGlsZWRMYXllckNocm9taXVtVGVzdCwgdGls
ZXNQYWludGVkV2l0aE9jY2x1c2lvbkFuZFZpc2libGl0eUNvbnN0cmFpbnRzKQpAQCAtODU3LDYg
Kzg3NywxMCBAQCBURVNUKFRpbGVkTGF5ZXJDaHJvbWl1bVRlc3QsIHRpbGVzUGFpbnRlZFdpdGhP
Y2NsdXNpb25BbmRWaXNpYmxpdHlDb25zdHJhaW50cykKICAgICBsYXllci0+cHJlcGFyZVRvVXBk
YXRlKEludFJlY3QoMCwgMCwgNjAwLCA2MDApLCAmb2NjbHVkZWQpOwogICAgIEVYUEVDVF9FUSgy
NC0zLCBsYXllci0+ZmFrZUxheWVyVGV4dHVyZVVwZGF0ZXIoKS0+cHJlcGFyZVJlY3RDb3VudCgp
KTsKIAorICAgIEVYUEVDVF9ORUFSKG9jY2x1ZGVkLm92ZXJkcmF3TWV0cmljcygpLnBpeGVsc0Ry
YXduT3BhcXVlKCksIDAsIDEpOworICAgIEVYUEVDVF9ORUFSKG9jY2x1ZGVkLm92ZXJkcmF3TWV0
cmljcygpLnBpeGVsc0RyYXduVHJhbnNsdWNlbnQoKSwgMjEwMDAwLCAxKTsKKyAgICBFWFBFQ1Rf
TkVBUihvY2NsdWRlZC5vdmVyZHJhd01ldHJpY3MoKS5waXhlbHNDdWxsZWQoKSwgMzAwMDAsIDEp
OworCiAgICAgbGF5ZXItPmZha2VMYXllclRleHR1cmVVcGRhdGVyKCktPmNsZWFyUHJlcGFyZVJl
Y3RDb3VudCgpOwogCiAgICAgLy8gTm93IHRoZSB2aXNpYmxlIHJlZ2lvbiBzdG9wcyBhdCB0aGUg
ZWRnZSBvZiB0aGUgb2NjbHVzaW9uIHNvIHRoZSBwYXJ0bHkgdmlzaWJsZSB0aWxlcyBiZWNvbWUg
ZnVsbHkgb2NjbHVkZWQuCkBAIC04NjYsNiArODkwLDEwIEBAIFRFU1QoVGlsZWRMYXllckNocm9t
aXVtVGVzdCwgdGlsZXNQYWludGVkV2l0aE9jY2x1c2lvbkFuZFZpc2libGl0eUNvbnN0cmFpbnRz
KQogICAgIGxheWVyLT5wcmVwYXJlVG9VcGRhdGUoSW50UmVjdCgwLCAwLCA2MDAsIDYwMCksICZv
Y2NsdWRlZCk7CiAgICAgRVhQRUNUX0VRKDI0LTYsIGxheWVyLT5mYWtlTGF5ZXJUZXh0dXJlVXBk
YXRlcigpLT5wcmVwYXJlUmVjdENvdW50KCkpOwogCisgICAgRVhQRUNUX05FQVIob2NjbHVkZWQu
b3ZlcmRyYXdNZXRyaWNzKCkucGl4ZWxzRHJhd25PcGFxdWUoKSwgMCwgMSk7CisgICAgRVhQRUNU
X05FQVIob2NjbHVkZWQub3ZlcmRyYXdNZXRyaWNzKCkucGl4ZWxzRHJhd25UcmFuc2x1Y2VudCgp
LCAyMTAwMDAgKyAxODAwMDAsIDEpOworICAgIEVYUEVDVF9ORUFSKG9jY2x1ZGVkLm92ZXJkcmF3
TWV0cmljcygpLnBpeGVsc0N1bGxlZCgpLCAzMDAwMCArIDYwMDAwLCAxKTsKKwogICAgIGxheWVy
LT5mYWtlTGF5ZXJUZXh0dXJlVXBkYXRlcigpLT5jbGVhclByZXBhcmVSZWN0Q291bnQoKTsKIAog
ICAgIC8vIE5vdyB0aGUgdmlzaWJsZSByZWdpb24gaXMgZXZlbiBzbWFsbGVyIHRoYW4gdGhlIG9j
Y2x1c2lvbiwgaXQgc2hvdWxkIGhhdmUgdGhlIHNhbWUgcmVzdWx0LgpAQCAtODc0LDYgKzkwMiwx
MSBAQCBURVNUKFRpbGVkTGF5ZXJDaHJvbWl1bVRlc3QsIHRpbGVzUGFpbnRlZFdpdGhPY2NsdXNp
b25BbmRWaXNpYmxpdHlDb25zdHJhaW50cykKICAgICBsYXllci0+aW52YWxpZGF0ZVJlY3QoSW50
UmVjdCgwLCAwLCA2MDAsIDYwMCkpOwogICAgIGxheWVyLT5wcmVwYXJlVG9VcGRhdGUoSW50UmVj
dCgwLCAwLCA2MDAsIDYwMCksICZvY2NsdWRlZCk7CiAgICAgRVhQRUNUX0VRKDI0LTYsIGxheWVy
LT5mYWtlTGF5ZXJUZXh0dXJlVXBkYXRlcigpLT5wcmVwYXJlUmVjdENvdW50KCkpOworCisgICAg
RVhQRUNUX05FQVIob2NjbHVkZWQub3ZlcmRyYXdNZXRyaWNzKCkucGl4ZWxzRHJhd25PcGFxdWUo
KSwgMCwgMSk7CisgICAgRVhQRUNUX05FQVIob2NjbHVkZWQub3ZlcmRyYXdNZXRyaWNzKCkucGl4
ZWxzRHJhd25UcmFuc2x1Y2VudCgpLCAyMTAwMDAgKyAxODAwMDAgKyAxODAwMDAsIDEpOworICAg
IEVYUEVDVF9ORUFSKG9jY2x1ZGVkLm92ZXJkcmF3TWV0cmljcygpLnBpeGVsc0N1bGxlZCgpLCAz
MDAwMCArIDYwMDAwICsgNjAwMDAsIDEpOworCiB9CiAKIFRFU1QoVGlsZWRMYXllckNocm9taXVt
VGVzdCwgdGlsZXNOb3RQYWludGVkV2l0aG91dEludmFsaWRhdGlvbikKQEAgLTg5MywxMSArOTI2
LDE5IEBAIFRFU1QoVGlsZWRMYXllckNocm9taXVtVGVzdCwgdGlsZXNOb3RQYWludGVkV2l0aG91
dEludmFsaWRhdGlvbikKICAgICBsYXllci0+cHJlcGFyZVRvVXBkYXRlKEludFJlY3QoMCwgMCwg
NjAwLCA2MDApLCAmb2NjbHVkZWQpOwogICAgIEVYUEVDVF9FUSgzNi0zLCBsYXllci0+ZmFrZUxh
eWVyVGV4dHVyZVVwZGF0ZXIoKS0+cHJlcGFyZVJlY3RDb3VudCgpKTsKIAorICAgIEVYUEVDVF9O
RUFSKG9jY2x1ZGVkLm92ZXJkcmF3TWV0cmljcygpLnBpeGVsc0RyYXduT3BhcXVlKCksIDAsIDEp
OworICAgIEVYUEVDVF9ORUFSKG9jY2x1ZGVkLm92ZXJkcmF3TWV0cmljcygpLnBpeGVsc0RyYXdu
VHJhbnNsdWNlbnQoKSwgMzMwMDAwLCAxKTsKKyAgICBFWFBFQ1RfTkVBUihvY2NsdWRlZC5vdmVy
ZHJhd01ldHJpY3MoKS5waXhlbHNDdWxsZWQoKSwgMzAwMDAsIDEpOworCiAgICAgbGF5ZXItPmZh
a2VMYXllclRleHR1cmVVcGRhdGVyKCktPmNsZWFyUHJlcGFyZVJlY3RDb3VudCgpOwogCiAgICAg
Ly8gUmVwYWludCB3aXRob3V0IG1hcmtpbmcgaXQgZGlydHkuCiAgICAgbGF5ZXItPnByZXBhcmVU
b1VwZGF0ZShJbnRSZWN0KDAsIDAsIDYwMCwgNjAwKSwgJm9jY2x1ZGVkKTsKICAgICBFWFBFQ1Rf
RVEoMCwgbGF5ZXItPmZha2VMYXllclRleHR1cmVVcGRhdGVyKCktPnByZXBhcmVSZWN0Q291bnQo
KSk7CisKKyAgICBFWFBFQ1RfTkVBUihvY2NsdWRlZC5vdmVyZHJhd01ldHJpY3MoKS5waXhlbHNE
cmF3bk9wYXF1ZSgpLCAwLCAxKTsKKyAgICBFWFBFQ1RfTkVBUihvY2NsdWRlZC5vdmVyZHJhd01l
dHJpY3MoKS5waXhlbHNEcmF3blRyYW5zbHVjZW50KCksIDMzMDAwMCwgMSk7CisgICAgRVhQRUNU
X05FQVIob2NjbHVkZWQub3ZlcmRyYXdNZXRyaWNzKCkucGl4ZWxzQ3VsbGVkKCksIDMwMDAwLCAx
KTsKIH0KIAogVEVTVChUaWxlZExheWVyQ2hyb21pdW1UZXN0LCB0aWxlc1BhaW50ZWRXaXRoT2Nj
bHVzaW9uQW5kVHJhbnNmb3JtcykKQEAgLTkyMSw2ICs5NjIsMTAgQEAgVEVTVChUaWxlZExheWVy
Q2hyb21pdW1UZXN0LCB0aWxlc1BhaW50ZWRXaXRoT2NjbHVzaW9uQW5kVHJhbnNmb3JtcykKICAg
ICBsYXllci0+aW52YWxpZGF0ZVJlY3QoSW50UmVjdCgwLCAwLCA2MDAsIDYwMCkpOwogICAgIGxh
eWVyLT5wcmVwYXJlVG9VcGRhdGUoSW50UmVjdCgwLCAwLCA2MDAsIDYwMCksICZvY2NsdWRlZCk7
CiAgICAgRVhQRUNUX0VRKDM2LTMsIGxheWVyLT5mYWtlTGF5ZXJUZXh0dXJlVXBkYXRlcigpLT5w
cmVwYXJlUmVjdENvdW50KCkpOworCisgICAgRVhQRUNUX05FQVIob2NjbHVkZWQub3ZlcmRyYXdN
ZXRyaWNzKCkucGl4ZWxzRHJhd25PcGFxdWUoKSwgMCwgMSk7CisgICAgRVhQRUNUX05FQVIob2Nj
bHVkZWQub3ZlcmRyYXdNZXRyaWNzKCkucGl4ZWxzRHJhd25UcmFuc2x1Y2VudCgpLCAzMzAwMDAs
IDEpOworICAgIEVYUEVDVF9ORUFSKG9jY2x1ZGVkLm92ZXJkcmF3TWV0cmljcygpLnBpeGVsc0N1
bGxlZCgpLCAzMDAwMCwgMSk7CiB9CiAKIFRFU1QoVGlsZWRMYXllckNocm9taXVtVGVzdCwgdGls
ZXNQYWludGVkV2l0aE9jY2x1c2lvbkFuZFNjYWxpbmcpCkBAIC05NDcsNiArOTkyLDEwIEBAIFRF
U1QoVGlsZWRMYXllckNocm9taXVtVGVzdCwgdGlsZXNQYWludGVkV2l0aE9jY2x1c2lvbkFuZFNj
YWxpbmcpCiAgICAgLy8gbnVtYmVyIG9mIHRpbGVzIDN4My4KICAgICBFWFBFQ1RfRVEoOSwgbGF5
ZXItPmZha2VMYXllclRleHR1cmVVcGRhdGVyKCktPnByZXBhcmVSZWN0Q291bnQoKSk7CiAKKyAg
ICBFWFBFQ1RfTkVBUihvY2NsdWRlZC5vdmVyZHJhd01ldHJpY3MoKS5waXhlbHNEcmF3bk9wYXF1
ZSgpLCAwLCAxKTsKKyAgICBFWFBFQ1RfTkVBUihvY2NsdWRlZC5vdmVyZHJhd01ldHJpY3MoKS5w
aXhlbHNEcmF3blRyYW5zbHVjZW50KCksIDkwMDAwLCAxKTsKKyAgICBFWFBFQ1RfTkVBUihvY2Ns
dWRlZC5vdmVyZHJhd01ldHJpY3MoKS5waXhlbHNDdWxsZWQoKSwgMCwgMSk7CisKICAgICBsYXll
ci0+ZmFrZUxheWVyVGV4dHVyZVVwZGF0ZXIoKS0+Y2xlYXJQcmVwYXJlUmVjdENvdW50KCk7CiAK
ICAgICAvLyBUaGlzIG1ha2VzIHN1cmUgdGhlIHBhaW50aW5nIHdvcmtzIHdoZW4gdGhlIGNvbnRl
bnQgc3BhY2UgaXMgc2NhbGVkIHRvCkBAIC05NTgsNiArMTAwNywxMCBAQCBURVNUKFRpbGVkTGF5
ZXJDaHJvbWl1bVRlc3QsIHRpbGVzUGFpbnRlZFdpdGhPY2NsdXNpb25BbmRTY2FsaW5nKQogICAg
IGxheWVyLT5wcmVwYXJlVG9VcGRhdGUoSW50UmVjdCgwLCAwLCA2MDAsIDYwMCksICZvY2NsdWRl
ZCk7CiAgICAgRVhQRUNUX0VRKDktMSwgbGF5ZXItPmZha2VMYXllclRleHR1cmVVcGRhdGVyKCkt
PnByZXBhcmVSZWN0Q291bnQoKSk7CiAKKyAgICBFWFBFQ1RfTkVBUihvY2NsdWRlZC5vdmVyZHJh
d01ldHJpY3MoKS5waXhlbHNEcmF3bk9wYXF1ZSgpLCAwLCAxKTsKKyAgICBFWFBFQ1RfTkVBUihv
Y2NsdWRlZC5vdmVyZHJhd01ldHJpY3MoKS5waXhlbHNEcmF3blRyYW5zbHVjZW50KCksIDkwMDAw
ICsgODAwMDAsIDEpOworICAgIEVYUEVDVF9ORUFSKG9jY2x1ZGVkLm92ZXJkcmF3TWV0cmljcygp
LnBpeGVsc0N1bGxlZCgpLCAxMDAwMCwgMSk7CisKICAgICBsYXllci0+ZmFrZUxheWVyVGV4dHVy
ZVVwZGF0ZXIoKS0+Y2xlYXJQcmVwYXJlUmVjdENvdW50KCk7CiAKICAgICAvLyBUaGlzIG1ha2Vz
IHN1cmUgY29udGVudCBzY2FsaW5nIGFuZCB0cmFuc2Zvcm1zIHdvcmsgdG9nZXRoZXIuCkBAIC05
NzEsMTIgKzEwMjQsMTcgQEAgVEVTVChUaWxlZExheWVyQ2hyb21pdW1UZXN0LCB0aWxlc1BhaW50
ZWRXaXRoT2NjbHVzaW9uQW5kU2NhbGluZykKICAgICBsYXllci0+aW52YWxpZGF0ZVJlY3QoSW50
UmVjdCgwLCAwLCA2MDAsIDYwMCkpOwogICAgIGxheWVyLT5wcmVwYXJlVG9VcGRhdGUoSW50UmVj
dCgwLCAwLCA2MDAsIDYwMCksICZvY2NsdWRlZCk7CiAgICAgRVhQRUNUX0VRKDktMSwgbGF5ZXIt
PmZha2VMYXllclRleHR1cmVVcGRhdGVyKCktPnByZXBhcmVSZWN0Q291bnQoKSk7CisKKyAgICBF
WFBFQ1RfTkVBUihvY2NsdWRlZC5vdmVyZHJhd01ldHJpY3MoKS5waXhlbHNEcmF3bk9wYXF1ZSgp
LCAwLCAxKTsKKyAgICBFWFBFQ1RfTkVBUihvY2NsdWRlZC5vdmVyZHJhd01ldHJpY3MoKS5waXhl
bHNEcmF3blRyYW5zbHVjZW50KCksIDkwMDAwICsgODAwMDAgKyA4MDAwMCwgMSk7CisgICAgRVhQ
RUNUX05FQVIob2NjbHVkZWQub3ZlcmRyYXdNZXRyaWNzKCkucGl4ZWxzQ3VsbGVkKCksIDEwMDAw
ICsgMTAwMDAsIDEpOwogfQogCiBURVNUKFRpbGVkTGF5ZXJDaHJvbWl1bVRlc3QsIG9wYXF1ZUNv
bnRlbnRzUmVnaW9uKQogewogICAgIE93blB0cjxUZXh0dXJlTWFuYWdlcj4gdGV4dHVyZU1hbmFn
ZXIgPSBUZXh0dXJlTWFuYWdlcjo6Y3JlYXRlKDQqMTAyNCoxMDI0LCAyKjEwMjQqMTAyNCwgMTAy
NCk7CiAgICAgUmVmUHRyPEZha2VUaWxlZExheWVyQ2hyb21pdW0+IGxheWVyID0gYWRvcHRSZWYo
bmV3IEZha2VUaWxlZExheWVyQ2hyb21pdW0odGV4dHVyZU1hbmFnZXIuZ2V0KCkpKTsKKyAgICBU
ZXN0Q0NPY2NsdXNpb25UcmFja2VyIG9jY2x1ZGVkOwogCiAgICAgLy8gVGhlIHRpbGUgc2l6ZSBp
cyAxMDB4MTAwLCBzbyB0aGlzIGludmFsaWRhdGVzIGFuZCB0aGVuIHBhaW50cyB0d28gdGlsZXMg
aW4gdmFyaW91cyB3YXlzLgogCkBAIC05ODcsNDkgKzEwNDUsNzAgQEAgVEVTVChUaWxlZExheWVy
Q2hyb21pdW1UZXN0LCBvcGFxdWVDb250ZW50c1JlZ2lvbikKICAgICBJbnRSZWN0IHZpc2libGVC
b3VuZHMgPSBJbnRSZWN0KDAsIDAsIDEwMCwgMTUwKTsKIAogICAgIGxheWVyLT5zZXRCb3VuZHMo
Y29udGVudEJvdW5kcy5zaXplKCkpOworICAgIGxheWVyLT5zZXREcmF3VHJhbnNmb3JtKFRyYW5z
Zm9ybWF0aW9uTWF0cml4KDEsIDAsIDAsIDEsIGxheWVyLT5ib3VuZHMoKS53aWR0aCgpIC8gMi4w
LCBsYXllci0+Ym91bmRzKCkuaGVpZ2h0KCkgLyAyLjApKTsKICAgICBsYXllci0+c2V0VmlzaWJs
ZUxheWVyUmVjdCh2aXNpYmxlQm91bmRzKTsKICAgICBsYXllci0+c2V0RHJhd09wYWNpdHkoMSk7
CiAKICAgICAvLyBJZiB0aGUgbGF5ZXIgZG9lc24ndCBwYWludCBvcGFxdWUgY29udGVudCwgdGhl
biB0aGUgb3BhcXVlQ29udGVudHNSZWdpb24gc2hvdWxkIGJlIGVtcHR5LgotICAgIGxheWVyLT5m
YWtlTGF5ZXJUZXh0dXJlVXBkYXRlcigpLT5zZXRPcGFxdWVQYWludFJlY3Qob3BhcXVlUGFpbnRS
ZWN0KTsKKyAgICBsYXllci0+ZmFrZUxheWVyVGV4dHVyZVVwZGF0ZXIoKS0+c2V0T3BhcXVlUGFp
bnRSZWN0KEludFJlY3QoKSk7CiAgICAgbGF5ZXItPmludmFsaWRhdGVSZWN0KGNvbnRlbnRCb3Vu
ZHMpOwotICAgIGxheWVyLT5wcmVwYXJlVG9VcGRhdGUoY29udGVudEJvdW5kcywgMCk7CisgICAg
bGF5ZXItPnByZXBhcmVUb1VwZGF0ZShjb250ZW50Qm91bmRzLCAmb2NjbHVkZWQpOwogICAgIG9w
YXF1ZUNvbnRlbnRzID0gbGF5ZXItPm9wYXF1ZUNvbnRlbnRzUmVnaW9uKCk7CiAgICAgRVhQRUNU
X1RSVUUob3BhcXVlQ29udGVudHMuaXNFbXB0eSgpKTsKIAorICAgIEVYUEVDVF9ORUFSKG9jY2x1
ZGVkLm92ZXJkcmF3TWV0cmljcygpLnBpeGVsc0RyYXduT3BhcXVlKCksIDAsIDEpOworICAgIEVY
UEVDVF9ORUFSKG9jY2x1ZGVkLm92ZXJkcmF3TWV0cmljcygpLnBpeGVsc0RyYXduVHJhbnNsdWNl
bnQoKSwgMjAwMDAsIDEpOworICAgIEVYUEVDVF9ORUFSKG9jY2x1ZGVkLm92ZXJkcmF3TWV0cmlj
cygpLnBpeGVsc0N1bGxlZCgpLCAwLCAxKTsKKwogICAgIC8vIG9wYXF1ZUNvbnRlbnRzUmVnaW9u
IHNob3VsZCBtYXRjaCB0aGUgdmlzaWJsZSBwYXJ0IG9mIHdoYXQgaXMgcGFpbnRlZCBvcGFxdWUu
CiAgICAgb3BhcXVlUGFpbnRSZWN0ID0gSW50UmVjdCgxMCwgMTAsIDkwLCAxOTApOwogICAgIGxh
eWVyLT5mYWtlTGF5ZXJUZXh0dXJlVXBkYXRlcigpLT5zZXRPcGFxdWVQYWludFJlY3Qob3BhcXVl
UGFpbnRSZWN0KTsKICAgICBsYXllci0+aW52YWxpZGF0ZVJlY3QoY29udGVudEJvdW5kcyk7Ci0g
ICAgbGF5ZXItPnByZXBhcmVUb1VwZGF0ZShjb250ZW50Qm91bmRzLCAwKTsKKyAgICBsYXllci0+
cHJlcGFyZVRvVXBkYXRlKGNvbnRlbnRCb3VuZHMsICZvY2NsdWRlZCk7CiAgICAgb3BhcXVlQ29u
dGVudHMgPSBsYXllci0+b3BhcXVlQ29udGVudHNSZWdpb24oKTsKICAgICBFWFBFQ1RfRVFfUkVD
VChpbnRlcnNlY3Rpb24ob3BhcXVlUGFpbnRSZWN0LCB2aXNpYmxlQm91bmRzKSwgb3BhcXVlQ29u
dGVudHMuYm91bmRzKCkpOwogICAgIEVYUEVDVF9FUSgxdSwgb3BhcXVlQ29udGVudHMucmVjdHMo
KS5zaXplKCkpOwogCisgICAgRVhQRUNUX05FQVIob2NjbHVkZWQub3ZlcmRyYXdNZXRyaWNzKCku
cGl4ZWxzRHJhd25PcGFxdWUoKSwgMTcxMDAsIDEpOworICAgIEVYUEVDVF9ORUFSKG9jY2x1ZGVk
Lm92ZXJkcmF3TWV0cmljcygpLnBpeGVsc0RyYXduVHJhbnNsdWNlbnQoKSwgMjAwMDAgKyAyMDAw
MCAtIDE3MTAwLCAxKTsKKyAgICBFWFBFQ1RfTkVBUihvY2NsdWRlZC5vdmVyZHJhd01ldHJpY3Mo
KS5waXhlbHNDdWxsZWQoKSwgMCwgMSk7CisKICAgICAvLyBJZiB3ZSBwYWludCBhZ2FpbiB3aXRo
b3V0IGludmFsaWRhdGluZywgdGhlIHNhbWUgc3R1ZmYgc2hvdWxkIGJlIG9wYXF1ZS4KICAgICBs
YXllci0+ZmFrZUxheWVyVGV4dHVyZVVwZGF0ZXIoKS0+c2V0T3BhcXVlUGFpbnRSZWN0KEludFJl
Y3QoKSk7Ci0gICAgbGF5ZXItPnByZXBhcmVUb1VwZGF0ZShjb250ZW50Qm91bmRzLCAwKTsKKyAg
ICBsYXllci0+cHJlcGFyZVRvVXBkYXRlKGNvbnRlbnRCb3VuZHMsICZvY2NsdWRlZCk7CiAgICAg
b3BhcXVlQ29udGVudHMgPSBsYXllci0+b3BhcXVlQ29udGVudHNSZWdpb24oKTsKICAgICBFWFBF
Q1RfRVFfUkVDVChpbnRlcnNlY3Rpb24ob3BhcXVlUGFpbnRSZWN0LCB2aXNpYmxlQm91bmRzKSwg
b3BhcXVlQ29udGVudHMuYm91bmRzKCkpOwogICAgIEVYUEVDVF9FUSgxdSwgb3BhcXVlQ29udGVu
dHMucmVjdHMoKS5zaXplKCkpOwogCisgICAgRVhQRUNUX05FQVIob2NjbHVkZWQub3ZlcmRyYXdN
ZXRyaWNzKCkucGl4ZWxzRHJhd25PcGFxdWUoKSwgMTcxMDAsIDEpOworICAgIEVYUEVDVF9ORUFS
KG9jY2x1ZGVkLm92ZXJkcmF3TWV0cmljcygpLnBpeGVsc0RyYXduVHJhbnNsdWNlbnQoKSwgMjAw
MDAgKyAyMDAwMCAtIDE3MTAwLCAxKTsKKyAgICBFWFBFQ1RfTkVBUihvY2NsdWRlZC5vdmVyZHJh
d01ldHJpY3MoKS5waXhlbHNDdWxsZWQoKSwgMCwgMSk7CisKICAgICAvLyBJZiB3ZSByZXBhaW50
IGEgbm9uLW9wYXF1ZSBwYXJ0IG9mIHRoZSB0aWxlLCB0aGVuIGl0IHNob3VsZG4ndCBsb3NlIGl0
cyBvcGFxdWUtbmVzcy4gQW5kIG90aGVyIHRpbGVzIHNob3VsZAogICAgIC8vIG5vdCBiZSBhZmZl
Y3RlZC4KICAgICBsYXllci0+ZmFrZUxheWVyVGV4dHVyZVVwZGF0ZXIoKS0+c2V0T3BhcXVlUGFp
bnRSZWN0KEludFJlY3QoKSk7CiAgICAgbGF5ZXItPmludmFsaWRhdGVSZWN0KEludFJlY3QoMCwg
MCwgMSwgMSkpOwotICAgIGxheWVyLT5wcmVwYXJlVG9VcGRhdGUoY29udGVudEJvdW5kcywgMCk7
CisgICAgbGF5ZXItPnByZXBhcmVUb1VwZGF0ZShjb250ZW50Qm91bmRzLCAmb2NjbHVkZWQpOwog
ICAgIG9wYXF1ZUNvbnRlbnRzID0gbGF5ZXItPm9wYXF1ZUNvbnRlbnRzUmVnaW9uKCk7CiAgICAg
RVhQRUNUX0VRX1JFQ1QoaW50ZXJzZWN0aW9uKG9wYXF1ZVBhaW50UmVjdCwgdmlzaWJsZUJvdW5k
cyksIG9wYXF1ZUNvbnRlbnRzLmJvdW5kcygpKTsKICAgICBFWFBFQ1RfRVEoMXUsIG9wYXF1ZUNv
bnRlbnRzLnJlY3RzKCkuc2l6ZSgpKTsKIAorICAgIEVYUEVDVF9ORUFSKG9jY2x1ZGVkLm92ZXJk
cmF3TWV0cmljcygpLnBpeGVsc0RyYXduT3BhcXVlKCksIDE3MTAwLCAxKTsKKyAgICBFWFBFQ1Rf
TkVBUihvY2NsdWRlZC5vdmVyZHJhd01ldHJpY3MoKS5waXhlbHNEcmF3blRyYW5zbHVjZW50KCks
IDIwMDAwICsgMjAwMDAgLSAxNzEwMCArIDEsIDEpOworICAgIEVYUEVDVF9ORUFSKG9jY2x1ZGVk
Lm92ZXJkcmF3TWV0cmljcygpLnBpeGVsc0N1bGxlZCgpLCAwLCAxKTsKKwogICAgIC8vIElmIHdl
IHJlcGFpbnQgYW4gb3BhcXVlIHBhcnQgb2YgdGhlIHRpbGUsIHRoZW4gaXQgc2hvdWxkIGxvc2Ug
aXRzIG9wYXF1ZS1uZXNzLiBCdXQgb3RoZXIgdGlsZXMgc2hvdWxkIHN0aWxsCiAgICAgLy8gbm90
IGJlIGFmZmVjdGVkLgogICAgIGxheWVyLT5mYWtlTGF5ZXJUZXh0dXJlVXBkYXRlcigpLT5zZXRP
cGFxdWVQYWludFJlY3QoSW50UmVjdCgpKTsKICAgICBsYXllci0+aW52YWxpZGF0ZVJlY3QoSW50
UmVjdCgxMCwgMTAsIDEsIDEpKTsKLSAgICBsYXllci0+cHJlcGFyZVRvVXBkYXRlKGNvbnRlbnRC
b3VuZHMsIDApOworICAgIGxheWVyLT5wcmVwYXJlVG9VcGRhdGUoY29udGVudEJvdW5kcywgJm9j
Y2x1ZGVkKTsKICAgICBvcGFxdWVDb250ZW50cyA9IGxheWVyLT5vcGFxdWVDb250ZW50c1JlZ2lv
bigpOwogICAgIEVYUEVDVF9FUV9SRUNUKGludGVyc2VjdGlvbihJbnRSZWN0KDEwLCAxMDAsIDkw
LCAxMDApLCB2aXNpYmxlQm91bmRzKSwgb3BhcXVlQ29udGVudHMuYm91bmRzKCkpOwogICAgIEVY
UEVDVF9FUSgxdSwgb3BhcXVlQ29udGVudHMucmVjdHMoKS5zaXplKCkpOworCisgICAgRVhQRUNU
X05FQVIob2NjbHVkZWQub3ZlcmRyYXdNZXRyaWNzKCkucGl4ZWxzRHJhd25PcGFxdWUoKSwgMTcx
MDAsIDEpOworICAgIEVYUEVDVF9ORUFSKG9jY2x1ZGVkLm92ZXJkcmF3TWV0cmljcygpLnBpeGVs
c0RyYXduVHJhbnNsdWNlbnQoKSwgMjAwMDAgKyAyMDAwMCAtIDE3MTAwICsgMSArIDEsIDEpOwor
ICAgIEVYUEVDVF9ORUFSKG9jY2x1ZGVkLm92ZXJkcmF3TWV0cmljcygpLnBpeGVsc0N1bGxlZCgp
LCAwLCAxKTsKIH0KIAogfSAvLyBuYW1lc3BhY2UK
</data>

          </attachment>
      

    </bug>

</bugzilla>