<?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>176498</bug_id>
          
          <creation_ts>2017-09-07 01:29:18 -0700</creation_ts>
          <short_desc>REGRESSION (r215613): Incorrect corners clipping with border-radius</short_desc>
          <delta_ts>2017-09-19 19:28:03 -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>WebKit Nightly Build</version>
          <rep_platform>All</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc>http://jsfiddle.net/5k1bcL3s/3/</bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar, Regression</keywords>
          <priority>P1</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Sergii Ostroverkhov">cubaso</reporter>
          <assigned_to name="Wenson Hsieh">wenson_hsieh</assigned_to>
          <cc>aperez</cc>
    
    <cc>commit-queue</cc>
    
    <cc>magomez</cc>
    
    <cc>simon.fraser</cc>
    
    <cc>thorton</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>wenson_hsieh</cc>
    
    <cc>yoon</cc>
    
    <cc>zalan</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1346247</commentid>
    <comment_count>0</comment_count>
      <attachid>320104</attachid>
    <who name="Sergii Ostroverkhov">cubaso</who>
    <bug_when>2017-09-07 01:29:18 -0700</bug_when>
    <thetext>Created attachment 320104
Corrupted corners

Steps to Reproduce:
1. Open page: https://jsfiddle.net/5k1bcL3s/3/
2. Click on Yes/No buttons
3. Observe the issue with corners (see screenshot enclosed)

This issue occurs on specific widths of the browser window.
Also is reproducible on iPhone with iOS 11.

Please note, it works well on previous versions of Safari and iOS.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1346667</commentid>
    <comment_count>1</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2017-09-07 17:53:39 -0700</bug_when>
    <thetext>&lt;rdar://problem/34322011&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1346687</commentid>
    <comment_count>2</comment_count>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2017-09-07 19:13:11 -0700</bug_when>
    <thetext>rdar://problem/34112607</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1346704</commentid>
    <comment_count>3</comment_count>
    <who name="Wenson Hsieh">wenson_hsieh</who>
    <bug_when>2017-09-07 21:15:15 -0700</bug_when>
    <thetext>From an SVN bisection, this broke in http://trac.webkit.org/changeset/215613.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1346708</commentid>
    <comment_count>4</comment_count>
      <attachid>320233</attachid>
    <who name="Wenson Hsieh">wenson_hsieh</who>
    <bug_when>2017-09-07 21:25:21 -0700</bug_when>
    <thetext>Created attachment 320233
Test case (taken from jsfiddle)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1350366</commentid>
    <comment_count>5</comment_count>
    <who name="Wenson Hsieh">wenson_hsieh</who>
    <bug_when>2017-09-19 10:10:46 -0700</bug_when>
    <thetext>Some logging in RenderBoxModelObject::paintBorder, before the early return if `innerBorder.contains(info.rect)`:

2017-09-19 10:06:18.267116-0700 0xa4a5     Default     0x0                  619    com.apple.WebKit.WebContent: (JavaScriptCore) &lt;WK&gt;: The paint rect is: {{9.0, 784.0}, {160.0, 32.0}}
2017-09-19 10:06:18.267340-0700 0xa4a5     Default     0x0                  619    com.apple.WebKit.WebContent: (JavaScriptCore) &lt;WK&gt;: The inner border rect is: {{9.0, 784.0}, {160.0, 32.0}}
2017-09-19 10:06:18.267486-0700 0xa4a5     Default     0x0                  619    com.apple.WebKit.WebContent: (JavaScriptCore) &lt;WK&gt;: The top left radius is: (6.0, 6.0)
2017-09-19 10:06:18.267621-0700 0xa4a5     Default     0x0                  619    com.apple.WebKit.WebContent: (JavaScriptCore) &lt;WK&gt;: The top right radius is: (6.0, 6.0)
2017-09-19 10:06:18.267756-0700 0xa4a5     Default     0x0                  619    com.apple.WebKit.WebContent: (JavaScriptCore) &lt;WK&gt;: The bottom left radius is: (6.0, 6.0)
2017-09-19 10:06:18.267888-0700 0xa4a5     Default     0x0                  619    com.apple.WebKit.WebContent: (JavaScriptCore) &lt;WK&gt;: The bottom right radius is: (6.0, 6.0)
2017-09-19 10:06:18.268018-0700 0xa4a5     Default     0x0                  619    com.apple.WebKit.WebContent: (JavaScriptCore) &lt;WK&gt;: Does the inner border contain the paint rect? YES

...this doesn&apos;t look right to me. If the paint rect is the same as the border rect, but the border has non-zero radii, I don&apos;t see how the border rounded rect can fully contain the paint rect. Could there be a bug in the math checking whether a rounded rect contains a non-rounded rect?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1350578</commentid>
    <comment_count>6</comment_count>
      <attachid>321265</attachid>
    <who name="Wenson Hsieh">wenson_hsieh</who>
    <bug_when>2017-09-19 16:48:42 -0700</bug_when>
    <thetext>Created attachment 321265
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1350585</commentid>
    <comment_count>7</comment_count>
      <attachid>321265</attachid>
    <who name="Tim Horton">thorton</who>
    <bug_when>2017-09-19 17:17:56 -0700</bug_when>
    <thetext>Comment on attachment 321265
Patch

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

&gt; Source/WebCore/platform/graphics/GeometryUtilities.cpp:178
&gt; +    // We can bail early if |xRy| + |yRx| &lt;= RxRy do avoid additional multiplications, since that means the Manhattan distance

I think that &quot;do&quot; is meant to be a &quot;to&quot;?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1350600</commentid>
    <comment_count>8</comment_count>
      <attachid>321265</attachid>
    <who name="Wenson Hsieh">wenson_hsieh</who>
    <bug_when>2017-09-19 18:22:39 -0700</bug_when>
    <thetext>Comment on attachment 321265
Patch

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

From EWS results, accessibility/crash-table-recursive-layout.html appears to be failing; this was added very recently, and it doesn&apos;t seem related, but I&apos;ll double check.

&gt; Source/WebCore/ChangeLog:21
&gt; +        This function attempts to return early if the Manhattan distance if the transformed point is less than the

Whoops, s/if the transformed/of the transformed/

&gt;&gt; Source/WebCore/platform/graphics/GeometryUtilities.cpp:178
&gt;&gt; +    // We can bail early if |xRy| + |yRx| &lt;= RxRy do avoid additional multiplications, since that means the Manhattan distance
&gt; 
&gt; I think that &quot;do&quot; is meant to be a &quot;to&quot;?

Ah, that&apos;s correct. Fixed.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1350609</commentid>
    <comment_count>9</comment_count>
      <attachid>321273</attachid>
    <who name="Wenson Hsieh">wenson_hsieh</who>
    <bug_when>2017-09-19 18:38:02 -0700</bug_when>
    <thetext>Created attachment 321273
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1350622</commentid>
    <comment_count>10</comment_count>
      <attachid>321273</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2017-09-19 19:20:32 -0700</bug_when>
    <thetext>Comment on attachment 321273
Patch for landing

Clearing flags on attachment: 321273

Committed r222245: &lt;http://trac.webkit.org/changeset/222245&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="0"
              isprivate="0"
          >
            <attachid>320104</attachid>
            <date>2017-09-07 01:29:18 -0700</date>
            <delta_ts>2017-09-07 01:29:18 -0700</delta_ts>
            <desc>Corrupted corners</desc>
            <filename>defect.png</filename>
            <type>image/png</type>
            <size>8751</size>
            <attacher name="Sergii Ostroverkhov">cubaso</attacher>
            
              <data encoding="base64">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
08Wnh88UnhlsymvqP5t+9nHz9OZ75xLPXW+Z1NJ+Puz8xQtBF861+rWeueh18eQlj0vHL7tdrr/i
cqWuzbnt2B/Ofxxrd2mvu+p6taHDvaOxc3zn6S6frrPXAq5duB56/cqNiBudN+Nu3r415Vb3be7t
53ey77y+W3B36N7C+4T7pQ9UHlQ81HlY9Q+Lfxzsduk+1RPQ0/Yo5tG9x5zHL5+InnzpLX5Ke1rx
TP9Z9XOH5yf7gvo6Xkx+0fsy7+VQf8mfqn9ufmX+6uhfvn+1DSQO9L4Wvh5+s/yt1ts975zeNQ9G
DT58n/N+6EPpR62Pez+5fWr9nPD52dDML6QvG75afG38Fvbt/nDO8HAeW8iWXgUw2NC0NADe7AGA
lgQAvQPeH5Rkby+pILL3ohSB/4Rl7zOpuABQCzvJlZvVBMAh2Ex9pU8GILl6x/oC1NFxtMlFlObo
IItFhS8Ywsfh4be6AJAaAfgqHB4e2jI8/HUXJHsHgKYZsjefRIjwfr/dSYK6GLO+gJ/knzOFbVFB
bTVdAAAACXBIWXMAABYlAAAWJQFJUiTwAAABnGlUWHRYTUw6Y29tLmFkb2JlLnhtcAAAAAAAPHg6
eG1wbWV0YSB4bWxuczp4PSJhZG9iZTpuczptZXRhLyIgeDp4bXB0az0iWE1QIENvcmUgNS40LjAi
PgogICA8cmRmOlJERiB4bWxuczpyZGY9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkvMDIvMjItcmRm
LXN5bnRheC1ucyMiPgogICAgICA8cmRmOkRlc2NyaXB0aW9uIHJkZjphYm91dD0iIgogICAgICAg
ICAgICB4bWxuczpleGlmPSJodHRwOi8vbnMuYWRvYmUuY29tL2V4aWYvMS4wLyI+CiAgICAgICAg
IDxleGlmOlBpeGVsWERpbWVuc2lvbj4zNTA8L2V4aWY6UGl4ZWxYRGltZW5zaW9uPgogICAgICAg
ICA8ZXhpZjpQaXhlbFlEaW1lbnNpb24+OTg8L2V4aWY6UGl4ZWxZRGltZW5zaW9uPgogICAgICA8
L3JkZjpEZXNjcmlwdGlvbj4KICAgPC9yZGY6UkRGPgo8L3g6eG1wbWV0YT4KEO/LvQAAABxpRE9U
AAAAAgAAAAAAAAAxAAAAKAAAADEAAAAxAAALTLzMRgYAAAsYSURBVHgB7J17UFTXHce/KPhEjURF
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
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="0"
              isprivate="0"
          >
            <attachid>320233</attachid>
            <date>2017-09-07 21:25:21 -0700</date>
            <delta_ts>2017-09-07 21:25:21 -0700</delta_ts>
            <desc>Test case (taken from jsfiddle)</desc>
            <filename>border-radius-bug.html</filename>
            <type>text/html</type>
            <size>962</size>
            <attacher name="Wenson Hsieh">wenson_hsieh</attacher>
            
              <data encoding="base64">PHN0eWxlPgogICAgI2Jvb2wgewogICAgICB3aWR0aDogMTYwcHg7CiAgICAgIGhlaWdodDogMzJw
eDsKICAgICAgYm9yZGVyOiAxcHggc29saWQgYmxhY2s7CiAgICAgIGJvcmRlci1yYWRpdXM6IDdw
eDsKICAgICAgcG9zaXRpb246IGFic29sdXRlOwogICAgfQoKICAgICNib29sIGlucHV0IHsKICAg
ICAgZGlzcGxheTogbm9uZTsKICAgIH0KCiAgICAjYm9vbCBsYWJlbCB7CiAgICAgIGxpbmUtaGVp
Z2h0OiAzMnB4OwogICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7CiAgICAgIHBvc2l0aW9uOiBhYnNv
bHV0ZTsKICAgICAgd2lkdGg6IDgwcHg7CiAgICAgIGhlaWdodDogMzJweDsKICAgIH0KCiAgICAj
Ym9vbCBsYWJlbFtmb3I9InllcyJdIHsKICAgICAgYm9yZGVyLXRvcC1sZWZ0LXJhZGl1czogNnB4
OwogICAgICBib3JkZXItYm90dG9tLWxlZnQtcmFkaXVzOiA2cHg7CiAgICB9CgogICAgI2Jvb2wg
aW5wdXQ6Y2hlY2tlZCtsYWJlbFtmb3I9InllcyJdIHsKICAgICAgYmFja2dyb3VuZC1jb2xvcjog
b3JhbmdlOwogICAgfQoKICAgICNib29sIGxhYmVsW2Zvcj0ibm8iXSB7CiAgICAgIHJpZ2h0OiAw
OwogICAgICBib3JkZXItdG9wLXJpZ2h0LXJhZGl1czogNnB4OwogICAgICBib3JkZXItYm90dG9t
LXJpZ2h0LXJhZGl1czogNnB4OwogICAgfQoKICAgICNib29sIGlucHV0OmNoZWNrZWQrbGFiZWxb
Zm9yPSJubyJdIHsKICAgICAgYmFja2dyb3VuZC1jb2xvcjogc2lsdmVyOwogICAgfQo8L3N0eWxl
PgoKPHNwYW4gaWQ9ImJvb2wiPgogICAgPGlucHV0IGNoZWNrZWQ9InRydWUiIHZhbHVlPSJ5ZXMi
IHR5cGU9InJhZGlvIiBpZD0ieWVzIiBuYW1lPSJib29sIj4KICAgIDxsYWJlbCBmb3I9InllcyI+
WWVzPC9sYWJlbD4KICAgIDxpbnB1dCB2YWx1ZT0ibm8iIHR5cGU9InJhZGlvIiBpZD0ibm8iIG5h
bWU9ImJvb2wiPgogICAgPGxhYmVsIGZvcj0ibm8iPk5vPC9sYWJlbD4KPC9zcGFuPgo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>321265</attachid>
            <date>2017-09-19 16:48:42 -0700</date>
            <delta_ts>2017-09-19 17:17:56 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-176498-20170919164841.patch</filename>
            <type>text/plain</type>
            <size>19020</size>
            <attacher name="Wenson Hsieh">wenson_hsieh</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjIyMjIwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNTkwZDFmMTdlNzA3ZTlj
YmI0MTBiNmVjYjRiMjlkMTAzNzhmZWYzZC4uMmUwMTUxNWM3OWIxZTJjZDZjODAwODJhYTViM2Ix
MWRiMDRlYmFlNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQyIEBACisyMDE3LTA5LTE5ICBXZW5z
b24gSHNpZWggIDx3ZW5zb25faHNpZWhAYXBwbGUuY29tPgorCisgICAgICAgIFJFR1JFU1NJT04g
KHIyMTU2MTMpOiBJbmNvcnJlY3QgY29ybmVycyBjbGlwcGluZyB3aXRoIGJvcmRlci1yYWRpdXMK
KyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE3NjQ5OAor
ICAgICAgICA8cmRhcjovL3Byb2JsZW0vMzQxMTI2MDc+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
Tk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgaHR0cDovL3RyYWMud2Via2l0Lm9yZy9yMjE1NjEz
IGludHJvZHVjZWQgYW4gb3B0aW1pemF0aW9uIHRvIGJhaWwgb3V0IG9mIHJlcGFpbnRpbmcgYm9y
ZGVycyBpZiB0aGUgaW52YWxpZGF0ZWQKKyAgICAgICAgcmVjdCB0byBwYWludCBpcyBmdWxseSBj
b250YWluZWQgd2l0aGluIHRoZSBpbm5lciByb3VuZGVkIHJlY3Qgb2YgdGhlIGJvcmRlci4gSG93
ZXZlciwgZHVlIHRvIGlzc3VlcyB3aXRoCisgICAgICAgIGNvb3JkaW5hdGUgYW5kIGludGVyc2Vj
dGlvbiBtYXRoIGluIFJvdW5kZWRSZWN0Ojpjb250YWlucygpIGFuZCBlbGxpcHNlQ29udGFpbnNQ
b2ludCgpLCB0aGlzIGNhdXNlcworICAgICAgICBSZW5kZXJCb3hNb2RlbE9iamVjdDo6cGFpbnRC
b3JkZXIgdG8gcmV0dXJuIGVhcmx5IGV2ZW4gaW4gY2lyY3Vtc3RhbmNlcyB3aGVyZSB0aGUgYm9y
ZGVyIHJlcXVpcmVzIGEgcmVwYWludC4KKyAgICAgICAgVGhpcyBwYXRjaCBmaXhlcyB0aGUgY29u
dGFpbnMoKSBoZWxwZXIgaW4gUm91bmRlZFJlY3QgYW5kIGFkZHMgYSBuZXcgQVBJIHRlc3Qgc3Vp
dGUgZm9yIFJvdW5kZWRSZWN0IHRoYXQgY292ZXJzCisgICAgICAgIHRoZXNlIGNoYW5nZXMuCisK
KyAgICAgICAgVGVzdDogV2ViQ29yZS5Sb3VuZGVkUmVjdENvbnRhaW5zUmVjdAorCisgICAgICAg
ICogcGxhdGZvcm0vZ3JhcGhpY3MvR2VvbWV0cnlVdGlsaXRpZXMuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6ZWxsaXBzZUNvbnRhaW5zUG9pbnQpOgorCisgICAgICAgIFRoaXMgZnVuY3Rpb24gYXR0
ZW1wdHMgdG8gcmV0dXJuIGVhcmx5IGlmIHRoZSBNYW5oYXR0YW4gZGlzdGFuY2UgaWYgdGhlIHRy
YW5zZm9ybWVkIHBvaW50IGlzIGxlc3MgdGhhbiB0aGUKKyAgICAgICAgcmFkaXVzIG9mIHRoZSBj
aXJjbGUgdGhhdCByZXN1bHRzIGZyb20gYXBwbHlpbmcgdGhlIHNhbWUgdHJhbnNmb3JtYXRpb24g
dG8gdGhlIGVsbGlwc2UuIEhvd2V2ZXIsIHRoaXMgYmFpbHMgYW5kCisgICAgICAgIHJldHVybnMg
dHJ1ZSBpZiBgeCArIHkgPD0gUmAsIGJ1dCB0aGlzIG1lYW5zIHRoYXQgaWYgeCBhbmQgeSBhcmUg
bmVnYXRpdmUsIHdlJ2xsIGFsd2F5cyBlbmQgdXAgcmV0dXJuaW5nIHRydWUuCisgICAgICAgIFdl
IGZpeCB0aGlzIGJ5IGFkZGluZyB0aGUgYWJzb2x1dGUgdmFsdWUgaW5zdGVhZCwgc28gdGhlIGNo
ZWNrIGJlY29tZXM6IHx4fCArIHx5fCA8PSBSLgorCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhp
Y3MvUm91bmRlZFJlY3QuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Um91bmRlZFJlY3Q6OmNvbnRh
aW5zIGNvbnN0KToKKworICAgICAgICBCZWZvcmUgdGhpcyBwYXRjaCwgb3RoZXJSZWN0J3MgdXBw
ZXIgbGVmdCBsb2NhdGlvbiB3YXMgYmVpbmcgdXNlZCB0byBoaXQtdGVzdCBhZ2FpbnN0IHRoZSBl
bGxpcHNlcyBmb3JtZWQgZnJvbQorICAgICAgICBlYWNoIG9mIHRoZSA0IGNvcm5lcnMgb2YgdGhl
IHJvdW5kZWQgcmVjdC4gSW5zdGVhZCwgdGhpcyBzaG91bGQgdXNlICh4LCB5KSwgKG1heFgsIHkp
LCAoeCwgbWF4WSksIChtYXhYLCBtYXhZKQorICAgICAgICBmb3IgdGhlIHRvcCBsZWZ0LCB0b3Ag
cmlnaHQsIGJvdHRvbSBsZWZ0LCBhbmQgYm90dG9tIHJpZ2h0IGNvcm5lcnMsIHJlc3BlY3RpdmVs
eS4KKworICAgICAgICBBZGRpdGlvbmFsbHksIHRoZSBjaGVja3MgZm9yIHRoZSBib3R0b20gbGVm
dCBhbmQgYm90dG9tIHJpZ2h0IHRvIGRldGVybWluZSB3aGV0aGVyIHRoZSByZWN0IGNvcm5lciBz
aG91bGQgYmUKKyAgICAgICAgY2hlY2tlZCBmb3IgaW50ZXJzZWN0aW9uIGFnYWluc3QgdGhlIGVs
bGlwc2UncyBjb3JuZXIgYXJlIGluY29ycmVjdC4gSW4gdGhlIGJvdHRvbSBsZWZ0IGNvcm5lciwg
dGhlIGNoZWNrIGZvcgorICAgICAgICBgb3RoZXJSZWN0Lm1heFgoKSA+PSBjZW50ZXIueCgpYCBz
aG91bGQgaW5zdGVhZCBiZSBgb3RoZXJSZWN0LngoKSA8PSBjZW50ZXIueCgpYCwgYW5kIHRoZSBj
aGVjayBmb3IKKyAgICAgICAgYG90aGVyUmVjdC54KCkgPD0gY2VudGVyLngoKWAgc2hvdWxkIGlu
c3RlYWQgYmUgYG90aGVyUmVjdC5tYXhYKCkgPj0gY2VudGVyLngoKWAuCisKKyAgICAgICAgKiBw
bGF0Zm9ybS9ncmFwaGljcy9Sb3VuZGVkUmVjdC5oOgorCiAyMDE3LTA5LTE1ICBXZW5zb24gSHNp
ZWggIDx3ZW5zb25faHNpZWhAYXBwbGUuY29tPgogCiAgICAgICAgIGNyZWF0ZU1hcmt1cEludGVy
bmFsIHNob3VsZCBwcm90ZWN0IGl0cyBwb2ludGVyIHRvIHRoZSBSYW5nZSdzIGNvbW1vbiBhbmNl
c3RvcgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR2VvbWV0
cnlVdGlsaXRpZXMuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR2VvbWV0
cnlVdGlsaXRpZXMuY3BwCmluZGV4IDAyNzY1MTE1YTRhNWEzZDM3ZjMyOGFkNzMzNzNlNGUyYjZl
ZDljNGMuLmM4MjY0Yjc1YTAyZjQxZWNjZmM1MmU5MzcyNDM4NGVjZDI1Y2I0NjUgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dlb21ldHJ5VXRpbGl0aWVzLmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9HZW9tZXRyeVV0aWxpdGll
cy5jcHAKQEAgLTE1NSwxNiArMTU1LDI5IEBAIEZsb2F0U2l6ZSBzaXplV2l0aEFyZWFBbmRBc3Bl
Y3RSYXRpbyhmbG9hdCBhcmVhLCBmbG9hdCBhc3BlY3RSYXRpbykKIAogYm9vbCBlbGxpcHNlQ29u
dGFpbnNQb2ludChjb25zdCBGbG9hdFBvaW50JiBjZW50ZXIsIGNvbnN0IEZsb2F0U2l6ZSYgcmFk
aWksIGNvbnN0IEZsb2F0UG9pbnQmIHBvaW50KQogeworICAgIGlmIChyYWRpaS53aWR0aCgpIDw9
IDAgfHwgcmFkaWkuaGVpZ2h0KCkgPD0gMCkKKyAgICAgICAgcmV0dXJuIGZhbHNlOworCisgICAg
Ly8gRmlyc3QsIG9mZnNldCB0aGUgcXVlcnkgcG9pbnQgc28gdGhhdCB0aGUgZWxsaXBzZSBpcyBl
ZmZlY3RpdmVseSBjZW50ZXJlZCBhdCB0aGUgb3JpZ2luLgogICAgIEZsb2F0UG9pbnQgdHJhbnNm
b3JtZWRQb2ludChwb2ludCk7CiAgICAgdHJhbnNmb3JtZWRQb2ludC5tb3ZlKC1jZW50ZXIueCgp
LCAtY2VudGVyLnkoKSk7Ci0gICAgdHJhbnNmb3JtZWRQb2ludC5zY2FsZShyYWRpaS5oZWlnaHQo
KSwgcmFkaWkud2lkdGgoKSk7Ci0gICAgZmxvYXQgcmFkaXVzID0gcmFkaWkud2lkdGgoKSAqIHJh
ZGlpLmhlaWdodCgpOwogCi0gICAgaWYgKHRyYW5zZm9ybWVkUG9pbnQueCgpID4gcmFkaXVzIHx8
IHRyYW5zZm9ybWVkUG9pbnQueSgpID4gcmFkaXVzKQorICAgIC8vIElmIHRoZSBwb2ludCBsaWVz
IG91dHNpZGUgb2YgdGhlIGJvdW5kaW5nIGJveCBkZXRlcm1pbmVkIGJ5IHRoZSByYWRpaSBvZiB0
aGUgZWxsaXBzZSwgaXQgY2FuJ3QgcG9zc2libHkKKyAgICAvLyBiZSBjb250YWluZWQgd2l0aGlu
IHRoZSBlbGxpcHNlLCBzbyBiYWlsIGVhcmx5LgorICAgIGlmICh0cmFuc2Zvcm1lZFBvaW50Lngo
KSA8IC1yYWRpaS53aWR0aCgpIHx8IHRyYW5zZm9ybWVkUG9pbnQueCgpID4gcmFkaWkud2lkdGgo
KSB8fCB0cmFuc2Zvcm1lZFBvaW50LnkoKSA8IC1yYWRpaS5oZWlnaHQoKSB8fCB0cmFuc2Zvcm1l
ZFBvaW50LnkoKSA+IHJhZGlpLmhlaWdodCgpKQogICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAg
aWYgKHRyYW5zZm9ybWVkUG9pbnQueCgpICsgdHJhbnNmb3JtZWRQb2ludC55KCkgPD0gcmFkaXVz
KQotICAgICAgICByZXR1cm4gdHJ1ZTsKLSAgICByZXR1cm4gKHRyYW5zZm9ybWVkUG9pbnQubGVu
Z3RoU3F1YXJlZCgpIDw9IHJhZGl1cyAqIHJhZGl1cyk7CisKKyAgICAvLyBMZXQgKHgsIHkpIHJl
cHJlc2VudCB0aGUgdHJhbnNsYXRlZCBwb2ludCwgYW5kIGxldCAoUngsIFJ5KSByZXByZXNlbnQg
dGhlIHJhZGlpIG9mIGFuIGVsbGlwc2UgY2VudGVyZWQgYXQgdGhlIG9yaWdpbi4KKyAgICAvLyAo
eCwgeSkgaXMgY29udGFpbmVkIHdpdGhpbiB0aGUgZWxsaXBzZSBpZiwgYWZ0ZXIgc2NhbGluZyB0
aGUgZWxsaXBzZSB0byBiZSBhIHVuaXQgY2lyY2xlLCB0aGUgaWRlbnRpY2FsbHkgc2NhbGVkCisg
ICAgLy8gcG9pbnQgbGllcyB3aXRoaW4gdGhhdCB1bml0IGNpcmNsZS4gSW4gb3RoZXIgd29yZHMs
IHRoZSBzcXVhcmVkIGRpc3RhbmNlICh4L1J4KV4yICsgKHkvUnkpXjIgb2YgdGhlIHRyYW5zZm9y
bWVkIHBvaW50CisgICAgLy8gdG8gdGhlIG9yaWdpbiBpcyBubyBncmVhdGVyIHRoYW4gMS4gVGhp
cyBpcyBlcXVpdmFsZW50IHRvIGNoZWNraW5nIHdoZXRoZXIgb3Igbm90IHRoZSBwb2ludCAoeFJ5
LCB5UngpIGxpZXMgd2l0aGluIGEKKyAgICAvLyBjaXJjbGUgb2YgcmFkaXVzIFJ4UnkuCisgICAg
dHJhbnNmb3JtZWRQb2ludC5zY2FsZShyYWRpaS5oZWlnaHQoKSwgcmFkaWkud2lkdGgoKSk7Cisg
ICAgYXV0byB0cmFuc2Zvcm1lZFJhZGl1cyA9IHJhZGlpLndpZHRoKCkgKiByYWRpaS5oZWlnaHQo
KTsKKworICAgIC8vIFdlIGNhbiBiYWlsIGVhcmx5IGlmIHx4Unl8ICsgfHlSeHwgPD0gUnhSeSBk
byBhdm9pZCBhZGRpdGlvbmFsIG11bHRpcGxpY2F0aW9ucywgc2luY2UgdGhhdCBtZWFucyB0aGUg
TWFuaGF0dGFuIGRpc3RhbmNlCisgICAgLy8gb2YgdGhlIHRyYW5zZm9ybWVkIHBvaW50IGlzIGxl
c3MgdGhhbiAxLCBzbyB0aGUgcG9pbnQgbXVzdCBsaWUgd2l0aGluIHRoZSB1bml0IGNpcmNsZS4K
KyAgICByZXR1cm4gc3RkOjphYnModHJhbnNmb3JtZWRQb2ludC54KCkpICsgc3RkOjphYnModHJh
bnNmb3JtZWRQb2ludC55KCkpIDw9IHRyYW5zZm9ybWVkUmFkaXVzIHx8IHRyYW5zZm9ybWVkUG9p
bnQubGVuZ3RoU3F1YXJlZCgpIDw9IHRyYW5zZm9ybWVkUmFkaXVzICogdHJhbnNmb3JtZWRSYWRp
dXM7CiB9CiAKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L1JvdW5kZWRSZWN0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL1JvdW5k
ZWRSZWN0LmNwcAppbmRleCA2MGE0NTFmOWVmOWE0OGY2MzkwZTMxMTE5MzRhOTZiOTdjZWNiNjBk
Li40NzFkNGIzNzViNmNmNmU1MGI0ZTBiNTAzY2E5NjI1YWJjYzY2ZGVlIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9Sb3VuZGVkUmVjdC5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvUm91bmRlZFJlY3QuY3BwCkBAIC0yMzksMTQg
KzIzOSwxNCBAQCBib29sIFJvdW5kZWRSZWN0OjppbnRlcnNlY3RzUXVhZChjb25zdCBGbG9hdFF1
YWQmIHF1YWQpIGNvbnN0CiAKIGJvb2wgUm91bmRlZFJlY3Q6OmNvbnRhaW5zKGNvbnN0IExheW91
dFJlY3QmIG90aGVyUmVjdCkgY29uc3QKIHsKLSAgICBpZiAoIXJlY3QoKS5jb250YWlucyhvdGhl
clJlY3QpKQorICAgIGlmICghcmVjdCgpLmNvbnRhaW5zKG90aGVyUmVjdCkgfHwgIWlzUmVuZGVy
YWJsZSgpKQogICAgICAgICByZXR1cm4gZmFsc2U7CiAKICAgICBjb25zdCBMYXlvdXRTaXplJiB0
b3BMZWZ0ID0gbV9yYWRpaS50b3BMZWZ0KCk7CiAgICAgaWYgKCF0b3BMZWZ0LmlzRW1wdHkoKSkg
ewogICAgICAgICBGbG9hdFBvaW50IGNlbnRlciA9IHsgbV9yZWN0LngoKSArIHRvcExlZnQud2lk
dGgoKSwgbV9yZWN0LnkoKSArIHRvcExlZnQuaGVpZ2h0KCkgfTsKICAgICAgICAgaWYgKG90aGVy
UmVjdC54KCkgPD0gY2VudGVyLngoKSAmJiBvdGhlclJlY3QueSgpIDw9IGNlbnRlci55KCkpIHsK
LSAgICAgICAgICAgIGlmICghZWxsaXBzZUNvbnRhaW5zUG9pbnQoY2VudGVyLCB0b3BMZWZ0LCBv
dGhlclJlY3QubG9jYXRpb24oKSkpCisgICAgICAgICAgICBpZiAoIWVsbGlwc2VDb250YWluc1Bv
aW50KGNlbnRlciwgdG9wTGVmdCwgb3RoZXJSZWN0Lm1pblhNaW5ZQ29ybmVyKCkpKQogICAgICAg
ICAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICAgICAgfQogICAgIH0KQEAgLTI1NSw3ICsyNTUs
NyBAQCBib29sIFJvdW5kZWRSZWN0Ojpjb250YWlucyhjb25zdCBMYXlvdXRSZWN0JiBvdGhlclJl
Y3QpIGNvbnN0CiAgICAgaWYgKCF0b3BSaWdodC5pc0VtcHR5KCkpIHsKICAgICAgICAgRmxvYXRQ
b2ludCBjZW50ZXIgPSB7IG1fcmVjdC5tYXhYKCkgLSB0b3BSaWdodC53aWR0aCgpLCBtX3JlY3Qu
eSgpICsgdG9wUmlnaHQuaGVpZ2h0KCkgfTsKICAgICAgICAgaWYgKG90aGVyUmVjdC5tYXhYKCkg
Pj0gY2VudGVyLngoKSAmJiBvdGhlclJlY3QueSgpIDw9IGNlbnRlci55KCkpIHsKLSAgICAgICAg
ICAgIGlmICghZWxsaXBzZUNvbnRhaW5zUG9pbnQoY2VudGVyLCB0b3BSaWdodCwgb3RoZXJSZWN0
LmxvY2F0aW9uKCkpKQorICAgICAgICAgICAgaWYgKCFlbGxpcHNlQ29udGFpbnNQb2ludChjZW50
ZXIsIHRvcFJpZ2h0LCBvdGhlclJlY3QubWF4WE1pbllDb3JuZXIoKSkpCiAgICAgICAgICAgICAg
ICAgcmV0dXJuIGZhbHNlOwogICAgICAgICB9CiAgICAgfQpAQCAtMjYzLDggKzI2Myw4IEBAIGJv
b2wgUm91bmRlZFJlY3Q6OmNvbnRhaW5zKGNvbnN0IExheW91dFJlY3QmIG90aGVyUmVjdCkgY29u
c3QKICAgICBjb25zdCBMYXlvdXRTaXplJiBib3R0b21MZWZ0ID0gbV9yYWRpaS5ib3R0b21MZWZ0
KCk7CiAgICAgaWYgKCFib3R0b21MZWZ0LmlzRW1wdHkoKSkgewogICAgICAgICBGbG9hdFBvaW50
IGNlbnRlciA9IHsgbV9yZWN0LngoKSArIGJvdHRvbUxlZnQud2lkdGgoKSwgbV9yZWN0Lm1heFko
KSAtIGJvdHRvbUxlZnQuaGVpZ2h0KCkgfTsKLSAgICAgICAgaWYgKG90aGVyUmVjdC5tYXhYKCkg
Pj0gY2VudGVyLngoKSAmJiBvdGhlclJlY3QubWF4WSgpID49IGNlbnRlci55KCkpIHsKLSAgICAg
ICAgICAgIGlmICghZWxsaXBzZUNvbnRhaW5zUG9pbnQoY2VudGVyLCBib3R0b21MZWZ0LCBvdGhl
clJlY3QubG9jYXRpb24oKSkpCisgICAgICAgIGlmIChvdGhlclJlY3QueCgpIDw9IGNlbnRlci54
KCkgJiYgb3RoZXJSZWN0Lm1heFkoKSA+PSBjZW50ZXIueSgpKSB7CisgICAgICAgICAgICBpZiAo
IWVsbGlwc2VDb250YWluc1BvaW50KGNlbnRlciwgYm90dG9tTGVmdCwgb3RoZXJSZWN0Lm1pblhN
YXhZQ29ybmVyKCkpKQogICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICAgICAgfQog
ICAgIH0KQEAgLTI3Miw4ICsyNzIsOCBAQCBib29sIFJvdW5kZWRSZWN0Ojpjb250YWlucyhjb25z
dCBMYXlvdXRSZWN0JiBvdGhlclJlY3QpIGNvbnN0CiAgICAgY29uc3QgTGF5b3V0U2l6ZSYgYm90
dG9tUmlnaHQgPSBtX3JhZGlpLmJvdHRvbVJpZ2h0KCk7CiAgICAgaWYgKCFib3R0b21SaWdodC5p
c0VtcHR5KCkpIHsKICAgICAgICAgRmxvYXRQb2ludCBjZW50ZXIgPSB7IG1fcmVjdC5tYXhYKCkg
LSBib3R0b21SaWdodC53aWR0aCgpLCBtX3JlY3QubWF4WSgpIC0gYm90dG9tUmlnaHQuaGVpZ2h0
KCkgfTsKLSAgICAgICAgaWYgKG90aGVyUmVjdC54KCkgPD0gY2VudGVyLngoKSAmJiBvdGhlclJl
Y3QubWF4WSgpID49IGNlbnRlci55KCkpIHsKLSAgICAgICAgICAgIGlmICghZWxsaXBzZUNvbnRh
aW5zUG9pbnQoY2VudGVyLCBib3R0b21SaWdodCwgb3RoZXJSZWN0LmxvY2F0aW9uKCkpKQorICAg
ICAgICBpZiAob3RoZXJSZWN0Lm1heFgoKSA+PSBjZW50ZXIueCgpICYmIG90aGVyUmVjdC5tYXhZ
KCkgPj0gY2VudGVyLnkoKSkgeworICAgICAgICAgICAgaWYgKCFlbGxpcHNlQ29udGFpbnNQb2lu
dChjZW50ZXIsIGJvdHRvbVJpZ2h0LCBvdGhlclJlY3QubWF4WE1heFlDb3JuZXIoKSkpCiAgICAg
ICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgICAgICB9CiAgICAgfQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvUm91bmRlZFJlY3QuaCBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL1JvdW5kZWRSZWN0LmgKaW5kZXggM2YyZjdlYmM4ZDQz
YTIzY2E4ZWM0ZWI5MzRiZWNiMmYxMzU3NTIzZC4uYTI4NTJlYmM5YWE4MWQ0YTBhNjVkZGU3YjE2
YWYyMDc1ODM5MTI2MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvUm91bmRlZFJlY3QuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9S
b3VuZGVkUmVjdC5oCkBAIC04MCw3ICs4MCw3IEBAIHB1YmxpYzoKIAogICAgIGV4cGxpY2l0IFJv
dW5kZWRSZWN0KGNvbnN0IExheW91dFJlY3QmLCBjb25zdCBSYWRpaSYgPSBSYWRpaSgpKTsKICAg
ICBSb3VuZGVkUmVjdChjb25zdCBMYXlvdXRVbml0JiwgY29uc3QgTGF5b3V0VW5pdCYsIGNvbnN0
IExheW91dFVuaXQmIHdpZHRoLCBjb25zdCBMYXlvdXRVbml0JiBoZWlnaHQpOwotICAgIFJvdW5k
ZWRSZWN0KGNvbnN0IExheW91dFJlY3QmLCBjb25zdCBMYXlvdXRTaXplJiB0b3BMZWZ0LCBjb25z
dCBMYXlvdXRTaXplJiB0b3BSaWdodCwgY29uc3QgTGF5b3V0U2l6ZSYgYm90dG9tTGVmdCwgY29u
c3QgTGF5b3V0U2l6ZSYgYm90dG9tUmlnaHQpOworICAgIFdFQkNPUkVfRVhQT1JUIFJvdW5kZWRS
ZWN0KGNvbnN0IExheW91dFJlY3QmLCBjb25zdCBMYXlvdXRTaXplJiB0b3BMZWZ0LCBjb25zdCBM
YXlvdXRTaXplJiB0b3BSaWdodCwgY29uc3QgTGF5b3V0U2l6ZSYgYm90dG9tTGVmdCwgY29uc3Qg
TGF5b3V0U2l6ZSYgYm90dG9tUmlnaHQpOwogCiAgICAgY29uc3QgTGF5b3V0UmVjdCYgcmVjdCgp
IGNvbnN0IHsgcmV0dXJuIG1fcmVjdDsgfQogICAgIGNvbnN0IFJhZGlpJiByYWRpaSgpIGNvbnN0
IHsgcmV0dXJuIG1fcmFkaWk7IH0KQEAgLTEwNiw3ICsxMDYsNyBAQCBwdWJsaWM6CiAgICAgLy8g
VGVzdHMgd2hldGhlciB0aGUgcXVhZCBpbnRlcnNlY3RzIGFueSBwYXJ0IG9mIHRoaXMgcm91bmRl
ZCByZWN0YW5nbGUuCiAgICAgLy8gVGhpcyBvbmx5IHdvcmtzIGZvciBjb252ZXggcXVhZHMuCiAg
ICAgYm9vbCBpbnRlcnNlY3RzUXVhZChjb25zdCBGbG9hdFF1YWQmKSBjb25zdDsKLSAgICBib29s
IGNvbnRhaW5zKGNvbnN0IExheW91dFJlY3QmKSBjb25zdDsKKyAgICBXRUJDT1JFX0VYUE9SVCBi
b29sIGNvbnRhaW5zKGNvbnN0IExheW91dFJlY3QmKSBjb25zdDsKIAogICAgIEZsb2F0Um91bmRl
ZFJlY3QgcGl4ZWxTbmFwcGVkUm91bmRlZFJlY3RGb3JQYWludGluZyhmbG9hdCBkZXZpY2VTY2Fs
ZUZhY3RvcikgY29uc3Q7CiAKZGlmZiAtLWdpdCBhL1Rvb2xzL0NoYW5nZUxvZyBiL1Rvb2xzL0No
YW5nZUxvZwppbmRleCA4OTU2ZTQyNDA3Y2NhNmExOThlM2FlMjc5NzUwMTg3MGNiYmRmNzU5Li45
ZjgzYWYzNzRmNGZiNWRhMTYxNmMwY2M3ZGM0YjA5ZjQxODg2NmQzIDEwMDY0NAotLS0gYS9Ub29s
cy9DaGFuZ2VMb2cKKysrIGIvVG9vbHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTggQEAKKzIwMTct
MDktMTkgIFdlbnNvbiBIc2llaCAgPHdlbnNvbl9oc2llaEBhcHBsZS5jb20+CisKKyAgICAgICAg
UkVHUkVTU0lPTiAocjIxNTYxMyk6IEluY29ycmVjdCBjb3JuZXJzIGNsaXBwaW5nIHdpdGggYm9y
ZGVyLXJhZGl1cworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9MTc2NDk4CisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS8zNDExMjYwNz4KKworICAgICAgICBS
ZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBZGQgV2ViQ29yZSBBUEkgdGVz
dHMgZm9yIFJvdW5kZWRSZWN0Ojpjb250YWlucygpLgorCisgICAgICAgICogVGVzdFdlYktpdEFQ
SS9UZXN0V2ViS2l0QVBJLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6CisgICAgICAgICogVGVz
dFdlYktpdEFQSS9UZXN0cy9XZWJDb3JlL1JvdW5kZWRSZWN0VGVzdHMuY3BwOiBBZGRlZC4KKyAg
ICAgICAgKFRlc3RXZWJLaXRBUEk6OmxheW91dFJlY3QpOgorICAgICAgICAoVGVzdFdlYktpdEFQ
STo6VEVTVCk6CisKIDIwMTctMDktMTkgIEZpbGlwIFBpemxvICA8ZnBpemxvQGFwcGxlLmNvbT4K
IAogICAgICAgICBQcmltaXRpdmUgcHJvdG9jb2wgc2hvdWxkIGhhdmUgY2FwaXRhbCBuYW1lCmRp
ZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RXZWJLaXRBUEkueGNvZGVwcm9qL3By
b2plY3QucGJ4cHJvaiBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdFdlYktpdEFQSS54Y29kZXBy
b2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IDI0NTVkOTljOWY1OGZlYzhlNzExOWQ0ZWI3YThmNTBh
ODQ2NGE2NGUuLmYxZGI4ZTBhODhjOTI4NzhkYjRjMGQ2ODEyY2JjZmIyZmJiZDM2YTcgMTAwNjQ0
Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdFdlYktpdEFQSS54Y29kZXByb2ovcHJvamVj
dC5wYnhwcm9qCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdFdlYktpdEFQSS54Y29kZXBy
b2ovcHJvamVjdC5wYnhwcm9qCkBAIC02NjIsNiArNjYyLDcgQEAKIAkJRUNBNjgwQ0UxRTY4Q0Mw
OTAwNzMxRDIwIC8qIFN0cmluZ1V0aWxpdGllcy5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEVDQTY4MENEMUU2OENDMDkwMDczMUQyMCAvKiBTdHJpbmdV
dGlsaXRpZXMubW0gKi87IH07CiAJCUY0MDdGRTM5MUYxRDBERkMwMDE3Q0YyNSAvKiBlbm9ybW91
cy5zdmcgaW4gQ29weSBSZXNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gRjQwN0ZFMzgxRjFEMERFNjAwMTdDRjI1IC8qIGVub3Jtb3VzLnN2ZyAqLzsgfTsKIAkJRjQx
NTA4NkQxREEwNDBDNTAwNDRCRTlCIC8qIHBsYXktYXVkaW8tb24tY2xpY2suaHRtbCBpbiBDb3B5
IFJlc291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGNDE1MDg2QzFE
QTA0MEMxMDA0NEJFOUIgLyogcGxheS1hdWRpby1vbi1jbGljay5odG1sICovOyB9OworCQlGNDE4
QkUxNTFGNzFCN0RDMDAxOTcwRTYgLyogUm91bmRlZFJlY3RUZXN0cy5jcHAgaW4gU291cmNlcyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGNDE4QkUxNDFGNzFCN0RDMDAxOTcw
RTYgLyogUm91bmRlZFJlY3RUZXN0cy5jcHAgKi87IH07CiAJCUY0MTk0QUQxMUY1QTMyMDEwMEFE
RDgzRiAvKiBkcm9wLXRhcmdldHMuaHRtbCBpbiBDb3B5IFJlc291cmNlcyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGNDE5NEFEMDFGNUEyRUE1MDBBREQ4M0YgLyogZHJvcC10
YXJnZXRzLmh0bWwgKi87IH07CiAJCUY0MUFCOTlGMUVGNDY5NkIwMDgzRkEwOCAvKiBhdXRvZm9j
dXMtY29udGVudGVkaXRhYmxlLmh0bWwgaW4gQ29weSBSZXNvdXJjZXMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gRjQxQUI5OTgxRUY0NjkyQzAwODNGQTA4IC8qIGF1dG9mb2N1
cy1jb250ZW50ZWRpdGFibGUuaHRtbCAqLzsgfTsKIAkJRjQxQUI5QTAxRUY0Njk2QjAwODNGQTA4
IC8qIGJhY2tncm91bmQtaW1hZ2UtbGluay1hbmQtaW5wdXQuaHRtbCBpbiBDb3B5IFJlc291cmNl
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGNDFBQjk5NzFFRjQ2OTJDMDA4
M0ZBMDggLyogYmFja2dyb3VuZC1pbWFnZS1saW5rLWFuZC1pbnB1dC5odG1sICovOyB9OwpAQCAt
MTcwMSw2ICsxNzAyLDcgQEAKIAkJRjNGQzNFRTIxMzY3OEI3MzAwMTI2QTY1IC8qIGxpYmd0ZXN0
LmEgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBhcmNo
aXZlLmFyOyBwYXRoID0gbGliZ3Rlc3QuYTsgc291cmNlVHJlZSA9IEJVSUxUX1BST0RVQ1RTX0RJ
UjsgfTsKIAkJRjQwN0ZFMzgxRjFEMERFNjAwMTdDRjI1IC8qIGVub3Jtb3VzLnN2ZyAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBl
bm9ybW91cy5zdmc7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUY0MTUwODZDMURBMDQw
QzEwMDQ0QkU5QiAvKiBwbGF5LWF1ZGlvLW9uLWNsaWNrLmh0bWwgKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0Lmh0
bWw7IHBhdGggPSAicGxheS1hdWRpby1vbi1jbGljay5odG1sIjsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKKwkJRjQxOEJFMTQxRjcxQjdEQzAwMTk3MEU2IC8qIFJvdW5kZWRSZWN0VGVzdHMu
Y3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gUm91bmRlZFJlY3RUZXN0cy5jcHA7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CiAJCUY0MTk0QUQwMUY1QTJFQTUwMEFERDgzRiAvKiBkcm9wLXRhcmdl
dHMuaHRtbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHRleHQuaHRtbDsgcGF0aCA9ICJkcm9wLXRhcmdldHMuaHRtbCI7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUY0MUFCOTkzMUVGNDY5MkMwMDgzRkEwOCAv
KiBpbWFnZS1hbmQtdGV4dGFyZWEuaHRtbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBs
YXN0S25vd25GaWxlVHlwZSA9IHRleHQuaHRtbDsgcGF0aCA9ICJpbWFnZS1hbmQtdGV4dGFyZWEu
aHRtbCI7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUY0MUFCOTk0MUVGNDY5MkMwMDgz
RkEwOCAvKiBwcmV2ZW50LW9wZXJhdGlvbi5odG1sICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dC5odG1sOyBwYXRoID0gInByZXZlbnQtb3BlcmF0
aW9uLmh0bWwiOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtMjA4NSw2ICsyMDg3LDcg
QEAKIAkJCQkwNzZFNTA3RTFGNDUwMzFFMDA2RTlGNUEgLyogTG9nZ2luZy5jcHAgKi8sCiAJCQkJ
QTVCMTQ5REQxRjVBMTlEQzAwQzZEQUZGIC8qIE1JTUVUeXBlUmVnaXN0cnkuY3BwICovLAogCQkJ
CUNEMjI1QzA3MUM0NUE2OTIwMDE0MDc2MSAvKiBQYXJzZWRDb250ZW50UmFuZ2UuY3BwICovLAor
CQkJCUY0MThCRTE0MUY3MUI3REMwMDE5NzBFNiAvKiBSb3VuZGVkUmVjdFRlc3RzLmNwcCAqLywK
IAkJCQlDRENGQTdBOTFFNDUxMjJGMDBDMjQzM0QgLyogU2FtcGxlTWFwLmNwcCAqLywKIAkJCQlD
RTA2REY5QTFFMTg1MUYyMDBFNTcwQzkgLyogU2VjdXJpdHlPcmlnaW4uY3BwICovLAogCQkJCTQx
OTczQjVDMUFGMjI4NzUwMDZDN0IzNiAvKiBTaGFyZWRCdWZmZXIuY3BwICovLApAQCAtMzMzOSw2
ICszMzQyLDcgQEAKIAkJCQk3Q0NFN0YxMTFBNDExQUU2MDA0NDdDNEMgLyogUmVzdG9yZVNlc3Np
b25TdGF0ZUNvbnRhaW5pbmdGb3JtRGF0YS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk4MzVDRjk2
NzFEMjVGQ0Q2MDAxQTY1RDQgLyogUmVzdG9yZVNlc3Npb25TdGF0ZVdpdGhvdXROYXZpZ2F0aW9u
LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTQ2RTgxNkY4MUU3OUUyOUMwMDM3NUFEQyAvKiBSZXN0
b3JlU3RhdGVBZnRlclRlcm1pbmF0aW9uLm1tIGluIFNvdXJjZXMgKi8sCisJCQkJRjQxOEJFMTUx
RjcxQjdEQzAwMTk3MEU2IC8qIFJvdW5kZWRSZWN0VGVzdHMuY3BwIGluIFNvdXJjZXMgKi8sCiAJ
CQkJQTE4MEMwRkExRUU2N0RGMDAwNDY4RjQ3IC8qIFJ1bk9wZW5QYW5lbC5tbSBpbiBTb3VyY2Vz
ICovLAogCQkJCUNEQ0ZBN0FBMUU0NTE4MzIwMEMyNDMzRCAvKiBTYW1wbGVNYXAuY3BwIGluIFNv
dXJjZXMgKi8sCiAJCQkJN0NDRTdGMTIxQTQxMUFFNjAwNDQ3QzRDIC8qIFNjcm9sbFBpbm5pbmdC
ZWhhdmlvcnMuY3BwIGluIFNvdXJjZXMgKi8sCkBAIC0zNDczLDYgKzM0NzcsNyBAQAogCQkJYnVp
bGRBY3Rpb25NYXNrID0gMjE0NzQ4MzY0NzsKIAkJCWZpbGVzID0gKAogCQkJCTM3RTdERDY3MUVB
MDcxRjMwMDlCMzk2RCAvKiBBZGRpdGlvbmFsUmVhZEFjY2Vzc0FsbG93ZWRVUkxzUGx1Z2luLm1t
IGluIFNvdXJjZXMgKi8sCisJCQkJNzU0Q0VDODExRjY3MjJGMjAwRDAwMzlBIC8qIEF1dG9GaWxs
QXZhaWxhYmxlLm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJMzc0QjdBNjExREYzNzFDRjAwQUNDQjZD
IC8qIEJ1bmRsZUVkaXRpbmdEZWxlZ2F0ZVBsdWdJbi5tbSBpbiBTb3VyY2VzICovLAogCQkJCUEx
M0VCQkIwMUI4NzQzNkYwMDA5NzExMCAvKiBCdW5kbGVQYXJhbWV0ZXJzUGx1Z0luLm1tIGluIFNv
dXJjZXMgKi8sCiAJCQkJMzdBNzA5QUYxRTNFQTk3RTAwQ0E1OTY5IC8qIEJ1bmRsZVJhbmdlSGFu
ZGxlUGx1Z0luLm1tIGluIFNvdXJjZXMgKi8sCkBAIC0zNDgxLDcgKzM0ODYsNiBAQAogCQkJCUEx
NEZDNThCMUI4OTkyNzEwMEQxMDdFQiAvKiBDb250ZW50RmlsdGVyaW5nUGx1Z0luLm1tIGluIFNv
dXJjZXMgKi8sCiAJCQkJQTEzRUJCQUIxQjg3NDM0NjAwMDk3MTEwIC8qIFBsYXRmb3JtVXRpbGl0
aWVzQ29jb2EubW0gaW4gU291cmNlcyAqLywKIAkJCQkxQTRGODFDRjFCREZGRDUzMDA0RTY3MkUg
LyogUmVtb3RlT2JqZWN0UmVnaXN0cnlQbHVnSW4ubW0gaW4gU291cmNlcyAqLywKLQkJCQk3NTRD
RUM4MTFGNjcyMkYyMDBEMDAzOUEgLyogQXV0b0ZpbGxBdmFpbGFibGUubW0gaW4gU291cmNlcyAq
LywKIAkJCQlBMTJEREMwMjFFODM3QzI0MDBDRjZDQUUgLyogUmVuZGVyZWRJbWFnZVdpdGhPcHRp
b25zUGx1Z0luLm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJN0M4ODJFMDkxQzgwQzYzMDAwNkJGNzMx
IC8qIFVzZXJDb250ZW50V29ybGRQbHVnSW4ubW0gaW4gU291cmNlcyAqLywKIAkJCQk3QzgzRTAz
RDFEMEE2MEQ2MDBGRUJDRjMgLyogVXRpbGl0aWVzQ29jb2EubW0gaW4gU291cmNlcyAqLywKZGlm
ZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViQ29yZS9Sb3VuZGVkUmVjdFRl
c3RzLmNwcCBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViQ29yZS9Sb3VuZGVkUmVjdFRl
c3RzLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwLi45NjM4MjdkYTNiNzA2MGM1MTFmZWYwZDdiNGRhMDhmNTdhNDMy
YTIwCi0tLSAvZGV2L251bGwKKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJDb3Jl
L1JvdW5kZWRSZWN0VGVzdHMuY3BwCkBAIC0wLDAgKzEsNzMgQEAKKy8qCisgKiBDb3B5cmlnaHQg
KEMpIDIwMTcgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJp
YnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91
dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxv
d2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNv
dXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAq
IDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJv
dmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9v
ciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAq
IFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJV
VE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMs
IElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElF
UyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVS
UE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMg
Q09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJ
REVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMg
KElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJ
VFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9S
IEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhF
T1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJ
VFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJ
TkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFE
VklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5j
bHVkZSAiY29uZmlnLmgiCisKKyNpbmNsdWRlIDxXZWJDb3JlL1JvdW5kZWRSZWN0Lmg+CisKK3Vz
aW5nIG5hbWVzcGFjZSBXZWJDb3JlOworCituYW1lc3BhY2UgVGVzdFdlYktpdEFQSSB7CisKK3N0
YXRpYyBMYXlvdXRSZWN0IGxheW91dFJlY3QoZmxvYXQgeCwgZmxvYXQgeSwgZmxvYXQgd2lkdGgs
IGZsb2F0IGhlaWdodCkKK3sKKyAgICByZXR1cm4geyBMYXlvdXRQb2ludCh4LCB5KSwgTGF5b3V0
U2l6ZSh3aWR0aCwgaGVpZ2h0KSB9OworfQorCitURVNUKFdlYkNvcmUsIFJvdW5kZWRSZWN0Q29u
dGFpbnNSZWN0KQoreworICAgIGF1dG8gcm91bmRlZFJlY3RCb3VuZHMgPSBsYXlvdXRSZWN0KC0x
MCwgLTQwLCA0MCwgODApOworICAgIFJvdW5kZWRSZWN0IHJvdW5kZWRSZWN0KHJvdW5kZWRSZWN0
Qm91bmRzLCB7IDEwLCAxMCB9LCB7IDEwLCAyMCB9LCB7IDAsIDAgfSwgeyAyMCwgNDAgfSk7CisK
KyAgICAvLyBDYXNlcyB3aGVyZSB0aGUgb3RoZXIgcmVjdCBpcyBvdXRzaWRlIG9mIHRoZSByb3Vu
ZGVkIHJlY3QncyBib3VuZHMuCisgICAgRVhQRUNUX0ZBTFNFKHJvdW5kZWRSZWN0LmNvbnRhaW5z
KGxheW91dFJlY3QoLTQwLCAtMTAsIDEwLCAxMCkpKTsKKyAgICBFWFBFQ1RfRkFMU0Uocm91bmRl
ZFJlY3QuY29udGFpbnMobGF5b3V0UmVjdCgtNDAsIDEwLCAxMDAsIDEwKSkpOworICAgIEVYUEVD
VF9GQUxTRShyb3VuZGVkUmVjdC5jb250YWlucyhsYXlvdXRSZWN0KDIwLCAyMCwgNjAsIDYwKSkp
OworICAgIEVYUEVDVF9GQUxTRShyb3VuZGVkUmVjdC5jb250YWlucyhsYXlvdXRSZWN0KDEwLCAt
ODAsIDEwLCAyMDApKSk7CisgICAgRVhQRUNUX0ZBTFNFKHJvdW5kZWRSZWN0LmNvbnRhaW5zKGxh
eW91dFJlY3QoLTgwLCAtODAsIDE2MCwgMTYwKSkpOworCisgICAgLy8gQ2FzZXMgd2hlcmUgdGhl
IG90aGVyIHJlY3QgZG9lc24ndCBpbnRlcnNlY3Qgd2l0aCBhbnkgY29ybmVycy4KKyAgICBFWFBF
Q1RfVFJVRShyb3VuZGVkUmVjdC5jb250YWlucyhsYXlvdXRSZWN0KC01LCAtNSwgMTAsIDEwKSkp
OworICAgIEVYUEVDVF9UUlVFKHJvdW5kZWRSZWN0LmNvbnRhaW5zKGxheW91dFJlY3QoMjAsIC0x
MCwgNSwgNSkpKTsKKyAgICBFWFBFQ1RfVFJVRShyb3VuZGVkUmVjdC5jb250YWlucyhsYXlvdXRS
ZWN0KC01LCA1LCA1LCA1KSkpOworICAgIEVYUEVDVF9UUlVFKHJvdW5kZWRSZWN0LmNvbnRhaW5z
KGxheW91dFJlY3QoMCwgMCwgMTAsIDEwKSkpOworICAgIEVYUEVDVF9UUlVFKHJvdW5kZWRSZWN0
LmNvbnRhaW5zKGxheW91dFJlY3QoMCwgLTEwLCAxMCwgMTApKSk7CisKKyAgICAvLyBDYXNlcyB3
aGVyZSB0aGUgb3RoZXIgcmVjdCBpbnRlcnNlY3RzIGF0IG9uZSBvZiB0aGUgcm91bmRlZCByZWN0
J3MgY29ybmVycy4KKyAgICBFWFBFQ1RfRkFMU0Uocm91bmRlZFJlY3QuY29udGFpbnMobGF5b3V0
UmVjdCgtOSwgLTM5LCAyMCwgNDApKSk7CisgICAgRVhQRUNUX1RSVUUocm91bmRlZFJlY3QuY29u
dGFpbnMobGF5b3V0UmVjdCgtMSwgLTMxLCAyMCwgNDApKSk7CisgICAgRVhQRUNUX0ZBTFNFKHJv
dW5kZWRSZWN0LmNvbnRhaW5zKGxheW91dFJlY3QoMjAsIC0zMCwgMTAsIDEwKSkpOworICAgIEVY
UEVDVF9UUlVFKHJvdW5kZWRSZWN0LmNvbnRhaW5zKGxheW91dFJlY3QoMTAsIC0zMCwgMTEsIDEx
KSkpOworICAgIEVYUEVDVF9GQUxTRShyb3VuZGVkUmVjdC5jb250YWlucyhsYXlvdXRSZWN0KDE1
LCAyNSwgMTQsIDE0KSkpOworICAgIEVYUEVDVF9UUlVFKHJvdW5kZWRSZWN0LmNvbnRhaW5zKGxh
eW91dFJlY3QoMTUsIDI1LCAzLCAzKSkpOworICAgIEVYUEVDVF9UUlVFKHJvdW5kZWRSZWN0LmNv
bnRhaW5zKGxheW91dFJlY3QoLTEwLCAyMCwgMTAsIDIwKSkpOworCisgICAgLy8gVGhlIG90aGVy
IHJlY3QgaXMgZXF1YWwgdG8gdGhlIHJvdW5kZWQgcmVjdCdzIGJvdW5kcy4KKyAgICBFWFBFQ1Rf
RkFMU0Uocm91bmRlZFJlY3QuY29udGFpbnMocm91bmRlZFJlY3RCb3VuZHMpKTsKKyAgICBSb3Vu
ZGVkUmVjdCBub25Sb3VuZGVkUmVjdChyb3VuZGVkUmVjdEJvdW5kcywgeyAwLCAwIH0sIHsgMCwg
MCB9LCB7IDAsIDAgfSwgeyAwLCAwIH0pOworICAgIEVYUEVDVF9UUlVFKG5vblJvdW5kZWRSZWN0
LmNvbnRhaW5zKHJvdW5kZWRSZWN0Qm91bmRzKSk7Cit9CisKK30K
</data>
<flag name="review"
          id="341272"
          type_id="1"
          status="+"
          setter="thorton"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>321273</attachid>
            <date>2017-09-19 18:38:02 -0700</date>
            <delta_ts>2017-09-19 19:20:32 -0700</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-176498-20170919183801.patch</filename>
            <type>text/plain</type>
            <size>19029</size>
            <attacher name="Wenson Hsieh">wenson_hsieh</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjIyMjIwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNTkwZDFmMTdlNzA3ZTlj
YmI0MTBiNmVjYjRiMjlkMTAzNzhmZWYzZC4uMjI1Njg5ZjMyZTJiNjEzMTI3ODczODFhNmQ5MWI3
OTRmYzM1YTMxOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQyIEBACisyMDE3LTA5LTE5ICBXZW5z
b24gSHNpZWggIDx3ZW5zb25faHNpZWhAYXBwbGUuY29tPgorCisgICAgICAgIFJFR1JFU1NJT04g
KHIyMTU2MTMpOiBJbmNvcnJlY3QgY29ybmVycyBjbGlwcGluZyB3aXRoIGJvcmRlci1yYWRpdXMK
KyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE3NjQ5OAor
ICAgICAgICA8cmRhcjovL3Byb2JsZW0vMzQxMTI2MDc+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
VGltIEhvcnRvbi4KKworICAgICAgICBodHRwOi8vdHJhYy53ZWJraXQub3JnL3IyMTU2MTMgaW50
cm9kdWNlZCBhbiBvcHRpbWl6YXRpb24gdG8gYmFpbCBvdXQgb2YgcmVwYWludGluZyBib3JkZXJz
IGlmIHRoZSBpbnZhbGlkYXRlZAorICAgICAgICByZWN0IHRvIHBhaW50IGlzIGZ1bGx5IGNvbnRh
aW5lZCB3aXRoaW4gdGhlIGlubmVyIHJvdW5kZWQgcmVjdCBvZiB0aGUgYm9yZGVyLiBIb3dldmVy
LCBkdWUgdG8gaXNzdWVzIHdpdGgKKyAgICAgICAgY29vcmRpbmF0ZSBhbmQgaW50ZXJzZWN0aW9u
IG1hdGggaW4gUm91bmRlZFJlY3Q6OmNvbnRhaW5zKCkgYW5kIGVsbGlwc2VDb250YWluc1BvaW50
KCksIHRoaXMgY2F1c2VzCisgICAgICAgIFJlbmRlckJveE1vZGVsT2JqZWN0OjpwYWludEJvcmRl
ciB0byByZXR1cm4gZWFybHkgZXZlbiBpbiBjaXJjdW1zdGFuY2VzIHdoZXJlIHRoZSBib3JkZXIg
cmVxdWlyZXMgYSByZXBhaW50LgorICAgICAgICBUaGlzIHBhdGNoIGZpeGVzIHRoZSBjb250YWlu
cygpIGhlbHBlciBpbiBSb3VuZGVkUmVjdCBhbmQgYWRkcyBhIG5ldyBBUEkgdGVzdCBzdWl0ZSBm
b3IgUm91bmRlZFJlY3QgdGhhdCBjb3ZlcnMKKyAgICAgICAgdGhlc2UgY2hhbmdlcy4KKworICAg
ICAgICBUZXN0OiBXZWJDb3JlLlJvdW5kZWRSZWN0Q29udGFpbnNSZWN0CisKKyAgICAgICAgKiBw
bGF0Zm9ybS9ncmFwaGljcy9HZW9tZXRyeVV0aWxpdGllcy5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjplbGxpcHNlQ29udGFpbnNQb2ludCk6CisKKyAgICAgICAgVGhpcyBmdW5jdGlvbiBhdHRlbXB0
cyB0byByZXR1cm4gZWFybHkgaWYgdGhlIE1hbmhhdHRhbiBkaXN0YW5jZSBvZiB0aGUgdHJhbnNm
b3JtZWQgcG9pbnQgaXMgbGVzcyB0aGFuIHRoZQorICAgICAgICByYWRpdXMgb2YgdGhlIGNpcmNs
ZSB0aGF0IHJlc3VsdHMgZnJvbSBhcHBseWluZyB0aGUgc2FtZSB0cmFuc2Zvcm1hdGlvbiB0byB0
aGUgZWxsaXBzZS4gSG93ZXZlciwgdGhpcyBiYWlscyBhbmQKKyAgICAgICAgcmV0dXJucyB0cnVl
IGlmIGB4ICsgeSA8PSBSYCwgYnV0IHRoaXMgbWVhbnMgdGhhdCBpZiB4IGFuZCB5IGFyZSBuZWdh
dGl2ZSwgd2UnbGwgYWx3YXlzIGVuZCB1cCByZXR1cm5pbmcgdHJ1ZS4KKyAgICAgICAgV2UgZml4
IHRoaXMgYnkgYWRkaW5nIHRoZSBhYnNvbHV0ZSB2YWx1ZXMgaW5zdGVhZCwgc28gdGhlIGNoZWNr
IGJlY29tZXM6IHx4fCArIHx5fCA8PSBSLgorCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3Mv
Um91bmRlZFJlY3QuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Um91bmRlZFJlY3Q6OmNvbnRhaW5z
IGNvbnN0KToKKworICAgICAgICBCZWZvcmUgdGhpcyBwYXRjaCwgb3RoZXJSZWN0J3MgdXBwZXIg
bGVmdCBsb2NhdGlvbiB3YXMgYmVpbmcgdXNlZCB0byBoaXQtdGVzdCBhZ2FpbnN0IHRoZSBlbGxp
cHNlcyBmb3JtZWQgZnJvbQorICAgICAgICBlYWNoIG9mIHRoZSA0IGNvcm5lcnMgb2YgdGhlIHJv
dW5kZWQgcmVjdC4gSW5zdGVhZCwgdGhpcyBzaG91bGQgdXNlICh4LCB5KSwgKG1heFgsIHkpLCAo
eCwgbWF4WSksIChtYXhYLCBtYXhZKQorICAgICAgICBmb3IgdGhlIHRvcCBsZWZ0LCB0b3Agcmln
aHQsIGJvdHRvbSBsZWZ0LCBhbmQgYm90dG9tIHJpZ2h0IGNvcm5lcnMsIHJlc3BlY3RpdmVseS4K
KworICAgICAgICBBZGRpdGlvbmFsbHksIHRoZSBjaGVja3MgZm9yIHRoZSBib3R0b20gbGVmdCBh
bmQgYm90dG9tIHJpZ2h0IHRvIGRldGVybWluZSB3aGV0aGVyIHRoZSByZWN0IGNvcm5lciBzaG91
bGQgYmUKKyAgICAgICAgY2hlY2tlZCBmb3IgaW50ZXJzZWN0aW9uIGFnYWluc3QgdGhlIGVsbGlw
c2UncyBjb3JuZXIgYXJlIGluY29ycmVjdC4gSW4gdGhlIGJvdHRvbSBsZWZ0IGNvcm5lciwgdGhl
IGNoZWNrIGZvcgorICAgICAgICBgb3RoZXJSZWN0Lm1heFgoKSA+PSBjZW50ZXIueCgpYCBzaG91
bGQgaW5zdGVhZCBiZSBgb3RoZXJSZWN0LngoKSA8PSBjZW50ZXIueCgpYCwgYW5kIHRoZSBjaGVj
ayBmb3IKKyAgICAgICAgYG90aGVyUmVjdC54KCkgPD0gY2VudGVyLngoKWAgc2hvdWxkIGluc3Rl
YWQgYmUgYG90aGVyUmVjdC5tYXhYKCkgPj0gY2VudGVyLngoKWAuCisKKyAgICAgICAgKiBwbGF0
Zm9ybS9ncmFwaGljcy9Sb3VuZGVkUmVjdC5oOgorCiAyMDE3LTA5LTE1ICBXZW5zb24gSHNpZWgg
IDx3ZW5zb25faHNpZWhAYXBwbGUuY29tPgogCiAgICAgICAgIGNyZWF0ZU1hcmt1cEludGVybmFs
IHNob3VsZCBwcm90ZWN0IGl0cyBwb2ludGVyIHRvIHRoZSBSYW5nZSdzIGNvbW1vbiBhbmNlc3Rv
cgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR2VvbWV0cnlV
dGlsaXRpZXMuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR2VvbWV0cnlV
dGlsaXRpZXMuY3BwCmluZGV4IDAyNzY1MTE1YTRhNWEzZDM3ZjMyOGFkNzMzNzNlNGUyYjZlZDlj
NGMuLmIzM2ZhMmEyZDMwOGU2OThjYWU1NTExMzkzNWY4OWUwMDVlYTQ2OTAgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dlb21ldHJ5VXRpbGl0aWVzLmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9HZW9tZXRyeVV0aWxpdGllcy5j
cHAKQEAgLTE1NSwxNiArMTU1LDI5IEBAIEZsb2F0U2l6ZSBzaXplV2l0aEFyZWFBbmRBc3BlY3RS
YXRpbyhmbG9hdCBhcmVhLCBmbG9hdCBhc3BlY3RSYXRpbykKIAogYm9vbCBlbGxpcHNlQ29udGFp
bnNQb2ludChjb25zdCBGbG9hdFBvaW50JiBjZW50ZXIsIGNvbnN0IEZsb2F0U2l6ZSYgcmFkaWks
IGNvbnN0IEZsb2F0UG9pbnQmIHBvaW50KQogeworICAgIGlmIChyYWRpaS53aWR0aCgpIDw9IDAg
fHwgcmFkaWkuaGVpZ2h0KCkgPD0gMCkKKyAgICAgICAgcmV0dXJuIGZhbHNlOworCisgICAgLy8g
Rmlyc3QsIG9mZnNldCB0aGUgcXVlcnkgcG9pbnQgc28gdGhhdCB0aGUgZWxsaXBzZSBpcyBlZmZl
Y3RpdmVseSBjZW50ZXJlZCBhdCB0aGUgb3JpZ2luLgogICAgIEZsb2F0UG9pbnQgdHJhbnNmb3Jt
ZWRQb2ludChwb2ludCk7CiAgICAgdHJhbnNmb3JtZWRQb2ludC5tb3ZlKC1jZW50ZXIueCgpLCAt
Y2VudGVyLnkoKSk7Ci0gICAgdHJhbnNmb3JtZWRQb2ludC5zY2FsZShyYWRpaS5oZWlnaHQoKSwg
cmFkaWkud2lkdGgoKSk7Ci0gICAgZmxvYXQgcmFkaXVzID0gcmFkaWkud2lkdGgoKSAqIHJhZGlp
LmhlaWdodCgpOwogCi0gICAgaWYgKHRyYW5zZm9ybWVkUG9pbnQueCgpID4gcmFkaXVzIHx8IHRy
YW5zZm9ybWVkUG9pbnQueSgpID4gcmFkaXVzKQorICAgIC8vIElmIHRoZSBwb2ludCBsaWVzIG91
dHNpZGUgb2YgdGhlIGJvdW5kaW5nIGJveCBkZXRlcm1pbmVkIGJ5IHRoZSByYWRpaSBvZiB0aGUg
ZWxsaXBzZSwgaXQgY2FuJ3QgcG9zc2libHkKKyAgICAvLyBiZSBjb250YWluZWQgd2l0aGluIHRo
ZSBlbGxpcHNlLCBzbyBiYWlsIGVhcmx5LgorICAgIGlmICh0cmFuc2Zvcm1lZFBvaW50LngoKSA8
IC1yYWRpaS53aWR0aCgpIHx8IHRyYW5zZm9ybWVkUG9pbnQueCgpID4gcmFkaWkud2lkdGgoKSB8
fCB0cmFuc2Zvcm1lZFBvaW50LnkoKSA8IC1yYWRpaS5oZWlnaHQoKSB8fCB0cmFuc2Zvcm1lZFBv
aW50LnkoKSA+IHJhZGlpLmhlaWdodCgpKQogICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAgaWYg
KHRyYW5zZm9ybWVkUG9pbnQueCgpICsgdHJhbnNmb3JtZWRQb2ludC55KCkgPD0gcmFkaXVzKQot
ICAgICAgICByZXR1cm4gdHJ1ZTsKLSAgICByZXR1cm4gKHRyYW5zZm9ybWVkUG9pbnQubGVuZ3Ro
U3F1YXJlZCgpIDw9IHJhZGl1cyAqIHJhZGl1cyk7CisKKyAgICAvLyBMZXQgKHgsIHkpIHJlcHJl
c2VudCB0aGUgdHJhbnNsYXRlZCBwb2ludCwgYW5kIGxldCAoUngsIFJ5KSByZXByZXNlbnQgdGhl
IHJhZGlpIG9mIGFuIGVsbGlwc2UgY2VudGVyZWQgYXQgdGhlIG9yaWdpbi4KKyAgICAvLyAoeCwg
eSkgaXMgY29udGFpbmVkIHdpdGhpbiB0aGUgZWxsaXBzZSBpZiwgYWZ0ZXIgc2NhbGluZyB0aGUg
ZWxsaXBzZSB0byBiZSBhIHVuaXQgY2lyY2xlLCB0aGUgaWRlbnRpY2FsbHkgc2NhbGVkCisgICAg
Ly8gcG9pbnQgbGllcyB3aXRoaW4gdGhhdCB1bml0IGNpcmNsZS4gSW4gb3RoZXIgd29yZHMsIHRo
ZSBzcXVhcmVkIGRpc3RhbmNlICh4L1J4KV4yICsgKHkvUnkpXjIgb2YgdGhlIHRyYW5zZm9ybWVk
IHBvaW50CisgICAgLy8gdG8gdGhlIG9yaWdpbiBpcyBubyBncmVhdGVyIHRoYW4gMS4gVGhpcyBp
cyBlcXVpdmFsZW50IHRvIGNoZWNraW5nIHdoZXRoZXIgb3Igbm90IHRoZSBwb2ludCAoeFJ5LCB5
UngpIGxpZXMgd2l0aGluIGEKKyAgICAvLyBjaXJjbGUgb2YgcmFkaXVzIFJ4UnkuCisgICAgdHJh
bnNmb3JtZWRQb2ludC5zY2FsZShyYWRpaS5oZWlnaHQoKSwgcmFkaWkud2lkdGgoKSk7CisgICAg
YXV0byB0cmFuc2Zvcm1lZFJhZGl1cyA9IHJhZGlpLndpZHRoKCkgKiByYWRpaS5oZWlnaHQoKTsK
KworICAgIC8vIFdlIGNhbiBiYWlsIGVhcmx5IGlmIHx4Unl8ICsgfHlSeHwgPD0gUnhSeSB0byBh
dm9pZCBhZGRpdGlvbmFsIG11bHRpcGxpY2F0aW9ucywgc2luY2UgdGhhdCBtZWFucyB0aGUgTWFu
aGF0dGFuIGRpc3RhbmNlCisgICAgLy8gb2YgdGhlIHRyYW5zZm9ybWVkIHBvaW50IGlzIGxlc3Mg
dGhhbiB0aGUgcmFkaXVzLCBzbyB0aGUgcG9pbnQgbXVzdCBsaWUgd2l0aGluIHRoZSB0cmFuc2Zv
cm1lZCBjaXJjbGUuCisgICAgcmV0dXJuIHN0ZDo6YWJzKHRyYW5zZm9ybWVkUG9pbnQueCgpKSAr
IHN0ZDo6YWJzKHRyYW5zZm9ybWVkUG9pbnQueSgpKSA8PSB0cmFuc2Zvcm1lZFJhZGl1cyB8fCB0
cmFuc2Zvcm1lZFBvaW50Lmxlbmd0aFNxdWFyZWQoKSA8PSB0cmFuc2Zvcm1lZFJhZGl1cyAqIHRy
YW5zZm9ybWVkUmFkaXVzOwogfQogCiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9Sb3VuZGVkUmVjdC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9Sb3VuZGVkUmVjdC5jcHAKaW5kZXggNjBhNDUxZjllZjlhNDhmNjM5MGUzMTExOTM0
YTk2Yjk3Y2VjYjYwZC4uNDcxZDRiMzc1YjZjZjZlNTBiNGUwYjUwM2NhOTYyNWFiY2M2NmRlZSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvUm91bmRlZFJlY3Qu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL1JvdW5kZWRSZWN0LmNw
cApAQCAtMjM5LDE0ICsyMzksMTQgQEAgYm9vbCBSb3VuZGVkUmVjdDo6aW50ZXJzZWN0c1F1YWQo
Y29uc3QgRmxvYXRRdWFkJiBxdWFkKSBjb25zdAogCiBib29sIFJvdW5kZWRSZWN0Ojpjb250YWlu
cyhjb25zdCBMYXlvdXRSZWN0JiBvdGhlclJlY3QpIGNvbnN0CiB7Ci0gICAgaWYgKCFyZWN0KCku
Y29udGFpbnMob3RoZXJSZWN0KSkKKyAgICBpZiAoIXJlY3QoKS5jb250YWlucyhvdGhlclJlY3Qp
IHx8ICFpc1JlbmRlcmFibGUoKSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwogCiAgICAgY29uc3Qg
TGF5b3V0U2l6ZSYgdG9wTGVmdCA9IG1fcmFkaWkudG9wTGVmdCgpOwogICAgIGlmICghdG9wTGVm
dC5pc0VtcHR5KCkpIHsKICAgICAgICAgRmxvYXRQb2ludCBjZW50ZXIgPSB7IG1fcmVjdC54KCkg
KyB0b3BMZWZ0LndpZHRoKCksIG1fcmVjdC55KCkgKyB0b3BMZWZ0LmhlaWdodCgpIH07CiAgICAg
ICAgIGlmIChvdGhlclJlY3QueCgpIDw9IGNlbnRlci54KCkgJiYgb3RoZXJSZWN0LnkoKSA8PSBj
ZW50ZXIueSgpKSB7Ci0gICAgICAgICAgICBpZiAoIWVsbGlwc2VDb250YWluc1BvaW50KGNlbnRl
ciwgdG9wTGVmdCwgb3RoZXJSZWN0LmxvY2F0aW9uKCkpKQorICAgICAgICAgICAgaWYgKCFlbGxp
cHNlQ29udGFpbnNQb2ludChjZW50ZXIsIHRvcExlZnQsIG90aGVyUmVjdC5taW5YTWluWUNvcm5l
cigpKSkKICAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgICAgIH0KICAgICB9CkBA
IC0yNTUsNyArMjU1LDcgQEAgYm9vbCBSb3VuZGVkUmVjdDo6Y29udGFpbnMoY29uc3QgTGF5b3V0
UmVjdCYgb3RoZXJSZWN0KSBjb25zdAogICAgIGlmICghdG9wUmlnaHQuaXNFbXB0eSgpKSB7CiAg
ICAgICAgIEZsb2F0UG9pbnQgY2VudGVyID0geyBtX3JlY3QubWF4WCgpIC0gdG9wUmlnaHQud2lk
dGgoKSwgbV9yZWN0LnkoKSArIHRvcFJpZ2h0LmhlaWdodCgpIH07CiAgICAgICAgIGlmIChvdGhl
clJlY3QubWF4WCgpID49IGNlbnRlci54KCkgJiYgb3RoZXJSZWN0LnkoKSA8PSBjZW50ZXIueSgp
KSB7Ci0gICAgICAgICAgICBpZiAoIWVsbGlwc2VDb250YWluc1BvaW50KGNlbnRlciwgdG9wUmln
aHQsIG90aGVyUmVjdC5sb2NhdGlvbigpKSkKKyAgICAgICAgICAgIGlmICghZWxsaXBzZUNvbnRh
aW5zUG9pbnQoY2VudGVyLCB0b3BSaWdodCwgb3RoZXJSZWN0Lm1heFhNaW5ZQ29ybmVyKCkpKQog
ICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICAgICAgfQogICAgIH0KQEAgLTI2Myw4
ICsyNjMsOCBAQCBib29sIFJvdW5kZWRSZWN0Ojpjb250YWlucyhjb25zdCBMYXlvdXRSZWN0JiBv
dGhlclJlY3QpIGNvbnN0CiAgICAgY29uc3QgTGF5b3V0U2l6ZSYgYm90dG9tTGVmdCA9IG1fcmFk
aWkuYm90dG9tTGVmdCgpOwogICAgIGlmICghYm90dG9tTGVmdC5pc0VtcHR5KCkpIHsKICAgICAg
ICAgRmxvYXRQb2ludCBjZW50ZXIgPSB7IG1fcmVjdC54KCkgKyBib3R0b21MZWZ0LndpZHRoKCks
IG1fcmVjdC5tYXhZKCkgLSBib3R0b21MZWZ0LmhlaWdodCgpIH07Ci0gICAgICAgIGlmIChvdGhl
clJlY3QubWF4WCgpID49IGNlbnRlci54KCkgJiYgb3RoZXJSZWN0Lm1heFkoKSA+PSBjZW50ZXIu
eSgpKSB7Ci0gICAgICAgICAgICBpZiAoIWVsbGlwc2VDb250YWluc1BvaW50KGNlbnRlciwgYm90
dG9tTGVmdCwgb3RoZXJSZWN0LmxvY2F0aW9uKCkpKQorICAgICAgICBpZiAob3RoZXJSZWN0Lngo
KSA8PSBjZW50ZXIueCgpICYmIG90aGVyUmVjdC5tYXhZKCkgPj0gY2VudGVyLnkoKSkgeworICAg
ICAgICAgICAgaWYgKCFlbGxpcHNlQ29udGFpbnNQb2ludChjZW50ZXIsIGJvdHRvbUxlZnQsIG90
aGVyUmVjdC5taW5YTWF4WUNvcm5lcigpKSkKICAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7
CiAgICAgICAgIH0KICAgICB9CkBAIC0yNzIsOCArMjcyLDggQEAgYm9vbCBSb3VuZGVkUmVjdDo6
Y29udGFpbnMoY29uc3QgTGF5b3V0UmVjdCYgb3RoZXJSZWN0KSBjb25zdAogICAgIGNvbnN0IExh
eW91dFNpemUmIGJvdHRvbVJpZ2h0ID0gbV9yYWRpaS5ib3R0b21SaWdodCgpOwogICAgIGlmICgh
Ym90dG9tUmlnaHQuaXNFbXB0eSgpKSB7CiAgICAgICAgIEZsb2F0UG9pbnQgY2VudGVyID0geyBt
X3JlY3QubWF4WCgpIC0gYm90dG9tUmlnaHQud2lkdGgoKSwgbV9yZWN0Lm1heFkoKSAtIGJvdHRv
bVJpZ2h0LmhlaWdodCgpIH07Ci0gICAgICAgIGlmIChvdGhlclJlY3QueCgpIDw9IGNlbnRlci54
KCkgJiYgb3RoZXJSZWN0Lm1heFkoKSA+PSBjZW50ZXIueSgpKSB7Ci0gICAgICAgICAgICBpZiAo
IWVsbGlwc2VDb250YWluc1BvaW50KGNlbnRlciwgYm90dG9tUmlnaHQsIG90aGVyUmVjdC5sb2Nh
dGlvbigpKSkKKyAgICAgICAgaWYgKG90aGVyUmVjdC5tYXhYKCkgPj0gY2VudGVyLngoKSAmJiBv
dGhlclJlY3QubWF4WSgpID49IGNlbnRlci55KCkpIHsKKyAgICAgICAgICAgIGlmICghZWxsaXBz
ZUNvbnRhaW5zUG9pbnQoY2VudGVyLCBib3R0b21SaWdodCwgb3RoZXJSZWN0Lm1heFhNYXhZQ29y
bmVyKCkpKQogICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICAgICAgfQogICAgIH0K
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL1JvdW5kZWRSZWN0
LmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9Sb3VuZGVkUmVjdC5oCmluZGV4
IDNmMmY3ZWJjOGQ0M2EyM2NhOGVjNGViOTM0YmVjYjJmMTM1NzUyM2QuLmEyODUyZWJjOWFhODFk
NGEwYTY1ZGRlN2IxNmFmMjA3NTgzOTEyNjMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL1JvdW5kZWRSZWN0LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvUm91bmRlZFJlY3QuaApAQCAtODAsNyArODAsNyBAQCBwdWJsaWM6CiAKICAg
ICBleHBsaWNpdCBSb3VuZGVkUmVjdChjb25zdCBMYXlvdXRSZWN0JiwgY29uc3QgUmFkaWkmID0g
UmFkaWkoKSk7CiAgICAgUm91bmRlZFJlY3QoY29uc3QgTGF5b3V0VW5pdCYsIGNvbnN0IExheW91
dFVuaXQmLCBjb25zdCBMYXlvdXRVbml0JiB3aWR0aCwgY29uc3QgTGF5b3V0VW5pdCYgaGVpZ2h0
KTsKLSAgICBSb3VuZGVkUmVjdChjb25zdCBMYXlvdXRSZWN0JiwgY29uc3QgTGF5b3V0U2l6ZSYg
dG9wTGVmdCwgY29uc3QgTGF5b3V0U2l6ZSYgdG9wUmlnaHQsIGNvbnN0IExheW91dFNpemUmIGJv
dHRvbUxlZnQsIGNvbnN0IExheW91dFNpemUmIGJvdHRvbVJpZ2h0KTsKKyAgICBXRUJDT1JFX0VY
UE9SVCBSb3VuZGVkUmVjdChjb25zdCBMYXlvdXRSZWN0JiwgY29uc3QgTGF5b3V0U2l6ZSYgdG9w
TGVmdCwgY29uc3QgTGF5b3V0U2l6ZSYgdG9wUmlnaHQsIGNvbnN0IExheW91dFNpemUmIGJvdHRv
bUxlZnQsIGNvbnN0IExheW91dFNpemUmIGJvdHRvbVJpZ2h0KTsKIAogICAgIGNvbnN0IExheW91
dFJlY3QmIHJlY3QoKSBjb25zdCB7IHJldHVybiBtX3JlY3Q7IH0KICAgICBjb25zdCBSYWRpaSYg
cmFkaWkoKSBjb25zdCB7IHJldHVybiBtX3JhZGlpOyB9CkBAIC0xMDYsNyArMTA2LDcgQEAgcHVi
bGljOgogICAgIC8vIFRlc3RzIHdoZXRoZXIgdGhlIHF1YWQgaW50ZXJzZWN0cyBhbnkgcGFydCBv
ZiB0aGlzIHJvdW5kZWQgcmVjdGFuZ2xlLgogICAgIC8vIFRoaXMgb25seSB3b3JrcyBmb3IgY29u
dmV4IHF1YWRzLgogICAgIGJvb2wgaW50ZXJzZWN0c1F1YWQoY29uc3QgRmxvYXRRdWFkJikgY29u
c3Q7Ci0gICAgYm9vbCBjb250YWlucyhjb25zdCBMYXlvdXRSZWN0JikgY29uc3Q7CisgICAgV0VC
Q09SRV9FWFBPUlQgYm9vbCBjb250YWlucyhjb25zdCBMYXlvdXRSZWN0JikgY29uc3Q7CiAKICAg
ICBGbG9hdFJvdW5kZWRSZWN0IHBpeGVsU25hcHBlZFJvdW5kZWRSZWN0Rm9yUGFpbnRpbmcoZmxv
YXQgZGV2aWNlU2NhbGVGYWN0b3IpIGNvbnN0OwogCmRpZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VM
b2cgYi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggODk1NmU0MjQwN2NjYTZhMTk4ZTNhZTI3OTc1MDE4
NzBjYmJkZjc1OS4uOTJlZTMyZTQxMWYxMWI2MzFmNjVkNTE1YWFhYWQ1MjU1MzM1OTA3ZSAxMDA2
NDQKLS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSwzICsx
LDE4IEBACisyMDE3LTA5LTE5ICBXZW5zb24gSHNpZWggIDx3ZW5zb25faHNpZWhAYXBwbGUuY29t
PgorCisgICAgICAgIFJFR1JFU1NJT04gKHIyMTU2MTMpOiBJbmNvcnJlY3QgY29ybmVycyBjbGlw
cGluZyB3aXRoIGJvcmRlci1yYWRpdXMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTE3NjQ5OAorICAgICAgICA8cmRhcjovL3Byb2JsZW0vMzQxMTI2MDc+
CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgVGltIEhvcnRvbi4KKworICAgICAgICBBZGQgV2ViQ29y
ZSBBUEkgdGVzdHMgZm9yIFJvdW5kZWRSZWN0Ojpjb250YWlucygpLgorCisgICAgICAgICogVGVz
dFdlYktpdEFQSS9UZXN0V2ViS2l0QVBJLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6CisgICAg
ICAgICogVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJDb3JlL1JvdW5kZWRSZWN0VGVzdHMuY3BwOiBB
ZGRlZC4KKyAgICAgICAgKFRlc3RXZWJLaXRBUEk6OmxheW91dFJlY3QpOgorICAgICAgICAoVGVz
dFdlYktpdEFQSTo6VEVTVCk6CisKIDIwMTctMDktMTkgIEZpbGlwIFBpemxvICA8ZnBpemxvQGFw
cGxlLmNvbT4KIAogICAgICAgICBQcmltaXRpdmUgcHJvdG9jb2wgc2hvdWxkIGhhdmUgY2FwaXRh
bCBuYW1lCmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RXZWJLaXRBUEkueGNv
ZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdFdlYktpdEFQ
SS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IDI0NTVkOTljOWY1OGZlYzhlNzExOWQ0
ZWI3YThmNTBhODQ2NGE2NGUuLmYxZGI4ZTBhODhjOTI4NzhkYjRjMGQ2ODEyY2JjZmIyZmJiZDM2
YTcgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdFdlYktpdEFQSS54Y29kZXBy
b2ovcHJvamVjdC5wYnhwcm9qCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdFdlYktpdEFQ
SS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC02NjIsNiArNjYyLDcgQEAKIAkJRUNBNjgw
Q0UxRTY4Q0MwOTAwNzMxRDIwIC8qIFN0cmluZ1V0aWxpdGllcy5tbSBpbiBTb3VyY2VzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEVDQTY4MENEMUU2OENDMDkwMDczMUQyMCAv
KiBTdHJpbmdVdGlsaXRpZXMubW0gKi87IH07CiAJCUY0MDdGRTM5MUYxRDBERkMwMDE3Q0YyNSAv
KiBlbm9ybW91cy5zdmcgaW4gQ29weSBSZXNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gRjQwN0ZFMzgxRjFEMERFNjAwMTdDRjI1IC8qIGVub3Jtb3VzLnN2ZyAqLzsg
fTsKIAkJRjQxNTA4NkQxREEwNDBDNTAwNDRCRTlCIC8qIHBsYXktYXVkaW8tb24tY2xpY2suaHRt
bCBpbiBDb3B5IFJlc291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBG
NDE1MDg2QzFEQTA0MEMxMDA0NEJFOUIgLyogcGxheS1hdWRpby1vbi1jbGljay5odG1sICovOyB9
OworCQlGNDE4QkUxNTFGNzFCN0RDMDAxOTcwRTYgLyogUm91bmRlZFJlY3RUZXN0cy5jcHAgaW4g
U291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGNDE4QkUxNDFGNzFC
N0RDMDAxOTcwRTYgLyogUm91bmRlZFJlY3RUZXN0cy5jcHAgKi87IH07CiAJCUY0MTk0QUQxMUY1
QTMyMDEwMEFERDgzRiAvKiBkcm9wLXRhcmdldHMuaHRtbCBpbiBDb3B5IFJlc291cmNlcyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGNDE5NEFEMDFGNUEyRUE1MDBBREQ4M0Yg
LyogZHJvcC10YXJnZXRzLmh0bWwgKi87IH07CiAJCUY0MUFCOTlGMUVGNDY5NkIwMDgzRkEwOCAv
KiBhdXRvZm9jdXMtY29udGVudGVkaXRhYmxlLmh0bWwgaW4gQ29weSBSZXNvdXJjZXMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRjQxQUI5OTgxRUY0NjkyQzAwODNGQTA4IC8q
IGF1dG9mb2N1cy1jb250ZW50ZWRpdGFibGUuaHRtbCAqLzsgfTsKIAkJRjQxQUI5QTAxRUY0Njk2
QjAwODNGQTA4IC8qIGJhY2tncm91bmQtaW1hZ2UtbGluay1hbmQtaW5wdXQuaHRtbCBpbiBDb3B5
IFJlc291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGNDFBQjk5NzFF
RjQ2OTJDMDA4M0ZBMDggLyogYmFja2dyb3VuZC1pbWFnZS1saW5rLWFuZC1pbnB1dC5odG1sICov
OyB9OwpAQCAtMTcwMSw2ICsxNzAyLDcgQEAKIAkJRjNGQzNFRTIxMzY3OEI3MzAwMTI2QTY1IC8q
IGxpYmd0ZXN0LmEgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5
cGUgPSBhcmNoaXZlLmFyOyBwYXRoID0gbGliZ3Rlc3QuYTsgc291cmNlVHJlZSA9IEJVSUxUX1BS
T0RVQ1RTX0RJUjsgfTsKIAkJRjQwN0ZFMzgxRjFEMERFNjAwMTdDRjI1IC8qIGVub3Jtb3VzLnN2
ZyAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7
IHBhdGggPSBlbm9ybW91cy5zdmc7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUY0MTUw
ODZDMURBMDQwQzEwMDQ0QkU5QiAvKiBwbGF5LWF1ZGlvLW9uLWNsaWNrLmh0bWwgKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSB0ZXh0Lmh0bWw7IHBhdGggPSAicGxheS1hdWRpby1vbi1jbGljay5odG1sIjsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKKwkJRjQxOEJFMTQxRjcxQjdEQzAwMTk3MEU2IC8qIFJvdW5kZWRS
ZWN0VGVzdHMuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gUm91bmRlZFJlY3RUZXN0cy5jcHA7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUY0MTk0QUQwMUY1QTJFQTUwMEFERDgzRiAvKiBk
cm9wLXRhcmdldHMuaHRtbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQuaHRtbDsgcGF0aCA9ICJkcm9wLXRhcmdl
dHMuaHRtbCI7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUY0MUFCOTkzMUVGNDY5MkMw
MDgzRkEwOCAvKiBpbWFnZS1hbmQtdGV4dGFyZWEuaHRtbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQuaHRtbDsgcGF0aCA9ICJpbWFnZS1hbmQt
dGV4dGFyZWEuaHRtbCI7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUY0MUFCOTk0MUVG
NDY5MkMwMDgzRkEwOCAvKiBwcmV2ZW50LW9wZXJhdGlvbi5odG1sICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dC5odG1sOyBwYXRoID0gInByZXZl
bnQtb3BlcmF0aW9uLmh0bWwiOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtMjA4NSw2
ICsyMDg3LDcgQEAKIAkJCQkwNzZFNTA3RTFGNDUwMzFFMDA2RTlGNUEgLyogTG9nZ2luZy5jcHAg
Ki8sCiAJCQkJQTVCMTQ5REQxRjVBMTlEQzAwQzZEQUZGIC8qIE1JTUVUeXBlUmVnaXN0cnkuY3Bw
ICovLAogCQkJCUNEMjI1QzA3MUM0NUE2OTIwMDE0MDc2MSAvKiBQYXJzZWRDb250ZW50UmFuZ2Uu
Y3BwICovLAorCQkJCUY0MThCRTE0MUY3MUI3REMwMDE5NzBFNiAvKiBSb3VuZGVkUmVjdFRlc3Rz
LmNwcCAqLywKIAkJCQlDRENGQTdBOTFFNDUxMjJGMDBDMjQzM0QgLyogU2FtcGxlTWFwLmNwcCAq
LywKIAkJCQlDRTA2REY5QTFFMTg1MUYyMDBFNTcwQzkgLyogU2VjdXJpdHlPcmlnaW4uY3BwICov
LAogCQkJCTQxOTczQjVDMUFGMjI4NzUwMDZDN0IzNiAvKiBTaGFyZWRCdWZmZXIuY3BwICovLApA
QCAtMzMzOSw2ICszMzQyLDcgQEAKIAkJCQk3Q0NFN0YxMTFBNDExQUU2MDA0NDdDNEMgLyogUmVz
dG9yZVNlc3Npb25TdGF0ZUNvbnRhaW5pbmdGb3JtRGF0YS5jcHAgaW4gU291cmNlcyAqLywKIAkJ
CQk4MzVDRjk2NzFEMjVGQ0Q2MDAxQTY1RDQgLyogUmVzdG9yZVNlc3Npb25TdGF0ZVdpdGhvdXRO
YXZpZ2F0aW9uLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTQ2RTgxNkY4MUU3OUUyOUMwMDM3NUFE
QyAvKiBSZXN0b3JlU3RhdGVBZnRlclRlcm1pbmF0aW9uLm1tIGluIFNvdXJjZXMgKi8sCisJCQkJ
RjQxOEJFMTUxRjcxQjdEQzAwMTk3MEU2IC8qIFJvdW5kZWRSZWN0VGVzdHMuY3BwIGluIFNvdXJj
ZXMgKi8sCiAJCQkJQTE4MEMwRkExRUU2N0RGMDAwNDY4RjQ3IC8qIFJ1bk9wZW5QYW5lbC5tbSBp
biBTb3VyY2VzICovLAogCQkJCUNEQ0ZBN0FBMUU0NTE4MzIwMEMyNDMzRCAvKiBTYW1wbGVNYXAu
Y3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJN0NDRTdGMTIxQTQxMUFFNjAwNDQ3QzRDIC8qIFNjcm9s
bFBpbm5pbmdCZWhhdmlvcnMuY3BwIGluIFNvdXJjZXMgKi8sCkBAIC0zNDczLDYgKzM0NzcsNyBA
QAogCQkJYnVpbGRBY3Rpb25NYXNrID0gMjE0NzQ4MzY0NzsKIAkJCWZpbGVzID0gKAogCQkJCTM3
RTdERDY3MUVBMDcxRjMwMDlCMzk2RCAvKiBBZGRpdGlvbmFsUmVhZEFjY2Vzc0FsbG93ZWRVUkxz
UGx1Z2luLm1tIGluIFNvdXJjZXMgKi8sCisJCQkJNzU0Q0VDODExRjY3MjJGMjAwRDAwMzlBIC8q
IEF1dG9GaWxsQXZhaWxhYmxlLm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJMzc0QjdBNjExREYzNzFD
RjAwQUNDQjZDIC8qIEJ1bmRsZUVkaXRpbmdEZWxlZ2F0ZVBsdWdJbi5tbSBpbiBTb3VyY2VzICov
LAogCQkJCUExM0VCQkIwMUI4NzQzNkYwMDA5NzExMCAvKiBCdW5kbGVQYXJhbWV0ZXJzUGx1Z0lu
Lm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJMzdBNzA5QUYxRTNFQTk3RTAwQ0E1OTY5IC8qIEJ1bmRs
ZVJhbmdlSGFuZGxlUGx1Z0luLm1tIGluIFNvdXJjZXMgKi8sCkBAIC0zNDgxLDcgKzM0ODYsNiBA
QAogCQkJCUExNEZDNThCMUI4OTkyNzEwMEQxMDdFQiAvKiBDb250ZW50RmlsdGVyaW5nUGx1Z0lu
Lm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJQTEzRUJCQUIxQjg3NDM0NjAwMDk3MTEwIC8qIFBsYXRm
b3JtVXRpbGl0aWVzQ29jb2EubW0gaW4gU291cmNlcyAqLywKIAkJCQkxQTRGODFDRjFCREZGRDUz
MDA0RTY3MkUgLyogUmVtb3RlT2JqZWN0UmVnaXN0cnlQbHVnSW4ubW0gaW4gU291cmNlcyAqLywK
LQkJCQk3NTRDRUM4MTFGNjcyMkYyMDBEMDAzOUEgLyogQXV0b0ZpbGxBdmFpbGFibGUubW0gaW4g
U291cmNlcyAqLywKIAkJCQlBMTJEREMwMjFFODM3QzI0MDBDRjZDQUUgLyogUmVuZGVyZWRJbWFn
ZVdpdGhPcHRpb25zUGx1Z0luLm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJN0M4ODJFMDkxQzgwQzYz
MDAwNkJGNzMxIC8qIFVzZXJDb250ZW50V29ybGRQbHVnSW4ubW0gaW4gU291cmNlcyAqLywKIAkJ
CQk3QzgzRTAzRDFEMEE2MEQ2MDBGRUJDRjMgLyogVXRpbGl0aWVzQ29jb2EubW0gaW4gU291cmNl
cyAqLywKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViQ29yZS9Sb3Vu
ZGVkUmVjdFRlc3RzLmNwcCBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViQ29yZS9Sb3Vu
ZGVkUmVjdFRlc3RzLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi45NjM4MjdkYTNiNzA2MGM1MTFmZWYwZDdiNGRh
MDhmNTdhNDMyYTIwCi0tLSAvZGV2L251bGwKKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0
cy9XZWJDb3JlL1JvdW5kZWRSZWN0VGVzdHMuY3BwCkBAIC0wLDAgKzEsNzMgQEAKKy8qCisgKiBD
b3B5cmlnaHQgKEMpIDIwMTcgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAq
IFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGgg
b3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQg
dGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRp
b25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAg
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVj
ZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0
aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9u
LgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRT
IENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdB
UlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQg
V0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxB
UgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5D
LiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElS
RUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFM
IERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgor
ICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBS
T0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBP
TiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklD
VCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkK
KyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBF
VkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAq
LworCisjaW5jbHVkZSAiY29uZmlnLmgiCisKKyNpbmNsdWRlIDxXZWJDb3JlL1JvdW5kZWRSZWN0
Lmg+CisKK3VzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOworCituYW1lc3BhY2UgVGVzdFdlYktpdEFQ
SSB7CisKK3N0YXRpYyBMYXlvdXRSZWN0IGxheW91dFJlY3QoZmxvYXQgeCwgZmxvYXQgeSwgZmxv
YXQgd2lkdGgsIGZsb2F0IGhlaWdodCkKK3sKKyAgICByZXR1cm4geyBMYXlvdXRQb2ludCh4LCB5
KSwgTGF5b3V0U2l6ZSh3aWR0aCwgaGVpZ2h0KSB9OworfQorCitURVNUKFdlYkNvcmUsIFJvdW5k
ZWRSZWN0Q29udGFpbnNSZWN0KQoreworICAgIGF1dG8gcm91bmRlZFJlY3RCb3VuZHMgPSBsYXlv
dXRSZWN0KC0xMCwgLTQwLCA0MCwgODApOworICAgIFJvdW5kZWRSZWN0IHJvdW5kZWRSZWN0KHJv
dW5kZWRSZWN0Qm91bmRzLCB7IDEwLCAxMCB9LCB7IDEwLCAyMCB9LCB7IDAsIDAgfSwgeyAyMCwg
NDAgfSk7CisKKyAgICAvLyBDYXNlcyB3aGVyZSB0aGUgb3RoZXIgcmVjdCBpcyBvdXRzaWRlIG9m
IHRoZSByb3VuZGVkIHJlY3QncyBib3VuZHMuCisgICAgRVhQRUNUX0ZBTFNFKHJvdW5kZWRSZWN0
LmNvbnRhaW5zKGxheW91dFJlY3QoLTQwLCAtMTAsIDEwLCAxMCkpKTsKKyAgICBFWFBFQ1RfRkFM
U0Uocm91bmRlZFJlY3QuY29udGFpbnMobGF5b3V0UmVjdCgtNDAsIDEwLCAxMDAsIDEwKSkpOwor
ICAgIEVYUEVDVF9GQUxTRShyb3VuZGVkUmVjdC5jb250YWlucyhsYXlvdXRSZWN0KDIwLCAyMCwg
NjAsIDYwKSkpOworICAgIEVYUEVDVF9GQUxTRShyb3VuZGVkUmVjdC5jb250YWlucyhsYXlvdXRS
ZWN0KDEwLCAtODAsIDEwLCAyMDApKSk7CisgICAgRVhQRUNUX0ZBTFNFKHJvdW5kZWRSZWN0LmNv
bnRhaW5zKGxheW91dFJlY3QoLTgwLCAtODAsIDE2MCwgMTYwKSkpOworCisgICAgLy8gQ2FzZXMg
d2hlcmUgdGhlIG90aGVyIHJlY3QgZG9lc24ndCBpbnRlcnNlY3Qgd2l0aCBhbnkgY29ybmVycy4K
KyAgICBFWFBFQ1RfVFJVRShyb3VuZGVkUmVjdC5jb250YWlucyhsYXlvdXRSZWN0KC01LCAtNSwg
MTAsIDEwKSkpOworICAgIEVYUEVDVF9UUlVFKHJvdW5kZWRSZWN0LmNvbnRhaW5zKGxheW91dFJl
Y3QoMjAsIC0xMCwgNSwgNSkpKTsKKyAgICBFWFBFQ1RfVFJVRShyb3VuZGVkUmVjdC5jb250YWlu
cyhsYXlvdXRSZWN0KC01LCA1LCA1LCA1KSkpOworICAgIEVYUEVDVF9UUlVFKHJvdW5kZWRSZWN0
LmNvbnRhaW5zKGxheW91dFJlY3QoMCwgMCwgMTAsIDEwKSkpOworICAgIEVYUEVDVF9UUlVFKHJv
dW5kZWRSZWN0LmNvbnRhaW5zKGxheW91dFJlY3QoMCwgLTEwLCAxMCwgMTApKSk7CisKKyAgICAv
LyBDYXNlcyB3aGVyZSB0aGUgb3RoZXIgcmVjdCBpbnRlcnNlY3RzIGF0IG9uZSBvZiB0aGUgcm91
bmRlZCByZWN0J3MgY29ybmVycy4KKyAgICBFWFBFQ1RfRkFMU0Uocm91bmRlZFJlY3QuY29udGFp
bnMobGF5b3V0UmVjdCgtOSwgLTM5LCAyMCwgNDApKSk7CisgICAgRVhQRUNUX1RSVUUocm91bmRl
ZFJlY3QuY29udGFpbnMobGF5b3V0UmVjdCgtMSwgLTMxLCAyMCwgNDApKSk7CisgICAgRVhQRUNU
X0ZBTFNFKHJvdW5kZWRSZWN0LmNvbnRhaW5zKGxheW91dFJlY3QoMjAsIC0zMCwgMTAsIDEwKSkp
OworICAgIEVYUEVDVF9UUlVFKHJvdW5kZWRSZWN0LmNvbnRhaW5zKGxheW91dFJlY3QoMTAsIC0z
MCwgMTEsIDExKSkpOworICAgIEVYUEVDVF9GQUxTRShyb3VuZGVkUmVjdC5jb250YWlucyhsYXlv
dXRSZWN0KDE1LCAyNSwgMTQsIDE0KSkpOworICAgIEVYUEVDVF9UUlVFKHJvdW5kZWRSZWN0LmNv
bnRhaW5zKGxheW91dFJlY3QoMTUsIDI1LCAzLCAzKSkpOworICAgIEVYUEVDVF9UUlVFKHJvdW5k
ZWRSZWN0LmNvbnRhaW5zKGxheW91dFJlY3QoLTEwLCAyMCwgMTAsIDIwKSkpOworCisgICAgLy8g
VGhlIG90aGVyIHJlY3QgaXMgZXF1YWwgdG8gdGhlIHJvdW5kZWQgcmVjdCdzIGJvdW5kcy4KKyAg
ICBFWFBFQ1RfRkFMU0Uocm91bmRlZFJlY3QuY29udGFpbnMocm91bmRlZFJlY3RCb3VuZHMpKTsK
KyAgICBSb3VuZGVkUmVjdCBub25Sb3VuZGVkUmVjdChyb3VuZGVkUmVjdEJvdW5kcywgeyAwLCAw
IH0sIHsgMCwgMCB9LCB7IDAsIDAgfSwgeyAwLCAwIH0pOworICAgIEVYUEVDVF9UUlVFKG5vblJv
dW5kZWRSZWN0LmNvbnRhaW5zKHJvdW5kZWRSZWN0Qm91bmRzKSk7Cit9CisKK30K
</data>

          </attachment>
      

    </bug>

</bugzilla>