<?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>217365</bug_id>
          
          <creation_ts>2020-10-05 21:58:28 -0700</creation_ts>
          <short_desc>[Payment Request] Calling PaymentRequest&apos;s show() should consume user activation</short_desc>
          <delta_ts>2022-02-04 13:16:40 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>WebCore Misc.</component>
          <version>Other</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>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Marcos Caceres">marcos</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>aestes</cc>
    
    <cc>bfulgham</cc>
    
    <cc>clopez</cc>
    
    <cc>darin</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>hi</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>youennf</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1695028</commentid>
    <comment_count>0</comment_count>
    <who name="Marcos Caceres">marcos</who>
    <bug_when>2020-10-05 21:58:28 -0700</bug_when>
    <thetext>See: 
https://github.com/w3c/payment-request/pull/916

Tests incoming via WPT.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1697171</commentid>
    <comment_count>1</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2020-10-12 21:59:15 -0700</bug_when>
    <thetext>&lt;rdar://problem/70238596&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1786326</commentid>
    <comment_count>2</comment_count>
      <attachid>436153</attachid>
    <who name="Marcos Caceres">marcos</who>
    <bug_when>2021-08-22 23:38:37 -0700</bug_when>
    <thetext>Created attachment 436153
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1787100</commentid>
    <comment_count>3</comment_count>
      <attachid>436374</attachid>
    <who name="Marcos Caceres">marcos</who>
    <bug_when>2021-08-25 00:22:12 -0700</bug_when>
    <thetext>Created attachment 436374
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1787101</commentid>
    <comment_count>4</comment_count>
    <who name="EWS Watchlist">ews-watchlist</who>
    <bug_when>2021-08-25 00:23:12 -0700</bug_when>
    <thetext>This patch modifies the imported WPT tests. Please ensure that any changes on the tests (not coming from a WPT import) are exported to WPT. Please see https://trac.webkit.org/wiki/WPTExportProcess</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1787102</commentid>
    <comment_count>5</comment_count>
      <attachid>436375</attachid>
    <who name="Marcos Caceres">marcos</who>
    <bug_when>2021-08-25 00:26:49 -0700</bug_when>
    <thetext>Created attachment 436375
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1787341</commentid>
    <comment_count>6</comment_count>
      <attachid>436375</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2021-08-25 15:05:42 -0700</bug_when>
    <thetext>Comment on attachment 436375
Patch

Patch needs to update or delete this file:

LayoutTests/platform/ios-wk2/imported/w3c/web-platform-tests/payment-request/show-method-optional-promise-rejects.https-expected.txt</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1787393</commentid>
    <comment_count>7</comment_count>
      <attachid>436443</attachid>
    <who name="Marcos Caceres">marcos</who>
    <bug_when>2021-08-25 17:22:10 -0700</bug_when>
    <thetext>Created attachment 436443
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1787484</commentid>
    <comment_count>8</comment_count>
      <attachid>436443</attachid>
    <who name="youenn fablet">youennf</who>
    <bug_when>2021-08-25 23:59:50 -0700</bug_when>
    <thetext>Comment on attachment 436443
Patch

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

&gt; Source/WebCore/Modules/paymentrequest/PaymentRequest.cpp:375
&gt; +    if (window &amp;&amp; !window-&gt;consumeTransientActivation()) {

Should it be:
if (!window || !window-&gt;consumeTransientActivation()) {
}

&gt; LayoutTests/imported/w3c/web-platform-tests/payment-request/payment-is-showing.https.html:7
&gt; +&lt;meta name=&quot;timeout&quot; content=&quot;long&quot; /&gt;

I am guessing this is resyncing our copy of WPT tests with upstream.
If so, can you update the change log?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1787488</commentid>
    <comment_count>9</comment_count>
      <attachid>436443</attachid>
    <who name="Marcos Caceres">marcos</who>
    <bug_when>2021-08-26 00:24:42 -0700</bug_when>
    <thetext>Comment on attachment 436443
Patch

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

&gt;&gt; Source/WebCore/Modules/paymentrequest/PaymentRequest.cpp:375
&gt;&gt; +    if (window &amp;&amp; !window-&gt;consumeTransientActivation()) {
&gt; 
&gt; Should it be:
&gt; if (!window || !window-&gt;consumeTransientActivation()) {
&gt; }

Yes. You are right. I was unsure if I should treat a nullprt window as a different kind of error. Will update.

&gt;&gt; LayoutTests/imported/w3c/web-platform-tests/payment-request/payment-is-showing.https.html:7
&gt;&gt; +&lt;meta name=&quot;timeout&quot; content=&quot;long&quot; /&gt;
&gt; 
&gt; I am guessing this is resyncing our copy of WPT tests with upstream.
&gt; If so, can you update the change log?

Will do!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1787492</commentid>
    <comment_count>10</comment_count>
      <attachid>436477</attachid>
    <who name="Marcos Caceres">marcos</who>
    <bug_when>2021-08-26 00:35:05 -0700</bug_when>
    <thetext>Created attachment 436477
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1787804</commentid>
    <comment_count>11</comment_count>
      <attachid>436477</attachid>
    <who name="Devin Rousso">hi</who>
    <bug_when>2021-08-26 14:29:31 -0700</bug_when>
    <thetext>Comment on attachment 436477
Patch

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

r=me as well :)

&gt; LayoutTests/imported/w3c/web-platform-tests/payment-request/payment-request-show-method.https-expected.txt:4
&gt; +FAIL Throws if the promise [[state]] is not &apos;created&apos;. promise_rejects_dom: function &quot;function () { throw e }&quot; threw object &quot;SecurityError: show() must be triggered by user activation.&quot; that is not a DOMException InvalidStateError: property &quot;code&quot; is equal to 18, expected 11

Is there a reason that we&apos;re still failing?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1788821</commentid>
    <comment_count>12</comment_count>
    <who name="Marcos Caceres">marcos</who>
    <bug_when>2021-08-31 02:05:17 -0700</bug_when>
    <thetext>(In reply to Devin Rousso from comment #11)
&gt; &gt; LayoutTests/imported/w3c/web-platform-tests/payment-request/payment-request-show-method.https-expected.txt:4
&gt; &gt; +FAIL Throws if the promise [[state]] is not &apos;created&apos;. promise_rejects_dom: function &quot;function () { throw e }&quot; threw object &quot;SecurityError: show() must be triggered by user activation.&quot; that is not a DOMException InvalidStateError: property &quot;code&quot; is equal to 18, expected 11
&gt; 
&gt; Is there a reason that we&apos;re still failing?

Just returning to this now... investigating the failures now.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1788833</commentid>
    <comment_count>13</comment_count>
      <attachid>436859</attachid>
    <who name="Marcos Caceres">marcos</who>
    <bug_when>2021-08-31 02:37:58 -0700</bug_when>
    <thetext>Created attachment 436859
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1788838</commentid>
    <comment_count>14</comment_count>
    <who name="Marcos Caceres">marcos</who>
    <bug_when>2021-08-31 02:49:31 -0700</bug_when>
    <thetext>(In reply to Marcos Caceres from comment #12)
&gt; (In reply to Devin Rousso from comment #11)
&gt; &gt; Is there a reason that we&apos;re still failing?

Bad test. I sent a PR to fix it on the WPT side:
https://github.com/web-platform-tests/wpt/pull/30255
 
And all PASS now! ^_^

&gt; Just returning to this now... investigating the failures now.

Hopefully all good now. 🤞</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1789140</commentid>
    <comment_count>15</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2021-08-31 16:07:51 -0700</bug_when>
    <thetext>Committed r281830 (241163@main): &lt;https://commits.webkit.org/241163@main&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 436859.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1837568</commentid>
    <comment_count>16</comment_count>
    <who name="Brent Fulgham">bfulgham</who>
    <bug_when>2022-02-04 13:16:40 -0800</bug_when>
    <thetext>This change should be present in iOS 15.1, and macOS 12.1 or newer.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>436153</attachid>
            <date>2021-08-22 23:38:37 -0700</date>
            <delta_ts>2021-08-25 00:22:07 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-217365-20210823163836.patch</filename>
            <type>text/plain</type>
            <size>2048</size>
            <attacher name="Marcos Caceres">marcos</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjgxMjIzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggM2Q1OTAwOTQ3MjZkNzcx
YTJmYjRlNDc4ZjZlOTg3NTZkZWUyNGQxYy4uNDhmZGRiZWQ0Y2ZiYzhkNDk4YWE1YjFhN2VkM2M2
NTliZmU0NGM3OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE3IEBACisyMDIxLTA4LTIyICBNYXJj
b3MgQ2FjZXJlcyAgPG1hcmNvc0BtYXJjb3NjLmNvbT4KKworICAgICAgICBbUGF5bWVudCBSZXF1
ZXN0XSBDYWxsaW5nIFBheW1lbnRSZXF1ZXN0J3Mgc2hvdygpIHNob3VsZCBjb25zdW1lIHVzZXIg
YWN0aXZhdGlvbgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9MjE3MzY1CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAg
ICAgVGVzdGVkIGJ5IGV4aXN0aW5nIHRlc3RzOgorICAgICAgICAgIHBheW1lbnQtcmVxdWVzdC9w
YXltZW50LWlzLXNob3dpbmcuaHR0cHMuaHRtbAorICAgICAgICAgIHBheW1lbnQtcmVxdWVzdC9w
YXltZW50LXJlcXVlc3Qtc2hvdy1tZXRob2QuaHR0cHMuaHRtbAorCisgICAgICAgICogTW9kdWxl
cy9wYXltZW50cmVxdWVzdC9QYXltZW50UmVxdWVzdC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpQ
YXltZW50UmVxdWVzdDo6c2hvdyk6CisKIDIwMjEtMDgtMTggIERhdmlkIEtpbHplciAgPGRka2ls
emVyQGFwcGxlLmNvbT4KIAogICAgICAgICBCdWcgMjI5MjY0OiBMZWFrIG9mIENNQnVmZmVyUXVl
dWVSZWYgKHVwIHRvIDc1MiBieXRlcyBlYWNoKSBpbiBjb20uYXBwbGUuV2ViS2l0LkdQVS5EZXZl
bG9wbWVudCBwcm9jZXNzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3BheW1l
bnRyZXF1ZXN0L1BheW1lbnRSZXF1ZXN0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvcGF5
bWVudHJlcXVlc3QvUGF5bWVudFJlcXVlc3QuY3BwCmluZGV4IGE0MWZhMDg2NDI0YjU2ODEyNjY0
NTQ0MzQ3OWFlYWY5YzY5NzNmNGYuLmY5ZDdlMzZhZGFhYTI4OGYxZWMyZjYxMGNmMGMzNjYwNzYx
ZDE1YzQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvcGF5bWVudHJlcXVlc3Qv
UGF5bWVudFJlcXVlc3QuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvcGF5bWVudHJl
cXVlc3QvUGF5bWVudFJlcXVlc3QuY3BwCkBAIC0zNjMsNyArMzYzLDcgQEAgUGF5bWVudFJlcXVl
c3Q6On5QYXltZW50UmVxdWVzdCgpCiAgICAgQVNTRVJUKCFtX2FjdGl2ZVBheW1lbnRIYW5kbGVy
KTsKIH0KIAotLy8gaHR0cHM6Ly93d3cudzMub3JnL1RSL3BheW1lbnQtcmVxdWVzdC8jc2hvdygp
LW1ldGhvZAorLy8gaHR0cHM6Ly93d3cudzMub3JnL1RSL3BheW1lbnQtcmVxdWVzdC8jc2hvdy1t
ZXRob2QKIHZvaWQgUGF5bWVudFJlcXVlc3Q6OnNob3coRG9jdW1lbnQmIGRvY3VtZW50LCBSZWZQ
dHI8RE9NUHJvbWlzZT4mJiBkZXRhaWxzUHJvbWlzZSwgU2hvd1Byb21pc2UmJiBwcm9taXNlKQog
ewogICAgIGlmICghZG9jdW1lbnQuZnJhbWUoKSkgewpAQCAtMzcxLDcgKzM3MSw4IEBAIHZvaWQg
UGF5bWVudFJlcXVlc3Q6OnNob3coRG9jdW1lbnQmIGRvY3VtZW50LCBSZWZQdHI8RE9NUHJvbWlz
ZT4mJiBkZXRhaWxzUHJvbWlzCiAgICAgICAgIHJldHVybjsKICAgICB9CiAKLSAgICBpZiAoIVVz
ZXJHZXN0dXJlSW5kaWNhdG9yOjpwcm9jZXNzaW5nVXNlckdlc3R1cmUoKSkgeworICAgIGF1dG8q
IHdpbmRvdyA9IGRvY3VtZW50LmZyYW1lKCktPndpbmRvdygpOworICAgIGlmICh3aW5kb3cgJiYg
IXdpbmRvdy0+Y29uc3VtZVRyYW5zaWVudEFjdGl2YXRpb24oKSkgewogICAgICAgICBwcm9taXNl
LnJlamVjdChFeGNlcHRpb24geyBTZWN1cml0eUVycm9yLCAic2hvdygpIG11c3QgYmUgdHJpZ2dl
cmVkIGJ5IHVzZXIgYWN0aXZhdGlvbi4iIH0pOwogICAgICAgICByZXR1cm47CiAgICAgfQo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>436374</attachid>
            <date>2021-08-25 00:22:12 -0700</date>
            <delta_ts>2021-08-25 00:26:43 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-217365-20210825172210.patch</filename>
            <type>text/plain</type>
            <size>48638</size>
            <attacher name="Marcos Caceres">marcos</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjgxNTM5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYjFjNGQxMDdjMjJiMzU2
OTU3OGQ3NTZiMzRmOTI5MzAxMjFmNWY2Yy4uOTk0MTY3ZTk4MjNiOWQ3ZjBjZmY1Y2JjMjg1NTY3
MGY5ZGE0MWQwOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE1IEBACisyMDIxLTA4LTI1ICBNYXJj
b3MgQ2FjZXJlcyAgPG1hcmNvc0BtYXJjb3NjLmNvbT4KKworICAgICAgICBbUGF5bWVudCBSZXF1
ZXN0XSBDYWxsaW5nIFBheW1lbnRSZXF1ZXN0J3Mgc2hvdygpIHNob3VsZCBjb25zdW1lIHVzZXIg
YWN0aXZhdGlvbgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9MjE3MzY1CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAg
ICAgTm8gbmV3IHRlc3RzIChPT1BTISkuCisKKyAgICAgICAgKiBNb2R1bGVzL3BheW1lbnRyZXF1
ZXN0L1BheW1lbnRSZXF1ZXN0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlBheW1lbnRSZXF1ZXN0
OjpzaG93KToKKwogMjAyMS0wOC0yNCAgSmVhbi1ZdmVzIEF2ZW5hcmQgIDxqeWFAYXBwbGUuY29t
PgogCiAgICAgICAgIE1lZGlhU2Vzc2lvbiBhcnR3b3JrIFVSTCBpcyBzaG93aW5nIGluIGxvZ3Mu
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3BheW1lbnRyZXF1ZXN0L1BheW1l
bnRSZXF1ZXN0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvcGF5bWVudHJlcXVlc3QvUGF5
bWVudFJlcXVlc3QuY3BwCmluZGV4IGE0MWZhMDg2NDI0YjU2ODEyNjY0NTQ0MzQ3OWFlYWY5YzY5
NzNmNGYuLmY5ZDdlMzZhZGFhYTI4OGYxZWMyZjYxMGNmMGMzNjYwNzYxZDE1YzQgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvcGF5bWVudHJlcXVlc3QvUGF5bWVudFJlcXVlc3Qu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvcGF5bWVudHJlcXVlc3QvUGF5bWVudFJl
cXVlc3QuY3BwCkBAIC0zNjMsNyArMzYzLDcgQEAgUGF5bWVudFJlcXVlc3Q6On5QYXltZW50UmVx
dWVzdCgpCiAgICAgQVNTRVJUKCFtX2FjdGl2ZVBheW1lbnRIYW5kbGVyKTsKIH0KIAotLy8gaHR0
cHM6Ly93d3cudzMub3JnL1RSL3BheW1lbnQtcmVxdWVzdC8jc2hvdygpLW1ldGhvZAorLy8gaHR0
cHM6Ly93d3cudzMub3JnL1RSL3BheW1lbnQtcmVxdWVzdC8jc2hvdy1tZXRob2QKIHZvaWQgUGF5
bWVudFJlcXVlc3Q6OnNob3coRG9jdW1lbnQmIGRvY3VtZW50LCBSZWZQdHI8RE9NUHJvbWlzZT4m
JiBkZXRhaWxzUHJvbWlzZSwgU2hvd1Byb21pc2UmJiBwcm9taXNlKQogewogICAgIGlmICghZG9j
dW1lbnQuZnJhbWUoKSkgewpAQCAtMzcxLDcgKzM3MSw4IEBAIHZvaWQgUGF5bWVudFJlcXVlc3Q6
OnNob3coRG9jdW1lbnQmIGRvY3VtZW50LCBSZWZQdHI8RE9NUHJvbWlzZT4mJiBkZXRhaWxzUHJv
bWlzCiAgICAgICAgIHJldHVybjsKICAgICB9CiAKLSAgICBpZiAoIVVzZXJHZXN0dXJlSW5kaWNh
dG9yOjpwcm9jZXNzaW5nVXNlckdlc3R1cmUoKSkgeworICAgIGF1dG8qIHdpbmRvdyA9IGRvY3Vt
ZW50LmZyYW1lKCktPndpbmRvdygpOworICAgIGlmICh3aW5kb3cgJiYgIXdpbmRvdy0+Y29uc3Vt
ZVRyYW5zaWVudEFjdGl2YXRpb24oKSkgewogICAgICAgICBwcm9taXNlLnJlamVjdChFeGNlcHRp
b24geyBTZWN1cml0eUVycm9yLCAic2hvdygpIG11c3QgYmUgdHJpZ2dlcmVkIGJ5IHVzZXIgYWN0
aXZhdGlvbi4iIH0pOwogICAgICAgICByZXR1cm47CiAgICAgfQpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCmluZGV4IGZkODUyZDYxZmVm
ZDk4ZTgxYTg5ZTAzZTI1M2Q4ZGFhYjlmMTJkMTEuLmJmYWYyNDBkZGI0N2U0ZTcyOTVkNDNkNzg1
ODJiODg2YjRlZDllZmIgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL0NoYW5nZUxvZworKysgYi9M
YXlvdXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxMyBAQAorMjAyMS0wOC0yNSAgTWFyY29z
IENhY2VyZXMgIDxtYXJjb3NAbWFyY29zYy5jb20+CisKKyAgICAgICAgW1BheW1lbnQgUmVxdWVz
dF0gQ2FsbGluZyBQYXltZW50UmVxdWVzdCdzIHNob3coKSBzaG91bGQgY29uc3VtZSB1c2VyIGFj
dGl2YXRpb24KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTIxNzM2NQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAg
ICogaHR0cC90ZXN0cy9wYXltZW50cmVxdWVzdC9wYXltZW50LWlzLXNob3dpbmcuaHR0cHMuaHRt
bDoKKyAgICAgICAgKiBodHRwL3Rlc3RzL3BheW1lbnRyZXF1ZXN0L3BheW1lbnQtcmVxdWVzdC1z
aG93LW1ldGhvZC5odHRwcy5odG1sOgorCiAyMDIxLTA4LTI0ICBFcmljIEh1dGNoaXNvbiAgPGVo
dXRjaGlzb25AYXBwbGUuY29tPgogCiAgICAgICAgIFtCaWdTdXIrIHdrMSBSZWxlYXNlXSBtZWRp
YS92aWRlby1wb3N0ZXItYmFja2dyb3VuZC5odG1sIGlzIGZsYWtpbHkgZmFpbGluZy4KZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2MvQ2hhbmdlTG9nCmluZGV4IDU5NWM1ZjZkOGUyNzAyNjNjOTRjYTM4OTg2MWIx
NjM5N2VmZGQ3NzIuLjIwYTJiMmZlZDkyYWE2OWE3ZDQxYmEzZjk4Mzk3MWY3OThiZGZlMWEgMTAw
NjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE4IEBACisyMDIxLTA4LTI1
ICBNYXJjb3MgQ2FjZXJlcyAgPG1hcmNvc0BtYXJjb3NjLmNvbT4KKworICAgICAgICBbUGF5bWVu
dCBSZXF1ZXN0XSBDYWxsaW5nIFBheW1lbnRSZXF1ZXN0J3Mgc2hvdygpIHNob3VsZCBjb25zdW1l
IHVzZXIgYWN0aXZhdGlvbgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9MjE3MzY1CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisK
KyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvcGF5bWVudC1yZXF1ZXN0L3BheW1lbnQtaXMt
c2hvd2luZy5odHRwcy5odG1sOgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy9wYXltZW50
LXJlcXVlc3QvcGF5bWVudC1yZXF1ZXN0LWNhbm1ha2VwYXltZW50LW1ldGhvZC5odHRwcy1leHBl
Y3RlZC50eHQ6CisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL3BheW1lbnQtcmVxdWVzdC9w
YXltZW50LXJlcXVlc3QtaGFzZW5yb2xsZWRpbnN0cnVtZW50LW1ldGhvZC50ZW50YXRpdmUuaHR0
cHMtZXhwZWN0ZWQudHh0OgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy9wYXltZW50LXJl
cXVlc3QvcGF5bWVudC1yZXF1ZXN0LXNob3ctbWV0aG9kLmh0dHBzLWV4cGVjdGVkLnR4dDogQWRk
ZWQuCisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL3BheW1lbnQtcmVxdWVzdC9wYXltZW50
LXJlcXVlc3Qtc2hvdy1tZXRob2QuaHR0cHMuaHRtbDoKKyAgICAgICAgKiB3ZWItcGxhdGZvcm0t
dGVzdHMvcGF5bWVudC1yZXF1ZXN0L3JlamVjdHNfaWZfbm90X2FjdGl2ZS5odHRwcy5odG1sOgor
ICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy9wYXltZW50LXJlcXVlc3Qvc2hvdy1tZXRob2Qt
b3B0aW9uYWwtcHJvbWlzZS1yZWplY3RzLmh0dHBzLWV4cGVjdGVkLnR4dDoKKwogMjAyMS0wOC0y
NCAgQ2hyaXMgRHVtZXogIDxjZHVtZXpAYXBwbGUuY29tPgogCiAgICAgICAgIEdlb2xvY2F0aW9u
IEFQSSBzaG91bGQgY2FsbGJhY2sgd2l0aCBlcnJvciBpZiBkb2MgaXMgbm90IGZ1bGx5IGFjdGl2
ZQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9wYXltZW50cmVxdWVzdC9wYXlt
ZW50LWlzLXNob3dpbmcuaHR0cHMuaHRtbCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcGF5bWVu
dHJlcXVlc3QvcGF5bWVudC1pcy1zaG93aW5nLmh0dHBzLmh0bWwKaW5kZXggMmU5YTI0YzgwMDJk
Mzg4YThjM2M4ZmY5ZjFhZDg2YmRjODA5YzY5MC4uYTg0YjhhMjRkYjdmM2RhNmMyMmNhZTBmMjcy
OTE2Y2M4ZmIwZjkzZSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9wYXltZW50
cmVxdWVzdC9wYXltZW50LWlzLXNob3dpbmcuaHR0cHMuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9o
dHRwL3Rlc3RzL3BheW1lbnRyZXF1ZXN0L3BheW1lbnQtaXMtc2hvd2luZy5odHRwcy5odG1sCkBA
IC03MSw5ICs3MSwxNCBAQAogICAgICAgLy8gU2V0cyB0aGUgInBheW1lbnQtcmVsZXZhbnQgYnJv
d3NpbmcgY29udGV4dCdzIHBheW1lbnQgcmVxdWVzdCBpcwogICAgICAgLy8gc2hvd2luZyBib29s
ZWFuIiB0byB0cnVlIGFuZCB0aGVuIHRyeSB0byBzaG93IGEgc2Vjb25kIHBheW1lbnQgc2hlZXQg
aW4KICAgICAgIC8vIHRoZSBzYW1lIHdpbmRvdy4gVGhlIHNlY29uZCBzaG93KCkgc2hvdWxkIHJl
amVjdC4KLSAgICAgIGNvbnN0IFtzaG93UHJvbWlzZTEsIHNob3dQcm9taXNlMl0gPSBhd2FpdCBh
Y3RpdmF0ZVRoZW4oCi0gICAgICAgIGFzeW5jICgpID0+IHsKLSAgICAgICAgICByZXR1cm4gW3Jl
cXVlc3QxLnNob3coKSwgcmVxdWVzdDIuc2hvdygpXTsKKyAgICAgIGNvbnN0IFtzaG93UHJvbWlz
ZTFdID0gYXdhaXQgYWN0aXZhdGVUaGVuKAorICAgICAgICAoKSA9PiB7CisgICAgICAgICAgcmV0
dXJuIFtyZXF1ZXN0MS5zaG93KCldCisgICAgICAgIH0KKyAgICAgICk7CisgICAgICBjb25zdCBb
c2hvd1Byb21pc2UyXSA9IGF3YWl0IGFjdGl2YXRlVGhlbigKKyAgICAgICAgKCkgPT4geworICAg
ICAgICAgIHJldHVybiBbcmVxdWVzdDIuc2hvdygpXQogICAgICAgICB9CiAgICAgICApOwogICAg
ICAgYXdhaXQgcHJvbWlzZV9yZWplY3RzKApAQCAtMTE3LDEyICsxMjIsMTggQEAKICAgICAgIGNv
bnN0IGlmcmFtZVJlcXVlc3QgPSBuZXcgaWZyYW1lV2luZG93LlBheW1lbnRSZXF1ZXN0KG1ldGhv
ZHMsIGRldGFpbHMpOwogICAgICAgY29uc3Qgd2luZG93UmVxdWVzdCA9IG5ldyB3aW5kb3cuUGF5
bWVudFJlcXVlc3QobWV0aG9kcywgZGV0YWlscyk7CiAKLSAgICAgIC8vIExldCdzIGdldCBzb21l
IGJsZXNzZWQgc2hvd1Byb21pc2VzCi0gICAgICBjb25zdCBbaWZyYW1lU2hvd1Byb21pc2UsIHdp
bmRvd1Nob3dQcm9taXNlXSA9IGF3YWl0IGFjdGl2YXRlVGhlbigKLSAgICAgICAgYXN5bmMgKCkg
PT4gewotICAgICAgICAgIC8vIGlmcmFtZSBzZXRzICJpcyBzaG93aW5nIGJvb2xlYW4iLCBpZ25v
cmUgdGhlIHJldHVybmVkIHByb21pc2UuCisgICAgICAvLyBMZXQncyBnZXQgYmxlc3NlZCBwcm9t
aXNlIGZvciB0aGUgaWZyYW1lCisgICAgICBjb25zdCBbaWZyYW1lU2hvd1Byb21pc2VdID0gYXdh
aXQgYWN0aXZhdGVUaGVuKAorICAgICAgICAoKSA9PiB7CisgICAgICAgICAgLy8gaWZyYW1lIHNl
dHMgImlzIHNob3dpbmcgYm9vbGVhbiIKKyAgICAgICAgICByZXR1cm4gW2lmcmFtZVJlcXVlc3Qu
c2hvdygpXTsKKyAgICAgICAgfQorICAgICAgKTsKKworICAgICAgY29uc3QgW3dpbmRvd1Nob3dQ
cm9taXNlXSA9IGF3YWl0IGFjdGl2YXRlVGhlbigKKyAgICAgICAgKCkgPT4gewogICAgICAgICAg
IC8vIFRoZSB0b3AgbGV2ZWwgd2luZG93IG5vdyB0cmllcyB0byBzaG93KCkgdGhlIHBheW1lbnQg
cmVxdWVzdC4KLSAgICAgICAgICByZXR1cm4gW2lmcmFtZVJlcXVlc3Quc2hvdygpLCB3aW5kb3dS
ZXF1ZXN0LnNob3coKV07CisgICAgICAgICAgcmV0dXJuIFt3aW5kb3dSZXF1ZXN0LnNob3coKV07
CiAgICAgICAgIH0KICAgICAgICk7CiAKQEAgLTEzMCw3ICsxNDEsNyBAQAogICAgICAgICB0LAog
ICAgICAgICAnQWJvcnRFcnJvcicsCiAgICAgICAgIHdpbmRvd1Nob3dQcm9taXNlLAotICAgICAg
ICAnaWZyYW1lIGlzIGFscmVhZHkgc2hvd2luZyBhIHBheW1lbnQgcmVxdWVzdC4nLAorICAgICAg
ICAnaWZyYW1lIGlzIGFscmVhZHkgc2hvd2luZyBhIHBheW1lbnQgcmVxdWVzdCcsCiAgICAgICAp
OwogCiAgICAgICAvLyBDbGVhbnVwCkBAIC0xNTQsOSArMTY1LDE1IEBACiAgICAgICAvLyBXZSBm
aXJzdCBzaG93IGEgcGF5bWVudCByZXF1ZXN0IHZpYSB0aGUgdGhlIHRvcCBsZXZlbCBicm93c2lu
ZyBjb250ZXh0LAogICAgICAgLy8gd2luZG93UmVxdWVzdC5zaG93KCkgc2V0cyAiaXMgc2hvd2lu
ZyBib29sZWFuIiB0byB0cnVlLiBUaGVuIHdlIHRyeSB0bwogICAgICAgLy8gc2hvdyBhIHBheW1l
bnQgcmVxdWVzdCBpbiB0aGUgaWZyYW1lLCB3aGljaCBzaG91bGQgcmVqZWN0LgotICAgICAgY29u
c3QgW3dpbmRvd1Nob3dQcm9taXNlLCBpZnJhbWVTaG93UHJvbWlzZV0gPSBhd2FpdCBhY3RpdmF0
ZVRoZW4oCi0gICAgICAgIGFzeW5jICgpID0+IHsKLSAgICAgICAgICByZXR1cm4gW3dpbmRvd1Jl
cXVlc3Quc2hvdygpLCBpZnJhbWVSZXF1ZXN0LnNob3coKV07CisgICAgICBjb25zdCBbd2luZG93
U2hvd1Byb21pc2VdID0gYXdhaXQgYWN0aXZhdGVUaGVuKAorICAgICAgICAoKSA9PiB7CisgICAg
ICAgICAgcmV0dXJuIFt3aW5kb3dSZXF1ZXN0LnNob3coKV07CisgICAgICAgIH0KKyAgICAgICk7
CisKKyAgICAgIGNvbnN0IFtpZnJhbWVTaG93UHJvbWlzZV0gPSBhd2FpdCBhY3RpdmF0ZVRoZW4o
CisgICAgICAgICgpID0+IHsKKyAgICAgICAgICByZXR1cm4gW2lmcmFtZVJlcXVlc3Quc2hvdygp
XTsKICAgICAgICAgfQogICAgICAgKTsKIApAQCAtMTg4LDE1ICsyMDUsMTUgQEAKICAgICAgIC8v
IEdldCB0aGUgc2hvd1Byb21pc2UgZm9yIGVhY2ggYnJvd3NpbmcgY29udGV4dC4gRG9pbmcgdGhp
cyBpbiBhIHNlcGFyYXRlCiAgICAgICAvLyB0ZXN0X2RyaXZlci5ibGVzcygpIGlzIGltcG9ydGFu
dCBiZWNhdXNlIHRoZSB1c2VyIGdlc3R1cmUgYnJpbmdzCiAgICAgICAvLyB8d2luZG93fCB0byB0
aGUgZm9yZWdyb3VuZCwgc28gdGhhdCB0aGUgcGF5bWVudCBzaGVldCBjYW4gc2hvdy4KLSAgICAg
IGNvbnN0IFsKLSAgICAgICAgd2luZG93U2hvd1Byb21pc2UsCi0gICAgICAgIGlmcmFtZVNob3dQ
cm9taXNlLAotICAgICAgXSA9IGF3YWl0IGFjdGl2YXRlVGhlbigKKyAgICAgIGNvbnN0IFt3aW5k
b3dTaG93UHJvbWlzZV0gPSBhd2FpdCBhY3RpdmF0ZVRoZW4oCisgICAgICAgICgpID0+IHsKKyAg
ICAgICAgICByZXR1cm4gW3dpbmRvd1JlcXVlc3Quc2hvdygpXTsKKyAgICAgICAgfQorICAgICAg
KTsKKworICAgICAgY29uc3QgWyBpZnJhbWVTaG93UHJvbWlzZSBdID0gYXdhaXQgYWN0aXZhdGVU
aGVuKAogICAgICAgICBhc3luYyAoKSA9PiB7Ci0gICAgICAgICAgcmV0dXJuIFsKLSAgICAgICAg
ICAgIHdpbmRvd1JlcXVlc3Quc2hvdygpLAotICAgICAgICAgICAgaWZyYW1lUmVxdWVzdC5zaG93
KCksCi0gICAgICAgICAgXTsKKyAgICAgICAgICByZXR1cm4gW2lmcmFtZVJlcXVlc3Quc2hvdygp
XTsKICAgICAgICAgfQogICAgICAgKTsKIApAQCAtMjI3LDE1ICsyNDQsMTQgQEAKICAgICAgIC8v
IEdldCB0aGUgc2hvd1Byb21pc2UgZm9yIGVhY2ggYnJvd3NpbmcgY29udGV4dC4gRG9pbmcgdGhp
cyBpbiBhIHNlcGFyYXRlCiAgICAgICAvLyB0ZXN0X2RyaXZlci5ibGVzcygpIGlzIGltcG9ydGFu
dCBiZWNhdXNlIHRoZSB1c2VyIGdlc3R1cmUgYnJpbmdzCiAgICAgICAvLyB8d2luZG93fCB0byB0
aGUgZm9yZWdyb3VuZCwgc28gdGhhdCB0aGUgcGF5bWVudCBzaGVldCBjYW4gc2hvdy4KLSAgICAg
IGNvbnN0IFsKLSAgICAgICAgaWZyYW1lU2hvd1Byb21pc2UsCi0gICAgICAgIHdpbmRvd1Nob3dQ
cm9taXNlLAotICAgICAgXSA9IGF3YWl0IGFjdGl2YXRlVGhlbigKLSAgICAgICAgYXN5bmMgKCkg
PT4gewotICAgICAgICAgIHJldHVybiBbCi0gICAgICAgICAgICBpZnJhbWVSZXF1ZXN0LnNob3co
KSwKLSAgICAgICAgICAgIHdpbmRvd1JlcXVlc3Quc2hvdygpLAotICAgICAgICAgIF07CisgICAg
ICBjb25zdCBbaWZyYW1lU2hvd1Byb21pc2VdID0gYXdhaXQgYWN0aXZhdGVUaGVuKAorICAgICAg
ICAoKSA9PiB7CisgICAgICAgICAgcmV0dXJuIFtpZnJhbWVSZXF1ZXN0LnNob3coKV07CisgICAg
ICAgIH0KKyAgICAgICk7CisgICAgICBjb25zdCBbd2luZG93U2hvd1Byb21pc2VdID0gYXdhaXQg
YWN0aXZhdGVUaGVuKAorICAgICAgICAoKSA9PiB7CisgICAgICAgICAgcmV0dXJuIFt3aW5kb3dS
ZXF1ZXN0LnNob3coKV07CiAgICAgICAgIH0KICAgICAgICk7CiAKZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL2h0dHAvdGVzdHMvcGF5bWVudHJlcXVlc3QvcGF5bWVudC1yZXF1ZXN0LXNob3ctbWV0
aG9kLmh0dHBzLmh0bWwgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3BheW1lbnRyZXF1ZXN0L3Bh
eW1lbnQtcmVxdWVzdC1zaG93LW1ldGhvZC5odHRwcy5odG1sCmluZGV4IDY0ZTUyYzY5ZmUxN2Qz
ZmYxN2Q2ZTlkYWI4MzJkNzE4NTE5MDllMTMuLjQzMmEwOWZlNGM2ODM4NDFiZDhhYTVhYTM5MTkw
MDU0NDQyMDZjYTUgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcGF5bWVudHJl
cXVlc3QvcGF5bWVudC1yZXF1ZXN0LXNob3ctbWV0aG9kLmh0dHBzLmh0bWwKKysrIGIvTGF5b3V0
VGVzdHMvaHR0cC90ZXN0cy9wYXltZW50cmVxdWVzdC9wYXltZW50LXJlcXVlc3Qtc2hvdy1tZXRo
b2QuaHR0cHMuaHRtbApAQCAtNDYsNyArNDYsNyBAQCB0ZXN0KCgpID0+IHsKIHVzZXJfYWN0aXZh
dGlvbl90ZXN0KGFzeW5jIHQgPT4gewogICBjb25zdCByZXF1ZXN0ID0gbmV3IFBheW1lbnRSZXF1
ZXN0KGRlZmF1bHRNZXRob2RzLCBkZWZhdWx0RGV0YWlscyk7CiAgIGNvbnN0IGFjY2VwdFByb21p
c2UgPSByZXF1ZXN0LnNob3coKTsgLy8gU2V0cyBzdGF0ZSB0byAiaW50ZXJhY3RpdmUiCi0gIGF3
YWl0IHByb21pc2VfcmVqZWN0cyh0LCAiSW52YWxpZFN0YXRlRXJyb3IiLCByZXF1ZXN0LnNob3co
KSk7CisgIGF3YWl0IHByb21pc2VfcmVqZWN0cyh0LCAiU2VjdXJpdHlFcnJvciIsIHJlcXVlc3Qu
c2hvdygpKTsKICAgYXdhaXQgcmVxdWVzdC5hYm9ydCgpOwogICBhd2FpdCBwcm9taXNlX3JlamVj
dHModCwgIkFib3J0RXJyb3IiLCBhY2NlcHRQcm9taXNlKTsKIH0sIGBUaHJvd3MgaWYgdGhlIHBy
b21pc2UgW1tzdGF0ZV1dIGlzIG5vdCAiY3JlYXRlZCJgKTsKQEAgLTU2LDcgKzU2LDcgQEAgdXNl
cl9hY3RpdmF0aW9uX3Rlc3QoYXN5bmMgdCA9PiB7CiAgIGNvbnN0IHJlcXVlc3QyID0gbmV3IFBh
eW1lbnRSZXF1ZXN0KGRlZmF1bHRNZXRob2RzLCBkZWZhdWx0RGV0YWlscyk7CiAgIGNvbnN0IGFj
Y2VwdFByb21pc2UxID0gcmVxdWVzdDEuc2hvdygpOwogICBjb25zdCBhY2NlcHRQcm9taXNlMiA9
IHJlcXVlc3QyLnNob3coKTsKLSAgYXdhaXQgcHJvbWlzZV9yZWplY3RzKHQsICJBYm9ydEVycm9y
IiwgYWNjZXB0UHJvbWlzZTIpOworICBhd2FpdCBwcm9taXNlX3JlamVjdHModCwgIlNlY3VyaXR5
RXJyb3IiLCBhY2NlcHRQcm9taXNlMik7CiAgIGF3YWl0IHJlcXVlc3QxLmFib3J0KCk7CiAgIGF3
YWl0IHByb21pc2VfcmVqZWN0cyh0LCAiQWJvcnRFcnJvciIsIGFjY2VwdFByb21pc2UxKTsKIH0s
IGBJZiB0aGUgdXNlciBhZ2VudCdzICJwYXltZW50IHJlcXVlc3QgaXMgc2hvd2luZyIgYm9vbGVh
biBpcyB0cnVlLCB0aGVuIHJldHVybiBhIHByb21pc2UgcmVqZWN0ZWQgd2l0aCBhbiAiQWJvcnRF
cnJvciIgRE9NRXhjZXB0aW9uLmApOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9wYXltZW50LXJlcXVlc3QvcGF5bWVudC1pcy1zaG93aW5n
Lmh0dHBzLmh0bWwgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L3BheW1lbnQtcmVxdWVzdC9wYXltZW50LWlzLXNob3dpbmcuaHR0cHMuaHRtbAppbmRleCBmZWQ2
ZWFmNmQ5ZmFkYTExNDQ2YjMyY2FhYmEwN2I1ZGUyZDg4YjBlLi4zNGI5YWU4MmI2NTMwZTM3MjMw
NDhlMzgzOTM2ODcwOTFiNGZiYmQ3IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3BheW1lbnQtcmVxdWVzdC9wYXltZW50LWlzLXNob3dpbmcu
aHR0cHMuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL3BheW1lbnQtcmVxdWVzdC9wYXltZW50LWlzLXNob3dpbmcuaHR0cHMuaHRtbApAQCAtNCw3
ICs0LDcgQEAKICAgcmVsPSJoZWxwIgogICBocmVmPSJodHRwczovL3czYy5naXRodWIuaW8vYnJv
d3Nlci1wYXltZW50LWFwaS8jZGZuLXBheW1lbnQtcmVxdWVzdC1pcy1zaG93aW5nIgogLz4KLTxt
ZXRhIG5hbWU9InRpbWVvdXQiIGNvbnRlbnQ9ImxvbmciPgorPG1ldGEgbmFtZT0idGltZW91dCIg
Y29udGVudD0ibG9uZyIgLz4KIDxzY3JpcHQgc3JjPSIvcmVzb3VyY2VzL3Rlc3RoYXJuZXNzLmpz
Ij48L3NjcmlwdD4KIDxzY3JpcHQgc3JjPSIvcmVzb3VyY2VzL3Rlc3RoYXJuZXNzcmVwb3J0Lmpz
Ij48L3NjcmlwdD4KIDxzY3JpcHQgc3JjPSIvcmVzb3VyY2VzL3Rlc3Rkcml2ZXIuanMiPjwvc2Ny
aXB0PgpAQCAtMjIsNyArMjIsNyBAQAogICAgICAgICBzdXBwb3J0ZWROZXR3b3JrczogWyJ2aXNh
Il0sCiAgICAgICB9LAogICAgIH07Ci0gICAgY29uc3QgbWV0aG9kcyA9IFt7c3VwcG9ydGVkTWV0
aG9kczogImJhc2ljLWNhcmQifSwgYXBwbGVQYXlNZXRob2RdOworICAgIGNvbnN0IG1ldGhvZHMg
PSBbeyBzdXBwb3J0ZWRNZXRob2RzOiAiYmFzaWMtY2FyZCIgfSwgYXBwbGVQYXlNZXRob2RdOwog
ICAgIGNvbnN0IGRldGFpbHMgPSB7CiAgICAgICB0b3RhbDogewogICAgICAgICBsYWJlbDogIlRv
dGFsIiwKQEAgLTQ0LDQ1ICs0NCw0MCBAQAogICAgICAgaWZyYW1lLmFsbG93ID0gInBheW1lbnQi
OwogICAgICAgaWZyYW1lLnNyYyA9IHNyYzsKICAgICAgIGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hp
bGQoaWZyYW1lKTsKLSAgICAgIGF3YWl0IG5ldyBQcm9taXNlKHJlc29sdmUgPT4gewotICAgICAg
ICBpZnJhbWUuYWRkRXZlbnRMaXN0ZW5lcigibG9hZCIsIHJlc29sdmUsIHtvbmNlOiB0cnVlfSk7
CisgICAgICBhd2FpdCBuZXcgUHJvbWlzZSgocmVzb2x2ZSkgPT4geworICAgICAgICBpZnJhbWUu
YWRkRXZlbnRMaXN0ZW5lcigibG9hZCIsIHJlc29sdmUsIHsgb25jZTogdHJ1ZSB9KTsKICAgICAg
IH0pOwogICAgICAgcmV0dXJuIGlmcmFtZTsKICAgICB9CiAKLSAgICAvKioKLSAgICAgKiBDcmVh
dGVzIGEgcG9wdXAgd2luZG93LiBUaGUgY2FsbGVyIG11c3QgYmUgdHJpZ2dlcmVkIHdpdGggYSB1
c2VyIGdlc3R1cmUuCi0gICAgICoKLSAgICAgKiBAcGFyYW0ge1N0cmluZ30gc3JjIE9wdGlvbmFs
IHJlc291cmNlIFVSTCB0byBsb2FkLgotICAgICAqIEByZXR1cm5zIHtQcm9taXNlfSBSZXNvbHZl
cyB3aGVuIHRoZSBzcmMgbG9hZHMuCi0gICAgICovCi0gICAgYXN5bmMgZnVuY3Rpb24gbG9hZFBv
cHVwSW5zaWRlVXNlckdlc3R1cmUoc3JjID0gImJsYW5rLmh0bWwiKSB7Ci0gICAgICBjb25zdCBw
b3B1cFdpbmRvdyA9IHdpbmRvdy5vcGVuKHNyYywgIiIsICJ3aWR0aD00MDAsaGVpZ2h0PTQwMCIp
OwotICAgICAgYXdhaXQgbmV3IFByb21pc2UocmVzb2x2ZSA9PiB7Ci0gICAgICAgIHBvcHVwV2lu
ZG93LmFkZEV2ZW50TGlzdGVuZXIoImxvYWQiLCByZXNvbHZlLCB7b25jZTogdHJ1ZX0pOwotICAg
ICAgfSk7Ci0gICAgICBwb3B1cFdpbmRvdy5mb2N1cygpOwotICAgICAgcmV0dXJuIHBvcHVwV2lu
ZG93OworICAgIGZ1bmN0aW9uIGdldFNob3dQcm9taXNlRnJvbUNvbnRleHQocGF5bWVudFJlcXVl
c3QsIGNvbnRleHQgPSB0aGlzKSB7CisgICAgICByZXR1cm4gdGVzdF9kcml2ZXIuYmxlc3MoCisg
ICAgICAgICJwYXltZW50IHJlcXVlc3Qgc2hvdygpIiwKKyAgICAgICAgKCkgPT4geworICAgICAg
ICAgIHJldHVybiBbcGF5bWVudFJlcXVlc3Quc2hvdygpXTsKKyAgICAgICAgfSwKKyAgICAgICAg
Y29udGV4dAorICAgICAgKTsKICAgICB9CiAKLSAgICBwcm9taXNlX3Rlc3QoYXN5bmMgdCA9PiB7
CisgICAgcHJvbWlzZV90ZXN0KGFzeW5jICh0KSA9PiB7CiAgICAgICBjb25zdCByZXF1ZXN0MSA9
IG5ldyBQYXltZW50UmVxdWVzdChtZXRob2RzLCBkZXRhaWxzKTsKICAgICAgIGNvbnN0IHJlcXVl
c3QyID0gbmV3IFBheW1lbnRSZXF1ZXN0KG1ldGhvZHMsIGRldGFpbHMpOwogCiAgICAgICAvLyBT
ZXRzIHRoZSAicGF5bWVudC1yZWxldmFudCBicm93c2luZyBjb250ZXh0J3MgcGF5bWVudCByZXF1
ZXN0IGlzCiAgICAgICAvLyBzaG93aW5nIGJvb2xlYW4iIHRvIHRydWUgYW5kIHRoZW4gdHJ5IHRv
IHNob3cgYSBzZWNvbmQgcGF5bWVudCBzaGVldCBpbgogICAgICAgLy8gdGhlIHNhbWUgd2luZG93
LiBUaGUgc2Vjb25kIHNob3coKSBzaG91bGQgcmVqZWN0LgotICAgICAgY29uc3QgW3Nob3dQcm9t
aXNlMSwgc2hvd1Byb21pc2UyXSA9IGF3YWl0IHRlc3RfZHJpdmVyLmJsZXNzKAotICAgICAgICAi
dGVzdGluZyBvbmUgcGF5bWVudCBzaGVldCBwZXIgd2luZG93IiwKLSAgICAgICAgKCkgPT4gewot
ICAgICAgICAgIHJldHVybiBbcmVxdWVzdDEuc2hvdygpLCByZXF1ZXN0Mi5zaG93KCldOwotICAg
ICAgICB9LAotICAgICAgKTsKKyAgICAgIGF3YWl0IHRlc3RfZHJpdmVyLmJsZXNzKCJwYXltZW50
IHJlcXVlc3Qgc2hvdygpIik7CisgICAgICBjb25zdCBzaG93UHJvbWlzZTEgPSByZXF1ZXN0MS5z
aG93KCk7CisKKyAgICAgIGF3YWl0IHRlc3RfZHJpdmVyLmJsZXNzKCJwYXltZW50IHJlcXVlc3Qg
c2hvdygpIik7CisgICAgICBjb25zdCBzaG93UHJvbWlzZTIgPSByZXF1ZXN0Mi5zaG93KCk7CisK
ICAgICAgIGF3YWl0IHByb21pc2VfcmVqZWN0c19kb20oCiAgICAgICAgIHQsCiAgICAgICAgICJB
Ym9ydEVycm9yIiwKICAgICAgICAgc2hvd1Byb21pc2UyLAotICAgICAgICAiQXR0ZW1wdGluZyB0
byBzaG93IGEgc2Vjb25kIHBheW1lbnQgcmVxdWVzdCBtdXN0IHJlamVjdC4iLAorICAgICAgICAi
QXR0ZW1wdGluZyB0byBzaG93IGEgc2Vjb25kIHBheW1lbnQgcmVxdWVzdCBtdXN0IHJlamVjdC4i
CiAgICAgICApOwogCiAgICAgICBhd2FpdCByZXF1ZXN0MS5hYm9ydCgpOwpAQCAtOTAsNyArODUs
NyBAQAogICAgICAgICB0LAogICAgICAgICAiQWJvcnRFcnJvciIsCiAgICAgICAgIHNob3dQcm9t
aXNlMSwKLSAgICAgICAgInJlcXVlc3QxIHdhcyBhYm9ydGVkIHZpYSAuYWJvcnQoKSIsCisgICAg
ICAgICJyZXF1ZXN0MSB3YXMgYWJvcnRlZCB2aWEgLmFib3J0KCkiCiAgICAgICApOwogCiAgICAg
ICAvLyBGaW5hbGx5LCByZXF1ZXN0MiBzaG91bGQgaGF2ZSBiZWVuICJjbG9zZWQiLCBzbyB0cnlp
bmcgdG8gc2hvdwpAQCAtMTAxLDQwICs5Niw0MCBAQAogICAgICAgICB0LAogICAgICAgICAiSW52
YWxpZFN0YXRlRXJyb3IiLAogICAgICAgICByZWplY3RlZFByb21pc2UsCi0gICAgICAgICJBdHRl
bXB0aW5nIHRvIHNob3cgYSBzZWNvbmQgcGF5bWVudCByZXF1ZXN0IG11c3QgcmVqZWN0LiIsCisg
ICAgICAgICJBdHRlbXB0aW5nIHRvIHNob3cgYSBzZWNvbmQgcGF5bWVudCByZXF1ZXN0IG11c3Qg
cmVqZWN0LiIKICAgICAgICk7CiAgICAgICAvLyBGaW5hbGx5LCB3ZSBjb25maXJtIHRoYXQgcmVx
dWVzdDIncyByZXR1cm5lZCBwcm9taXNlcyBhcmUgdW5pcXVlLgogICAgICAgYXNzZXJ0X25vdF9l
cXVhbHMoCiAgICAgICAgIHNob3dQcm9taXNlMiwKICAgICAgICAgcmVqZWN0ZWRQcm9taXNlLAot
ICAgICAgICAiUmV0dXJuZWQgUHJvbWlzZXMgYmUgdW5pcXVlIiwKKyAgICAgICAgIlJldHVybmVk
IFByb21pc2VzIGJlIHVuaXF1ZSIKICAgICAgICk7CiAgICAgfSwgIlRoZSB0b3AgYnJvd3Npbmcg
Y29udGV4dCBjYW4gb25seSBzaG93IG9uZSBwYXltZW50IHNoZWV0IGF0IGEgdGltZS4iKTsKIAot
ICAgIHByb21pc2VfdGVzdChhc3luYyB0ID0+IHsKKyAgICBwcm9taXNlX3Rlc3QoYXN5bmMgKHQp
ID0+IHsKICAgICAgIGNvbnN0IGlmcmFtZSA9IGF3YWl0IGF0dGFjaElmcmFtZSgpOwogICAgICAg
Y29uc3QgaWZyYW1lV2luZG93ID0gaWZyYW1lLmNvbnRlbnRXaW5kb3c7CiAKICAgICAgIC8vIFBh
eW1lbnQgcmVxdWVzdHMKLSAgICAgIGNvbnN0IGlmcmFtZVJlcXVlc3QgPSBuZXcgaWZyYW1lV2lu
ZG93LlBheW1lbnRSZXF1ZXN0KG1ldGhvZHMsIGRldGFpbHMpOwogICAgICAgY29uc3Qgd2luZG93
UmVxdWVzdCA9IG5ldyB3aW5kb3cuUGF5bWVudFJlcXVlc3QobWV0aG9kcywgZGV0YWlscyk7Cisg
ICAgICBjb25zdCBpZnJhbWVSZXF1ZXN0ID0gbmV3IGlmcmFtZVdpbmRvdy5QYXltZW50UmVxdWVz
dChtZXRob2RzLCBkZXRhaWxzKTsKIAogICAgICAgLy8gTGV0J3MgZ2V0IHNvbWUgYmxlc3NlZCBz
aG93UHJvbWlzZXMKLSAgICAgIGNvbnN0IFtzaG93UHJvbWlzZV0gPSBhd2FpdCB0ZXN0X2RyaXZl
ci5ibGVzcygKLSAgICAgICAgInRlc3RpbmcgdG9wIHdpbmRvdyBzaG93KCkgYmxvY2tlZCBieSBw
YXltZW50IHNoZWV0IGluIGlmcmFtZSIsCi0gICAgICAgICgpID0+IHsKLSAgICAgICAgICAvLyBp
ZnJhbWUgc2V0cyAiaXMgc2hvd2luZyBib29sZWFuIiwgaWdub3JlIHRoZSByZXR1cm5lZCBwcm9t
aXNlLgotICAgICAgICAgIGlmcmFtZVJlcXVlc3Quc2hvdygpOwotICAgICAgICAgIC8vIFRoZSB0
b3AgbGV2ZWwgd2luZG93IG5vdyB0cmllcyB0byBzaG93KCkgdGhlIHBheW1lbnQgcmVxdWVzdC4K
LSAgICAgICAgICByZXR1cm4gW3dpbmRvd1JlcXVlc3Quc2hvdygpXTsKLSAgICAgICAgfSwKKyAg
ICAgIC8vIGlmcmFtZSBzZXRzICJpcyBzaG93aW5nIGJvb2xlYW4iLCBpZ25vcmUgdGhlIHJldHVy
bmVkIHByb21pc2UuCisgICAgICBjb25zdCBbaWZyYW1lUHJvbWlzZV0gPSBhd2FpdCBnZXRTaG93
UHJvbWlzZUZyb21Db250ZXh0KAorICAgICAgICBpZnJhbWVSZXF1ZXN0LAorICAgICAgICBpZnJh
bWVXaW5kb3cKICAgICAgICk7CiAKKyAgICAgIC8vIFRoZSB0b3AgbGV2ZWwgd2luZG93IG5vdyB0
cmllcyB0byBzaG93KCkgdGhlIHBheW1lbnQgcmVxdWVzdC4KKyAgICAgIGF3YWl0IHRlc3RfZHJp
dmVyLmJsZXNzKCJwYXltZW50IHJlcXVlc3Qgc2hvdygpIik7CisgICAgICBjb25zdCBzaG93UHJv
bWlzZSA9IHdpbmRvd1JlcXVlc3Quc2hvdygpOworCiAgICAgICBhd2FpdCBwcm9taXNlX3JlamVj
dHNfZG9tKAogICAgICAgICB0LAogICAgICAgICAiQWJvcnRFcnJvciIsCiAgICAgICAgIHNob3dQ
cm9taXNlLAotICAgICAgICAiaWZyYW1lIGlzIGFscmVhZHkgc2hvd2luZyBhIHBheW1lbnQgcmVx
dWVzdC4iLAorICAgICAgICAiaWZyYW1lIGlzIGFscmVhZHkgc2hvd2luZyBhIHBheW1lbnQgcmVx
dWVzdC4iCiAgICAgICApOwogCiAgICAgICAvLyBDbGVhbnVwCkBAIC0xNDIsMzYxICsxMzcsMzQg
QEAKICAgICAgIGlmcmFtZS5yZW1vdmUoKTsKICAgICB9LCAiSWYgYW4gaWZyYW1lIHNob3dzIGEg
cGF5bWVudCByZXF1ZXN0LCB0aGUgdG9wLWxldmVsIGJyb3dzaW5nIGNvbnRleHQgY2FuJ3QgYWxz
byBzaG93IG9uZS4iKTsKIAotICAgIHByb21pc2VfdGVzdChhc3luYyB0ID0+IHsKKyAgICBwcm9t
aXNlX3Rlc3QoYXN5bmMgKHQpID0+IHsKICAgICAgIGNvbnN0IGlmcmFtZSA9IGF3YWl0IGF0dGFj
aElmcmFtZSgpOwogICAgICAgY29uc3QgaWZyYW1lV2luZG93ID0gaWZyYW1lLmNvbnRlbnRXaW5k
b3c7Ci0KLSAgICAgIC8vIFBheW1lbnQgcmVxdWVzdHMKICAgICAgIGNvbnN0IGlmcmFtZVJlcXVl
c3QgPSBuZXcgaWZyYW1lV2luZG93LlBheW1lbnRSZXF1ZXN0KG1ldGhvZHMsIGRldGFpbHMpOwot
ICAgICAgY29uc3Qgd2luZG93UmVxdWVzdCA9IG5ldyB3aW5kb3cuUGF5bWVudFJlcXVlc3QobWV0
aG9kcywgZGV0YWlscyk7Ci0KLSAgICAgIC8vIFdlIGZpcnN0IHNob3cgYSBwYXltZW50IHJlcXVl
c3QgdmlhIHRoZSB0aGUgdG9wIGxldmVsIGJyb3dzaW5nIGNvbnRleHQsCi0gICAgICAvLyB3aW5k
b3dSZXF1ZXN0LnNob3coKSBzZXRzICJpcyBzaG93aW5nIGJvb2xlYW4iIHRvIHRydWUuIFRoZW4g
d2UgdHJ5IHRvCi0gICAgICAvLyBzaG93IGEgcGF5bWVudCByZXF1ZXN0IGluIHRoZSBpZnJhbWUs
IHdoaWNoIHNob3VsZCByZWplY3QuCi0gICAgICBjb25zdCBbd2luZG93U2hvd1Byb21pc2UsIGlm
cmFtZVNob3dQcm9taXNlXSA9IGF3YWl0IHRlc3RfZHJpdmVyLmJsZXNzKAotICAgICAgICAidGVz
dGluZyBpZnJhbWUgc2hvdygpIGJsb2NrZWQgYnkgcGF5bWVudCBzaGVldCBpbiB0b3Agd2luZG93
IiwKLSAgICAgICAgKCkgPT4gewotICAgICAgICAgIHJldHVybiBbd2luZG93UmVxdWVzdC5zaG93
KCksIGlmcmFtZVJlcXVlc3Quc2hvdygpXTsKLSAgICAgICAgfSwKLSAgICAgICk7Ci0KLSAgICAg
IGF3YWl0IHByb21pc2VfcmVqZWN0c19kb20oCi0gICAgICAgIHQsCi0gICAgICAgICJBYm9ydEVy
cm9yIiwKLSAgICAgICAgaWZyYW1lU2hvd1Byb21pc2UsCi0gICAgICAgICJUaGUgdG9wIHdpbmRv
dyBpcyBhbHJlYWR5IHNob3dpbmcgYSBwYXltZW50IHJlcXVlc3QuIiwKKyAgICAgIGNvbnN0IFtp
ZnJhbWVTaG93UHJvbWlzZV0gPSBhd2FpdCBnZXRTaG93UHJvbWlzZUZyb21Db250ZXh0KAorICAg
ICAgICBpZnJhbWVSZXF1ZXN0LAorICAgICAgICBpZnJhbWVXaW5kb3cKICAgICAgICk7CiAKLSAg
ICAgIC8vIENsZWFudXAKLSAgICAgIGF3YWl0IHdpbmRvd1JlcXVlc3QuYWJvcnQoKTsKLSAgICAg
IGF3YWl0IHByb21pc2VfcmVqZWN0c19kb20oCi0gICAgICAgIHQsCi0gICAgICAgICJBYm9ydEVy
cm9yIiwKLSAgICAgICAgd2luZG93U2hvd1Byb21pc2UsCi0gICAgICAgICJUaGUgd2luZG93IHBh
eW1lbnQgcmVxdWVzdCBzaG91bGQgYmUgYWJvcnRlZCBieSB0ZXN0LiIsCi0gICAgICAgICk7Ci0g
ICAgICBpZnJhbWUucmVtb3ZlKCk7Ci0gICAgfSwgIkFuIGlmcmFtZSBjYW5ub3Qgc2hvdyBhIHBh
eW1lbnQgcmVxdWVzdCBpZiB0aGUgdG9wLWxldmVsIHdpbmRvdyBpcyBhbHJlYWR5IHNob3dpbmcg
b25lLiIpOwotCi0gICAgcHJvbWlzZV90ZXN0KGFzeW5jIHQgPT4gewotICAgICAgLy8gQ3JlYXRl
IGEgUGF5bWVudFJldXFlc3QgaW4gdG9wLWxldmVsIHdpbmRvdy4KLSAgICAgIGNvbnN0IHdpbmRv
d1JlcXVlc3QgPSBuZXcgd2luZG93LlBheW1lbnRSZXF1ZXN0KG1ldGhvZHMsIGRldGFpbHMpOwot
Ci0gICAgICAvLyBVc2UgYSBzaW5nbGUgdXNlciBnZXN0dXJlIHRvIG9wZW4gYSBwb3B1cCB3aW5k
b3cgd2l0aCBhIFBheW1lbnRSZXF1ZXN0LgotICAgICAgLy8gVGhlbiB0cmlnZ2VyIHNob3coKSBm
aXJzdCBvbiB8cG9wdXBSZXF1ZXN0fCB0aGVuIG9uIHx3aW5kb3dSZXF1ZXN0fC4KLSAgICAgIC8v
IFRoZSBsYXR0ZXIgc2hvdWxkIHJlamVjdC4KLSAgICAgIGNvbnN0IFsKLSAgICAgICAgcG9wdXBX
aW5kb3csCi0gICAgICAgIHBvcHVwUmVxdWVzdCwKLSAgICAgICAgcG9wdXBTaG93UHJvbWlzZSwK
LSAgICAgICAgd2luZG93U2hvd1Byb21pc2UsCi0gICAgICBdID0gYXdhaXQgdGVzdF9kcml2ZXIu
Ymxlc3MoCi0gICAgICAgICJ0ZXN0aW5nIHRvcC1sZXZlbCBzaG93KCkgYmxvY2tlZCBieSBwYXlt
ZW50IHNoZWV0IGluIHBvcHVwIiwKLSAgICAgICAgYXN5bmMgKCkgPT4gewotICAgICAgICAgIGNv
bnN0IHBvcHVwV2luZG93ID0gYXdhaXQgbG9hZFBvcHVwSW5zaWRlVXNlckdlc3R1cmUoKTsKLSAg
ICAgICAgICBjb25zdCBwb3B1cFJlcXVlc3QgPSBuZXcgcG9wdXBXaW5kb3cuUGF5bWVudFJlcXVl
c3QobWV0aG9kcywgZGV0YWlscyk7Ci0gICAgICAgICAgY29uc3QgcG9wdXBTaG93UHJvbWlzZSA9
IHBvcHVwUmVxdWVzdC5zaG93KCk7Ci0gICAgICAgICAgY29uc3Qgd2luZG93U2hvd1Byb21pc2Ug
PSB3aW5kb3dSZXF1ZXN0LnNob3coKTsKLSAgICAgICAgICByZXR1cm4gWwotICAgICAgICAgICAg
cG9wdXBXaW5kb3csCi0gICAgICAgICAgICBwb3B1cFJlcXVlc3QsCi0gICAgICAgICAgICBwb3B1
cFNob3dQcm9taXNlLAotICAgICAgICAgICAgd2luZG93U2hvd1Byb21pc2UsCi0gICAgICAgICAg
XTsKLSAgICAgICAgfSwKLSAgICAgICk7Ci0KLSAgICAgIGF3YWl0IHByb21pc2VfcmVqZWN0c19k
b20oCi0gICAgICAgIHQsCi0gICAgICAgICJBYm9ydEVycm9yIiwKLSAgICAgICAgd2luZG93U2hv
d1Byb21pc2UsCi0gICAgICAgICJFeHBlY3RlZCB3aW5kb3cncyBzaG93UHJvbWlzZSB0byByZWpl
Y3QsIHJlcXVlc3QgaXMgYWxyZWFkeSBzaG93aW5nIiwKLSAgICAgICk7Ci0KLSAgICAgIGF3YWl0
IHBvcHVwUmVxdWVzdC5hYm9ydCgpOwotICAgICAgYXdhaXQgcHJvbWlzZV9yZWplY3RzX2RvbSgK
LSAgICAgICAgdCwKLSAgICAgICAgIkFib3J0RXJyb3IiLAotICAgICAgICBwb3B1cFNob3dQcm9t
aXNlLAotICAgICAgICAiRXhwZWN0ZWQgcG9wdXBTaG93UHJvbWlzZSB0byBiZSBhYm9ydGVkIGJ5
IHRlc3QuIiwKLSAgICAgICk7Ci0gICAgICBwb3B1cFdpbmRvdy5jbG9zZSgpOwotICAgIH0sICJV
c2luZyBhIHBvcHVwIHdpbmRvdyBwcmV2ZW50cyB0aGUgdG9wLWJyb3dzaW5nIGNvbnRleHQgZnJv
bSBzaG93aW5nIGEgcGF5bWVudCByZXF1ZXN0Iik7Ci0KLSAgICBwcm9taXNlX3Rlc3QoYXN5bmMg
dCA9PiB7Ci0gICAgICBjb25zdCBpZnJhbWUgPSBhd2FpdCBhdHRhY2hJZnJhbWUoKTsKLSAgICAg
IGNvbnN0IGlmcmFtZVdpbmRvdyA9IGlmcmFtZS5jb250ZW50V2luZG93OwotCi0gICAgICAvLyBD
cmVhdGUgcmVxdWVzdHMKLSAgICAgIGNvbnN0IHdpbmRvd1JlcXVlc3QgPSBuZXcgd2luZG93LlBh
eW1lbnRSZXF1ZXN0KG1ldGhvZHMsIGRldGFpbHMpOwotICAgICAgY29uc3QgaWZyYW1lUmVxdWVz
dCA9IG5ldyBpZnJhbWVXaW5kb3cuUGF5bWVudFJlcXVlc3QobWV0aG9kcywgZGV0YWlscyk7Ci0K
LSAgICAgIC8vIE9wZW4gYSBwb3B1cCB3aW5kb3cKLSAgICAgIGNvbnN0IFtwb3B1cFdpbmRvdywg
cG9wdXBSZXF1ZXN0XSA9Ci0gICAgICBhd2FpdCB0ZXN0X2RyaXZlci5ibGVzcygKLSAgICAgICAg
Im9wZW4gcG9wdXAgdG8gdGVzdCBtdWx0aXBsZSBjb250ZXh0IGFuZCB3aW5kb3cgY2FsbHMgc2hv
dygpIGZpcnN0IiwKLSAgICAgICAgYXN5bmMgKCkgPT4gewotICAgICAgICAgIGNvbnN0IHBvcHVw
V2luZG93ID0gYXdhaXQgbG9hZFBvcHVwSW5zaWRlVXNlckdlc3R1cmUoKTsKLSAgICAgICAgICBj
b25zdCBwb3B1cFJlcXVlc3QgPSBuZXcgcG9wdXBXaW5kb3cuUGF5bWVudFJlcXVlc3QobWV0aG9k
cywgZGV0YWlscyk7Ci0gICAgICAgICAgcmV0dXJuIFtwb3B1cFdpbmRvdywgcG9wdXBSZXF1ZXN0
XTsKLSAgICAgICAgfSwKLSAgICAgICk7Ci0KLSAgICAgIC8vIEdldCB0aGUgc2hvd1Byb21pc2Ug
Zm9yIGVhY2ggYnJvd3NpbmcgY29udGV4dC4gRG9pbmcgdGhpcyBpbiBhIHNlcGFyYXRlCi0gICAg
ICAvLyB0ZXN0X2RyaXZlci5ibGVzcygpIGlzIGltcG9ydGFudCBiZWNhdXNlIHRoZSB1c2VyIGdl
c3R1cmUgYnJpbmdzCi0gICAgICAvLyB8d2luZG93fCB0byB0aGUgZm9yZWdyb3VuZCwgc28gdGhh
dCB0aGUgcGF5bWVudCBzaGVldCBjYW4gc2hvdy4KLSAgICAgIGNvbnN0IFsKLSAgICAgICAgd2lu
ZG93U2hvd1Byb21pc2UsCi0gICAgICAgIHBvcHVwU2hvd1Byb21pc2UsCi0gICAgICAgIGlmcmFt
ZVNob3dQcm9taXNlLAotICAgICAgXSA9IGF3YWl0IHRlc3RfZHJpdmVyLmJsZXNzKAotICAgICAg
ICAidGVzdCBtdWx0aXBsZSBuZXN0ZWQgYnJvd3NpbmcgY29udGV4dCIsCi0gICAgICAgICgpID0+
IHsKLSAgICAgICAgICByZXR1cm4gWwotICAgICAgICAgICAgd2luZG93UmVxdWVzdC5zaG93KCks
Ci0gICAgICAgICAgICBwb3B1cFJlcXVlc3Quc2hvdygpLAotICAgICAgICAgICAgaWZyYW1lUmVx
dWVzdC5zaG93KCksCi0gICAgICAgICAgXTsKLSAgICAgICAgfSwKLSAgICAgICk7Ci0gICAgICAv
LyBwb3B1cFJlcXVlc3QgYW5kIGlmcmFtZVJlcXVlc3Qgd2lsbCBib3RoIHJlamVjdAotICAgICAg
YXdhaXQgcHJvbWlzZV9yZWplY3RzX2RvbSgKLSAgICAgICAgdCwKLSAgICAgICAgIkFib3J0RXJy
b3IiLAotICAgICAgICBwb3B1cFNob3dQcm9taXNlLAotICAgICAgICAiRXhwZWN0ZWQgcG9wdXBT
aG93UHJvbWlzZSB0byByZWplY3QsIHJlcXVlc3QgaXMgYWxyZWFkeSBzaG93aW5nLiIsCi0gICAg
ICApOwotCi0gICAgICBhd2FpdCBwcm9taXNlX3JlamVjdHNfZG9tKAotICAgICAgICB0LAotICAg
ICAgICAiQWJvcnRFcnJvciIsCi0gICAgICAgIGlmcmFtZVNob3dQcm9taXNlLAotICAgICAgICAi
RXhwZWN0ZWQgaWZyYW1lU2hvd1Byb21pc2UgdG8gcmVqZWN0LCByZXF1ZXN0IGlzIGFscmVhZHkg
c2hvd2luZy4iLAotICAgICAgKTsKLQotICAgICAgYXdhaXQgd2luZG93UmVxdWVzdC5hYm9ydCgp
OwotICAgICAgYXdhaXQgcHJvbWlzZV9yZWplY3RzX2RvbSgKLSAgICAgICAgdCwKLSAgICAgICAg
IkFib3J0RXJyb3IiLAotICAgICAgICB3aW5kb3dTaG93UHJvbWlzZSwKLSAgICAgICAgIkV4cGVj
dCB3aW5kb3cgcHJvbWlzZSB0byBiZSBhYm9ydGVkIGJ5IHRlc3QuIgotICAgICAgKTsKLSAgICAg
IHBvcHVwV2luZG93LmNsb3NlKCk7Ci0gICAgICBpZnJhbWUucmVtb3ZlKCk7Ci0gICAgfSwgIkdp
dmVuIG11bHRpcGxlIG5lc3RlZCBicm93c2luZyBjb250ZXh0cywgYW5kIHdpbmRvdyBjYWxscyBz
aG93KCkgZmlyc3QsIG90aGVyIG5lc3RlZCBicm93c2luZyBjb250ZXh0cyBjYW4ndCBzaG93IGEg
cmVxdWVzdC4iKTsKLQotICAgIHByb21pc2VfdGVzdChhc3luYyB0ID0+IHsKLSAgICAgIGNvbnN0
IGlmcmFtZSA9IGF3YWl0IGF0dGFjaElmcmFtZSgpOwotICAgICAgY29uc3QgaWZyYW1lV2luZG93
ID0gaWZyYW1lLmNvbnRlbnRXaW5kb3c7Ci0KLSAgICAgIC8vIENyZWF0ZSByZXF1ZXN0cwotICAg
ICAgY29uc3Qgd2luZG93UmVxdWVzdCA9IG5ldyB3aW5kb3cuUGF5bWVudFJlcXVlc3QobWV0aG9k
cywgZGV0YWlscyk7Ci0gICAgICBjb25zdCBpZnJhbWVSZXF1ZXN0ID0gbmV3IGlmcmFtZVdpbmRv
dy5QYXltZW50UmVxdWVzdChtZXRob2RzLCBkZXRhaWxzKTsKLQotICAgICAgLy8gT3BlbiBhIHBv
cHVwIHdpbmRvdwotICAgICAgY29uc3QgWwotICAgICAgICBwb3B1cFdpbmRvdywKLSAgICAgICAg
cG9wdXBSZXF1ZXN0LAotICAgICAgICBwb3B1cFNob3dQcm9taXNlLAotICAgICAgICB3aW5kb3dT
aG93UHJvbWlzZSwKLSAgICAgICAgaWZyYW1lU2hvd1Byb21pc2UKLSAgICAgIF0gPSBhd2FpdCB0
ZXN0X2RyaXZlci5ibGVzcygKLSAgICAgICAgInRlc3QgbXVsdGlwbGUgYnJvd3NpbmcgY29udGV4
dCBhbmQgaWZyYW1lIGNhbGxzIHNob3coKSBmaXJzdCIsCi0gICAgICAgIGFzeW5jICgpID0+IHsK
LSAgICAgICAgICBjb25zdCBwb3B1cFdpbmRvdyA9IGF3YWl0IGxvYWRQb3B1cEluc2lkZVVzZXJH
ZXN0dXJlKCk7Ci0gICAgICAgICAgY29uc3QgcG9wdXBSZXF1ZXN0ID0gbmV3IHBvcHVwV2luZG93
LlBheW1lbnRSZXF1ZXN0KG1ldGhvZHMsIGRldGFpbHMpOwotICAgICAgICAgIGNvbnN0IHBvcHVw
U2hvd1Byb21pc2UgPSBwb3B1cFJlcXVlc3Quc2hvdygpOwotICAgICAgICAgIGNvbnN0IHdpbmRv
d1Nob3dQcm9taXNlID0gd2luZG93UmVxdWVzdC5zaG93KCk7Ci0gICAgICAgICAgY29uc3QgaWZy
YW1lU2hvd1Byb21pc2UgPSBpZnJhbWVSZXF1ZXN0LnNob3coKTsKLSAgICAgICAgICByZXR1cm4g
W3BvcHVwV2luZG93LAotICAgICAgICAgICAgICAgICAgcG9wdXBSZXF1ZXN0LAotICAgICAgICAg
ICAgICAgICAgcG9wdXBTaG93UHJvbWlzZSwKLSAgICAgICAgICAgICAgICAgIHdpbmRvd1Nob3dQ
cm9taXNlLAotICAgICAgICAgICAgICAgICAgaWZyYW1lU2hvd1Byb21pc2VdOworICAgICAgLy8g
V2UgbmF2aWdhdGUgYXdheSwgY2F1c2luZyB0aGUgcGF5bWVudCBzaGVldCB0byBjbG9zZQorICAg
ICAgLy8gYW5kIHRoZSByZXF1ZXN0IGlzIHNob3dpbmcgYm9vbGVhbiB0byBiZWNvbWUgZmFsc2Uu
CisgICAgICBhd2FpdCBuZXcgUHJvbWlzZSgocmVzb2x2ZSkgPT4geworICAgICAgICBpZnJhbWUu
b25sb2FkID0gcmVzb2x2ZTsKKyAgICAgICAgaWZyYW1lLnNyYyA9ICJibGFuay5odG1sP3Rlc3Q9
MTIzIjsKICAgICAgIH0pOwogCi0gICAgICAvLyB3aW5kb3dTaG93UHJvbWlzZSBhbmQgaWZyYW1l
UmVxdWVzdCB3aWxsIGJvdGggcmVqZWN0Ci0gICAgICBhd2FpdCBwcm9taXNlX3JlamVjdHNfZG9t
KAotICAgICAgICB0LAotICAgICAgICAiQWJvcnRFcnJvciIsCi0gICAgICAgIHdpbmRvd1Nob3dQ
cm9taXNlLAotICAgICAgICAiRXhwZWN0ZWQgd2luZG93U2hvd1Byb21pc2UgdG8gcmVqZWN0LCB0
aGUgcG9wdXAgaXMgc2hvd2luZyBhIHBheW1lbnQgcmVxdWVzdC4iLAotICAgICAgKTsKLQotICAg
ICAgYXdhaXQgcHJvbWlzZV9yZWplY3RzX2RvbSgKLSAgICAgICAgdCwKLSAgICAgICAgIkFib3J0
RXJyb3IiLAotICAgICAgICBpZnJhbWVTaG93UHJvbWlzZSwKLSAgICAgICAgIkV4cGVjdGVkIGlm
cmFtZVNob3dQcm9taXNlIHRvIHJlamVjdCwgdGhlIHBvcHVwIGlzIHNob3dpbmcgYSBwYXltZW50
IHJlcXVlc3QuIiwKLSAgICAgICk7Ci0KLSAgICAgIGF3YWl0IHBvcHVwUmVxdWVzdC5hYm9ydCgp
OwotICAgICAgYXdhaXQgcHJvbWlzZV9yZWplY3RzX2RvbSgKLSAgICAgICAgdCwKLSAgICAgICAg
IkFib3J0RXJyb3IiLAotICAgICAgICBwb3B1cFNob3dQcm9taXNlLAotICAgICAgICAiRXhwZWN0
ZWQgcG9wdXBTaG93UHJvbWlzZSB0byBiZSBhYm9ydGVkIGJ5IHRlc3QuIiwKLSAgICAgICk7Ci0g
ICAgICBwb3B1cFdpbmRvdy5jbG9zZSgpOwogICAgICAgaWZyYW1lLnJlbW92ZSgpOwotICAgIH0s
ICJHaXZlbiBtdWx0aXBsZSBuZXN0ZWQgYnJvd3NpbmcgY29udGV4dHMsIGFuZCBwb3B1cCBjYWxs
cyBzaG93KCkgZmlyc3QsIG90aGVyIG5lc3RlZCBicm93c2luZyBjb250ZXh0cyBjYW4ndCBzaG93
IGEgcmVxdWVzdC4iKTsKLQotICAgIHByb21pc2VfdGVzdChhc3luYyB0ID0+IHsKLSAgICAgIGNv
bnN0IGlmcmFtZSA9IGF3YWl0IGF0dGFjaElmcmFtZSgpOwotICAgICAgY29uc3QgaWZyYW1lV2lu
ZG93ID0gaWZyYW1lLmNvbnRlbnRXaW5kb3c7Ci0KLSAgICAgIC8vIENyZWF0ZSByZXF1ZXN0cwot
ICAgICAgY29uc3Qgd2luZG93UmVxdWVzdCA9IG5ldyB3aW5kb3cuUGF5bWVudFJlcXVlc3QobWV0
aG9kcywgZGV0YWlscyk7Ci0gICAgICBjb25zdCBpZnJhbWVSZXF1ZXN0ID0gbmV3IGlmcmFtZVdp
bmRvdy5QYXltZW50UmVxdWVzdChtZXRob2RzLCBkZXRhaWxzKTsKLQotICAgICAgY29uc3QgW3Bv
cHVwV2luZG93LCBwb3B1cFJlcXVlc3RdID0gYXdhaXQgdGVzdF9kcml2ZXIuYmxlc3MoCi0gICAg
ICAgICJvcGVuIHBvcHVwIHRvIHRlc3QgbXVsdGlwbGUgY29udGV4dCBhbmQgaWZyYW1lIGNhbGxz
IHNob3coKSBmaXJzdCIsCi0gICAgICAgIGFzeW5jICgpID0+IHsKLSAgICAgICAgICBjb25zdCB3
ID0gYXdhaXQgbG9hZFBvcHVwSW5zaWRlVXNlckdlc3R1cmUoKTsKLSAgICAgICAgICBjb25zdCBy
ID0gbmV3IHcuUGF5bWVudFJlcXVlc3QobWV0aG9kcywgZGV0YWlscyk7Ci0gICAgICAgICAgcmV0
dXJuIFt3LCByXTsKLSAgICAgICAgfSwKLSAgICAgICk7Ci0KLSAgICAgIC8vIEdldCB0aGUgc2hv
d1Byb21pc2UgZm9yIGVhY2ggYnJvd3NpbmcgY29udGV4dC4gRG9pbmcgdGhpcyBpbiBhIHNlcGFy
YXRlCi0gICAgICAvLyB0ZXN0X2RyaXZlci5ibGVzcygpIGlzIGltcG9ydGFudCBiZWNhdXNlIHRo
ZSB1c2VyIGdlc3R1cmUgYnJpbmdzCi0gICAgICAvLyB8d2luZG93fCB0byB0aGUgZm9yZWdyb3Vu
ZCwgc28gdGhhdCB0aGUgcGF5bWVudCBzaGVldCBjYW4gc2hvdy4KLSAgICAgIGNvbnN0IFsKLSAg
ICAgICAgaWZyYW1lU2hvd1Byb21pc2UsCi0gICAgICAgIHBvcHVwU2hvd1Byb21pc2UsCi0gICAg
ICAgIHdpbmRvd1Nob3dQcm9taXNlLAotICAgICAgXSA9IGF3YWl0IHRlc3RfZHJpdmVyLmJsZXNz
KAotICAgICAgICAidGVzdCBtdWx0aXBsZSBicm93c2luZyBjb250ZXh0IGFuZCBpZnJhbWUgY2Fs
bHMgc2hvdygpIGZpcnN0IiwKLSAgICAgICAgYXN5bmMgKCkgPT4gewotICAgICAgICAgIHJldHVy
biBbCi0gICAgICAgICAgICBpZnJhbWVSZXF1ZXN0LnNob3coKSwKLSAgICAgICAgICAgIHBvcHVw
UmVxdWVzdC5zaG93KCksCi0gICAgICAgICAgICB3aW5kb3dSZXF1ZXN0LnNob3coKSwKLSAgICAg
ICAgICBdOwotICAgICAgICB9LAotICAgICAgKTsKLQotICAgICAgLy8gd2luZG93U2hvd1Byb21p
c2UgYW5kIGlmcmFtZVJlcXVlc3Qgd2lsbCBib3RoIHJlamVjdAotICAgICAgYXdhaXQgcHJvbWlz
ZV9yZWplY3RzX2RvbSgKLSAgICAgICAgdCwKLSAgICAgICAgIkFib3J0RXJyb3IiLAotICAgICAg
ICB3aW5kb3dTaG93UHJvbWlzZSwKLSAgICAgICAgIkV4cGVjdGVkIHdpbmRvd1Nob3dQcm9taXNl
IHRvIHJlamVjdCwgdGhlIHBvcHVwIGlzIHNob3dpbmcgYSBwYXltZW50IHJlcXVlc3QuIiwKLSAg
ICAgICk7CiAKKyAgICAgIC8vIE5vdyB3ZSBzaG91bGQgYmUgb2sgdG8gc3BpbiB1cCBhIG5ldyBw
YXltZW50IHJlcXVlc3QKKyAgICAgIGNvbnN0IHJlcXVlc3QgPSBuZXcgd2luZG93LlBheW1lbnRS
ZXF1ZXN0KG1ldGhvZHMsIGRldGFpbHMpOworICAgICAgY29uc3QgW3Nob3dQcm9taXNlXSA9IGF3
YWl0IGdldFNob3dQcm9taXNlRnJvbUNvbnRleHQocmVxdWVzdCk7CisgICAgICBhd2FpdCByZXF1
ZXN0LmFib3J0KCk7CiAgICAgICBhd2FpdCBwcm9taXNlX3JlamVjdHNfZG9tKAogICAgICAgICB0
LAogICAgICAgICAiQWJvcnRFcnJvciIsCi0gICAgICAgIHBvcHVwU2hvd1Byb21pc2UsCi0gICAg
ICAgICJFeHBlY3RlZCBwb3B1cFNob3dQcm9taXNlIHRvIHJlamVjdCwgdGhlIHBvcHVwIGlzIHNo
b3dpbmcgYSBwYXltZW50IHJlcXVlc3QuIiwKLSAgICAgICk7Ci0KLSAgICAgIGF3YWl0IGlmcmFt
ZVJlcXVlc3QuYWJvcnQoKTsKLSAgICAgIGF3YWl0IHByb21pc2VfcmVqZWN0c19kb20oCi0gICAg
ICAgIHQsCi0gICAgICAgICJBYm9ydEVycm9yIiwKLSAgICAgICAgaWZyYW1lU2hvd1Byb21pc2Us
Ci0gICAgICAgICJFeHBlY3RlZCBpZnJhbWVTaG93UHJvbWlzZSB0byBiZSBhYm9ydGVkIGJ5IHRl
c3QuIgotICAgICAgKTsKLSAgICAgIHBvcHVwV2luZG93LmNsb3NlKCk7Ci0gICAgICBpZnJhbWUu
cmVtb3ZlKCk7Ci0gICAgfSwgIkdpdmVuIG11bHRpcGxlIG5lc3RlZCBicm93c2luZyBjb250ZXh0
cywgYW5kIGFuIGlmcmFtZSBjYWxscyBzaG93KCkgZmlyc3QsIG90aGVyIG5lc3RlZCBicm93c2lu
ZyBjb250ZXh0cyBjYW4ndCBzaG93IGEgcmVxdWVzdC4iKTsKLQotICAgIHByb21pc2VfdGVzdChh
c3luYyB0ID0+IHsKLSAgICAgIGNvbnN0IGlmcmFtZSA9IGF3YWl0IGF0dGFjaElmcmFtZSgpOwot
ICAgICAgY29uc3QgaWZyYW1lV2luZG93ID0gaWZyYW1lLmNvbnRlbnRXaW5kb3c7Ci0gICAgICBj
b25zdCBpZnJhbWVSZXF1ZXN0ID0gbmV3IGlmcmFtZVdpbmRvdy5QYXltZW50UmVxdWVzdChtZXRo
b2RzLCBkZXRhaWxzKTsKLSAgICAgIGNvbnN0IGlmcmFtZVNob3dQcm9taXNlID0gdGVzdF9kcml2
ZXIuYmxlc3MoCi0gICAgICAgICJ0ZXN0IG5hdmlnYXRpbmcgaWZyYW1lIGFmdGVyIHNob3coKSIs
Ci0gICAgICAgICgpID0+IGlmcmFtZVJlcXVlc3Quc2hvdygpLAotICAgICAgKTsKLQotICAgICAg
Ly8gV2UgbmF2aWdhdGUgYXdheSwgY2F1c2luZyB0aGUgcGF5bWVudCBzaGVldCB0byBjbG9zZQot
ICAgICAgLy8gYW5kIHRoZSByZXF1ZXN0IGlzIHNob3dpbmcgYm9vbGVhbiB0byBiZWNvbWUgZmFs
c2UuCi0gICAgICBpZnJhbWUuc3JjID0gImJsYW5rLmh0bWw/YWJjPTEyMyI7Ci0gICAgICBhd2Fp
dCBuZXcgUHJvbWlzZShyZXNvbHZlID0+IChpZnJhbWUub25sb2FkID0gcmVzb2x2ZSkpOwotICAg
ICAgYXdhaXQgcHJvbWlzZV9yZWplY3RzX2RvbSgKLSAgICAgICAgdCwKLSAgICAgICAgIkFib3J0
RXJyb3IiLAotICAgICAgICBpZnJhbWVTaG93UHJvbWlzZSwKLSAgICAgICAgIk5hdmlnYXRpbmcg
aWZyYW1lIGF3YXkgbXVzdCBjYXVzZSB0aGUgaWZyYW1lU2hvd1Byb21pc2UgdG8gcmVqZWN0LiIs
CisgICAgICAgIHNob3dQcm9taXNlLAorICAgICAgICAiTm9ybWFsIGFib3J0LiIKICAgICAgICk7
Ci0gICAgICBpZnJhbWUucmVtb3ZlKCk7Ci0KLSAgICAgIC8vIE5vdyB3ZSBzaG91bGQgYmUgb2sg
dG8gc3BpbiB1cCBhIG5ldyBwYXltZW50IHJlcXVlc3QKLSAgICAgIGNvbnN0IHJlcXVlc3QgPSBu
ZXcgd2luZG93LlBheW1lbnRSZXF1ZXN0KG1ldGhvZHMsIGRldGFpbHMpOwotICAgICAgY29uc3Qg
W3Nob3dQcm9taXNlXSA9IGF3YWl0IHRlc3RfZHJpdmVyLmJsZXNzKAotICAgICAgICAgICJzdGFy
dCBhIG5ldyBwYXltZW50IHJlcXVlc3QiLAotICAgICAgICAgICgpID0+IHsKLSAgICAgICAgICAg
IHJldHVybiBbcmVxdWVzdC5zaG93KCldOwotICAgICAgICAgIH0pOwotCi0gICAgICAvLyBJZiBh
IHBheW1lbnQgc2hlZXQgZmFpbHMgdG8gc2hvdywgaXQgc2hvdWxkIHJlamVjdCBpbW1lZGlhdGVs
eS4gSWYgaXQKLSAgICAgIC8vIGhhc24ndCByZWplY3RlZCBpbiAxIHNlY29uZCwgdGhlbiB0aGUg
dGVzdCBoYXMgcGFzc2VkLgotICAgICAgdC5zdGVwX3RpbWVvdXQoYXN5bmMgKCkgPT4gewotICAg
ICAgICAvLyBXZSdyZSBkb25lLiBDbGVhbiB1cC4KLSAgICAgICAgYXdhaXQgcmVxdWVzdC5hYm9y
dCgpOwotICAgICAgICB0LmRvbmUoKTsKLSAgICAgIH0pOwotCi0gICAgICAvLyBJZiB0aGUgbmF2
aWdhdGlvbiBpbiBpZnJhbWUgZmFpbGVkIHRvIGNsb3NlIHRoZSBvcmlnaW5hbCBwYXltZW50IHNo
ZWV0Ci0gICAgICAvLyB0aGVyZSwgfHNob3dQcm9taXNlfCBzaG91bGQgcmVqZWN0IGltbWVkaWF0
ZWx5IGFuZCB0aGlzIGluZGljYXRlcyBhCi0gICAgICAvLyBmYWlsdXJlIG9mIHRoaXMgdGVzdC4K
LSAgICAgIGF3YWl0IHNob3dQcm9taXNlLnRoZW4oKCkgPT4gewotICAgICAgICBhc3NlcnRfdHJ1
ZShmYWxzZSwKLSAgICAgICAgICAiU2Vjb25kIHBheW1lbnQgc2hlZXQgc2hvdWxkIGJlIHBlbmRp
bmcgYnV0IGlzIHJlc29sdmVkLiIpOwotICAgICAgfSkKLSAgICAgIC5jYXRjaChlID0+IHsKLSAg
ICAgICAgYXNzZXJ0X3RydWUoZmFsc2UsCi0gICAgICAgICAgIlNlY29uZCBwYXltZW50IHNoZWV0
IHNob3VsZCBiZSBwZW5kaW5nIGJ1dCBpcyByZWplY3RlZC4iICsgZS5tZXNzYWdlKTsKLSAgICAg
IH0pOwogICAgIH0sICJOYXZpZ2F0aW5nIGFuIGlmcmFtZSBhcyBhIG5lc3RlZCBicm93c2luZyBj
b250ZXh0IHNldHMgJ3BheW1lbnQgcmVxdWVzdCBpcyBzaG93aW5nIGJvb2xlYW4nIHRvIGZhbHNl
LiIpOwotCi0gICAgcHJvbWlzZV90ZXN0KGFzeW5jIHQgPT4gewotICAgICAgY29uc3QgW3BvcHVw
V2luZG93LCBwb3B1cFJlcXVlc3QsIHBvcHVwU2hvd1Byb21pc2VdID0KLSAgICAgICAgYXdhaXQg
dGVzdF9kcml2ZXIuYmxlc3MoCi0gICAgICAgICAgInRyaWdnZXIgcGF5bWVudCBpbiBhIHBvcHVw
IHdpbmRvdyIsCi0gICAgICAgICAgYXN5bmMgKCkgPT4gewotICAgICAgICAgICAgY29uc3QgcG9w
dXBXaW5kb3cgPSBhd2FpdCBsb2FkUG9wdXBJbnNpZGVVc2VyR2VzdHVyZSgpOwotICAgICAgICAg
ICAgY29uc3QgcG9wdXBSZXF1ZXN0ID0gbmV3IHBvcHVwV2luZG93LlBheW1lbnRSZXF1ZXN0KG1l
dGhvZHMsIGRldGFpbHMpOwotICAgICAgICAgICAgcmV0dXJuIFtwb3B1cFdpbmRvdywgcG9wdXBS
ZXF1ZXN0LCBwb3B1cFJlcXVlc3Quc2hvdygpXTsKLSAgICAgICAgICB9KTsKLQotICAgICAgLy8g
V2UgbmF2aWdhdGUgYXdheSwgY2F1c2luZyB0aGUgcGF5bWVudCBzaGVldCB0byBjbG9zZQotICAg
ICAgLy8gYW5kIHRoZSByZXF1ZXN0IGlzIHNob3dpbmcgYm9vbGVhbiB0byBiZWNvbWUgZmFsc2Uu
Ci0gICAgICBwb3B1cFdpbmRvdy5sb2NhdGlvbiA9ICJibGFuay5odG1sP2FiYz0xMjMiOwotICAg
ICAgYXdhaXQgbmV3IFByb21pc2UocmVzb2x2ZSA9PiAocG9wdXBXaW5kb3cub25sb2FkID0gcmVz
b2x2ZSkpOwotCi0gICAgICAvLyBEb24ndCB3YWl0IGZvciB8cG9wdXBTaG93UHJvbWlzZXwgdG8g
cmVqZWN0IGJlY2F1c2UgaXQgbWF5IG5ldmVyIGRvCi0gICAgICAvLyAoc2VlIGh0dHBzOi8vZ2l0
aHViLmNvbS93M2MvcGF5bWVudC1yZXF1ZXN0L2lzc3Vlcy84NzIpLiBJbnN0ZWFkLCB0cnkKLSAg
ICAgIC8vIHRvIHNwaW4gdXAgYSBuZXcgcGF5bWVudCByZXF1ZXN0IGFuZCBtYWtlIHN1cmUgaXQg
c3VjY2VlZHMuCi0gICAgICBjb25zdCByZXF1ZXN0ID0gbmV3IHdpbmRvdy5QYXltZW50UmVxdWVz
dChtZXRob2RzLCBkZXRhaWxzKTsKLSAgICAgIGNvbnN0IFtzaG93UHJvbWlzZV0gPSBhd2FpdCB0
ZXN0X2RyaXZlci5ibGVzcygKLSAgICAgICAgInRyaWdnZXIgcGF5bWVudCBpbiBtYWluIHdpbmRv
dyIsCi0gICAgICAgICgpID0+IHsKLSAgICAgICAgICByZXR1cm4gW3JlcXVlc3Quc2hvdygpXTsK
LSAgICAgICAgfSk7Ci0KLSAgICAgIC8vIElmIGEgcGF5bWVudCBzaGVldCBmYWlscyB0byBzaG93
LCBpdCBzaG91bGQgcmVqZWN0IGltbWVkaWF0ZWx5LiBJZiBpdAotICAgICAgLy8gaGFzbid0IHJl
amVjdGVkIGluIDEgc2Vjb25kLCB0aGVuIHRoZSB0ZXN0IGhhcyBwYXNzZWQuCi0gICAgICB0LnN0
ZXBfdGltZW91dChhc3luYyAoKSA9PiB7Ci0gICAgICAgIC8vIFdlJ3JlIGRvbmUuIENsZWFuIHVw
LgotICAgICAgICBwb3B1cFdpbmRvdy5jbG9zZSgpOwotICAgICAgICBhd2FpdCByZXF1ZXN0LmFi
b3J0KCk7Ci0gICAgICAgIHQuZG9uZSgpOwotICAgICAgfSwgMTAwMCk7Ci0KLSAgICAgIC8vIElm
IHRoZSBuYXZpZ2F0aW9uIGluIHBvcHVwIHdpbmRvdyBmYWlsZWQgdG8gY2xvc2UgdGhlIG9yaWdp
bmFsIHBheW1lbnQKLSAgICAgIC8vIHNoZWV0IHRoZXJlLCB8c2hvd1Byb21pc2V8IHNob3VsZCBy
ZWplY3QgaW1tZWRpYXRlbHkgYW5kIHRoaXMgaW5kaWNhdGVzCi0gICAgICAvLyBhIGZhaWx1cmUg
b2YgdGhpcyB0ZXN0LgotICAgICAgYXdhaXQgc2hvd1Byb21pc2UudGhlbigoKSA9PiB7Ci0gICAg
ICAgIGFzc2VydF90cnVlKGZhbHNlLAotICAgICAgICAgICJTZWNvbmQgcGF5bWVudCBzaGVldCBz
aG91bGQgYmUgcGVuZGluZyBidXQgaXMgcmVzb2x2ZWQuIik7Ci0gICAgICB9KQotICAgICAgLmNh
dGNoKGUgPT4gewotICAgICAgICBhc3NlcnRfdHJ1ZShmYWxzZSwKLSAgICAgICAgICAiU2Vjb25k
IHBheW1lbnQgc2hlZXQgc2hvdWxkIGJlIHBlbmRpbmcgYnV0IGlzIHJlamVjdGVkLiIpOwotICAg
ICAgfSk7Ci0gICAgfSwgIk5hdmlnYXRpbmcgYSBwb3B1cCBhcyBhIG5lc3RlZCBicm93c2luZyBj
b250ZXh0IHNldHMgJ3BheW1lbnQgcmVxdWVzdCBpcyBzaG93aW5nIGJvb2xlYW4nIHRvIGZhbHNl
LiIpOwogICA8L3NjcmlwdD4KIDwvYm9keT4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvcGF5bWVudC1yZXF1ZXN0L3BheW1lbnQtcmVxdWVz
dC1jYW5tYWtlcGF5bWVudC1tZXRob2QuaHR0cHMtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9wYXltZW50LXJlcXVlc3QvcGF5bWVudC1y
ZXF1ZXN0LWNhbm1ha2VwYXltZW50LW1ldGhvZC5odHRwcy1leHBlY3RlZC50eHQKaW5kZXggYjY4
NGQ3Nzg2NWFhZDQ3Zjg1ZjEzMjljMzUyYTljZDcxMDYzZGI5Zi4uNTY2MTgyZjFjM2E4MGRmY2Y4
OGNkMTI0YjFlZWVkOWU4OGIxYmNjNyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9wYXltZW50LXJlcXVlc3QvcGF5bWVudC1yZXF1ZXN0LWNh
bm1ha2VwYXltZW50LW1ldGhvZC5odHRwcy1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9wYXltZW50LXJlcXVlc3QvcGF5bWVudC1y
ZXF1ZXN0LWNhbm1ha2VwYXltZW50LW1ldGhvZC5odHRwcy1leHBlY3RlZC50eHQKQEAgLTQsNiAr
NCw2IEBAIFBBU1MgSWYgcGF5bWVudCBtZXRob2QgaWRlbnRpZmllciBhcmUgc3VwcG9ydGVkLCBy
ZXNvbHZlIHByb21pc2Ugd2l0aCB0cnVlLgogUEFTUyBJZiByZXF1ZXN0Lltbc3RhdGVdXSBpcyAi
Y3JlYXRlZCIsIHRoZW4gcmV0dXJuIGEgcHJvbWlzZSB0aGF0IHJlc29sdmVzIHRvIHRydWUgZm9y
IGtub3duIG1ldGhvZC4KIFBBU1MgQWxsIG1ldGhvZHMgYXJlIHVuc3VwcG9ydGVkCiBQQVNTIE1p
eCBvZiBzdXBwb3J0ZWQgYW5kIHVuc3VwcG9ydGVkIG1ldGhvZHMsIGF0IGxlYXN0IG9uZSBtZXRo
b2QgaXMgc3VwcG9ydGVkLgotRkFJTCBJZiByZXF1ZXN0Lltbc3RhdGVdXSBpcyAiaW50ZXJhY3Rp
dmUiLCB0aGVuIHJldHVybiBhIHByb21pc2UgcmVqZWN0ZWQgd2l0aCBhbiAiSW52YWxpZFN0YXRl
RXJyb3IiIERPTUV4Y2VwdGlvbi4gYXNzZXJ0X3VucmVhY2hlZDogU2hvdWxkIGhhdmUgcmVqZWN0
ZWQ6IHVuZGVmaW5lZCBSZWFjaGVkIHVucmVhY2hhYmxlIGNvZGUKLUZBSUwgSWYgcmVxdWVzdC5b
W3N0YXRlXV0gaXMgImNsb3NlZCIsIHRoZW4gcmV0dXJuIGEgcHJvbWlzZSByZWplY3RlZCB3aXRo
IGFuICJJbnZhbGlkU3RhdGVFcnJvciIgRE9NRXhjZXB0aW9uLiBwcm9taXNlX3Rlc3Q6IFVuaGFu
ZGxlZCByZWplY3Rpb24gd2l0aCB2YWx1ZTogb2JqZWN0ICJJbnZhbGlkU3RhdGVFcnJvcjogVGhl
IG9iamVjdCBpcyBpbiBhbiBpbnZhbGlkIHN0YXRlLiIKK1BBU1MgSWYgcmVxdWVzdC5bW3N0YXRl
XV0gaXMgImludGVyYWN0aXZlIiwgdGhlbiByZXR1cm4gYSBwcm9taXNlIHJlamVjdGVkIHdpdGgg
YW4gIkludmFsaWRTdGF0ZUVycm9yIiBET01FeGNlcHRpb24uCitQQVNTIElmIHJlcXVlc3QuW1tz
dGF0ZV1dIGlzICJjbG9zZWQiLCB0aGVuIHJldHVybiBhIHByb21pc2UgcmVqZWN0ZWQgd2l0aCBh
biAiSW52YWxpZFN0YXRlRXJyb3IiIERPTUV4Y2VwdGlvbi4KIApkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9wYXltZW50LXJlcXVlc3QvcGF5
bWVudC1yZXF1ZXN0LWhhc2Vucm9sbGVkaW5zdHJ1bWVudC1tZXRob2QudGVudGF0aXZlLmh0dHBz
LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvcGF5bWVudC1yZXF1ZXN0L3BheW1lbnQtcmVxdWVzdC1oYXNlbnJvbGxlZGluc3RydW1lbnQt
bWV0aG9kLnRlbnRhdGl2ZS5odHRwcy1leHBlY3RlZC50eHQKaW5kZXggODFhZjZiMTcwNjVhM2Zl
YjcwNzM5NjVhMTM5YTRlMzIyM2Y4NTA0OC4uNTM5MWE1YjNiNzg3YTc3YzVkZDMxN2JmNjI5YTlj
Y2Q1NmY2Zjk5MiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy9wYXltZW50LXJlcXVlc3QvcGF5bWVudC1yZXF1ZXN0LWhhc2Vucm9sbGVkaW5z
dHJ1bWVudC1tZXRob2QudGVudGF0aXZlLmh0dHBzLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3BheW1lbnQtcmVxdWVzdC9wYXlt
ZW50LXJlcXVlc3QtaGFzZW5yb2xsZWRpbnN0cnVtZW50LW1ldGhvZC50ZW50YXRpdmUuaHR0cHMt
ZXhwZWN0ZWQudHh0CkBAIC0yLDUgKzIsNSBAQCBJZiB5b3UgZmluZCBhIGJ1Z2d5IHRlc3QsIHBs
ZWFzZSBmaWxlIGEgYnVnIGFuZCB0YWcgb25lIG9mIHRoZSBzdWdnZXN0ZWQgcmV2aWV3ZQogCiBG
QUlMIGhhc0Vucm9sbGVkSW5zdHJ1bWVudCgpIHJlc29sdmVzIHRvIGZhbHNlIGZvciB1bnN1cHBv
cnRlZCBwYXltZW50IG1ldGhvZHMuIHByb21pc2VfdGVzdDogVW5oYW5kbGVkIHJlamVjdGlvbiB3
aXRoIHZhbHVlOiBvYmplY3QgIlR5cGVFcnJvcjogcmVxdWVzdC5oYXNFbnJvbGxlZEluc3RydW1l
bnQgaXMgbm90IGEgZnVuY3Rpb24uIChJbiAncmVxdWVzdC5oYXNFbnJvbGxlZEluc3RydW1lbnQo
KScsICdyZXF1ZXN0Lmhhc0Vucm9sbGVkSW5zdHJ1bWVudCcgaXMgdW5kZWZpbmVkKSIKIEZBSUwg
SWYgcmVxdWVzdC5bW3N0YXRlXV0gaXMgImludGVyYWN0aXZlIiwgdGhlbiByZXR1cm4gYSBwcm9t
aXNlIHJlamVjdGVkIHdpdGggYW4gIkludmFsaWRTdGF0ZUVycm9yIiBET01FeGNlcHRpb24uIHBy
b21pc2VfdGVzdDogVW5oYW5kbGVkIHJlamVjdGlvbiB3aXRoIHZhbHVlOiBvYmplY3QgIlR5cGVF
cnJvcjogcmVxdWVzdC5oYXNFbnJvbGxlZEluc3RydW1lbnQgaXMgbm90IGEgZnVuY3Rpb24uIChJ
biAncmVxdWVzdC5oYXNFbnJvbGxlZEluc3RydW1lbnQoKScsICdyZXF1ZXN0Lmhhc0Vucm9sbGVk
SW5zdHJ1bWVudCcgaXMgdW5kZWZpbmVkKSIKLUZBSUwgSWYgcmVxdWVzdC5bW3N0YXRlXV0gaXMg
ImNsb3NlZCIsIHRoZW4gcmV0dXJuIGEgcHJvbWlzZSByZWplY3RlZCB3aXRoIGFuICJJbnZhbGlk
U3RhdGVFcnJvciIgRE9NRXhjZXB0aW9uLiBwcm9taXNlX3Rlc3Q6IFVuaGFuZGxlZCByZWplY3Rp
b24gd2l0aCB2YWx1ZTogb2JqZWN0ICJJbnZhbGlkU3RhdGVFcnJvcjogVGhlIG9iamVjdCBpcyBp
biBhbiBpbnZhbGlkIHN0YXRlLiIKK0ZBSUwgSWYgcmVxdWVzdC5bW3N0YXRlXV0gaXMgImNsb3Nl
ZCIsIHRoZW4gcmV0dXJuIGEgcHJvbWlzZSByZWplY3RlZCB3aXRoIGFuICJJbnZhbGlkU3RhdGVF
cnJvciIgRE9NRXhjZXB0aW9uLiBwcm9taXNlX3JlamVjdHNfZG9tOiBmdW5jdGlvbiAiZnVuY3Rp
b24gKCkgeyB0aHJvdyBlIH0iIHRocmV3IG9iamVjdCAiTm90U3VwcG9ydGVkRXJyb3I6IFRoZSBv
cGVyYXRpb24gaXMgbm90IHN1cHBvcnRlZC4iIHRoYXQgaXMgbm90IGEgRE9NRXhjZXB0aW9uIEFi
b3J0RXJyb3I6IHByb3BlcnR5ICJjb2RlIiBpcyBlcXVhbCB0byA5LCBleHBlY3RlZCAyMAogCmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Bh
eW1lbnQtcmVxdWVzdC9wYXltZW50LXJlcXVlc3Qtc2hvdy1tZXRob2QuaHR0cHMtZXhwZWN0ZWQu
dHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9wYXltZW50
LXJlcXVlc3QvcGF5bWVudC1yZXF1ZXN0LXNob3ctbWV0aG9kLmh0dHBzLWV4cGVjdGVkLnR4dApu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwLi5iODEwNDZiOGVjM2I1OGRhY2ViM2RiMTBiMjIyNDIwNzk2NzBlNjVlCi0tLSAv
ZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy9wYXltZW50LXJlcXVlc3QvcGF5bWVudC1yZXF1ZXN0LXNob3ctbWV0aG9kLmh0dHBzLWV4cGVj
dGVkLnR4dApAQCAtMCwwICsxLDggQEAKK0lmIHlvdSBmaW5kIGEgYnVnZ3kgdGVzdCwgcGxlYXNl
IGZpbGUgYSBidWcgYW5kIHRhZyBvbmUgb2YgdGhlIHN1Z2dlc3RlZCByZXZpZXdlcnMuCisKK1BB
U1MgQ2FsbGluZyBzaG93KCkgd2l0aG91dCBiZWluZyB0cmlnZ2VyZWQgYnkgdXNlciBpbnRlcmFj
dGlvbiB0aHJvd3MKK0ZBSUwgVGhyb3dzIGlmIHRoZSBwcm9taXNlIFtbc3RhdGVdXSBpcyBub3Qg
J2NyZWF0ZWQnLiBwcm9taXNlX3JlamVjdHNfZG9tOiBmdW5jdGlvbiAiZnVuY3Rpb24gKCkgeyB0
aHJvdyBlIH0iIHRocmV3IG9iamVjdCAiU2VjdXJpdHlFcnJvcjogc2hvdygpIG11c3QgYmUgdHJp
Z2dlcmVkIGJ5IHVzZXIgYWN0aXZhdGlvbi4iIHRoYXQgaXMgbm90IGEgRE9NRXhjZXB0aW9uIElu
dmFsaWRTdGF0ZUVycm9yOiBwcm9wZXJ0eSAiY29kZSIgaXMgZXF1YWwgdG8gMTgsIGV4cGVjdGVk
IDExCitGQUlMIElmIHRoZSB1c2VyIGFnZW50J3MgInBheW1lbnQgcmVxdWVzdCBpcyBzaG93aW5n
IiBib29sZWFuIGlzIHRydWUsIHRoZW4gcmV0dXJuIGEgcHJvbWlzZSByZWplY3RlZCB3aXRoIGFu
ICJBYm9ydEVycm9yIiBET01FeGNlcHRpb24uIHByb21pc2VfdGVzdDogVW5oYW5kbGVkIHJlamVj
dGlvbiB3aXRoIHZhbHVlOiBvYmplY3QgIkludmFsaWRTdGF0ZUVycm9yOiBUaGUgb2JqZWN0IGlz
IGluIGFuIGludmFsaWQgc3RhdGUuIgorRkFJTCBJZiBwYXltZW50IG1ldGhvZCBjb25zdWx0YXRp
b24gcHJvZHVjZXMgbm8gc3VwcG9ydGVkIG1ldGhvZCBvZiBwYXltZW50LCB0aGVuIHJldHVybiBh
IHByb21pc2UgcmVqZWN0ZWQgd2l0aCBhICJOb3RTdXBwb3J0ZWRFcnJvciIgRE9NRXhjZXB0aW9u
LiBwcm9taXNlX3JlamVjdHNfZG9tOiBmdW5jdGlvbiAiZnVuY3Rpb24gKCkgeyB0aHJvdyBlIH0i
IHRocmV3IG9iamVjdCAiQWJvcnRFcnJvcjogVGhlIG9wZXJhdGlvbiB3YXMgYWJvcnRlZC4iIHRo
YXQgaXMgbm90IGEgRE9NRXhjZXB0aW9uIE5vdFN1cHBvcnRlZEVycm9yOiBwcm9wZXJ0eSAiY29k
ZSIgaXMgZXF1YWwgdG8gMjAsIGV4cGVjdGVkIDkKK0ZBSUwgQ2FsbGluZyBzaG93KCkgbXVsdGlw
bGUgdGltZXMgYWx3YXlzIHJldHVybnMgYSBuZXcgcHJvbWlzZS4gcHJvbWlzZV90ZXN0OiBVbmhh
bmRsZWQgcmVqZWN0aW9uIHdpdGggdmFsdWU6IG9iamVjdCAiSW52YWxpZFN0YXRlRXJyb3I6IFRo
ZSBvYmplY3QgaXMgaW4gYW4gaW52YWxpZCBzdGF0ZS4iCisKZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvcGF5bWVudC1yZXF1ZXN0L3BheW1l
bnQtcmVxdWVzdC1zaG93LW1ldGhvZC5odHRwcy5odG1sIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9wYXltZW50LXJlcXVlc3QvcGF5bWVudC1yZXF1ZXN0LXNo
b3ctbWV0aG9kLmh0dHBzLmh0bWwKaW5kZXggOTc4ODcyMWFhMzU0NzJkNDc5OWE0NDIzOTIzMDY2
MDc0NzVhZmFlMC4uMjI3Nzk3NDU2MzkyNjc3OTc0Mjc3N2U5YjE5MzVhZTZjODk0Yjg5YyAxMDA2
NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9wYXlt
ZW50LXJlcXVlc3QvcGF5bWVudC1yZXF1ZXN0LXNob3ctbWV0aG9kLmh0dHBzLmh0bWwKKysrIGIv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9wYXltZW50LXJlcXVl
c3QvcGF5bWVudC1yZXF1ZXN0LXNob3ctbWV0aG9kLmh0dHBzLmh0bWwKQEAgLTQ2LDIyICs0Niwy
MCBAQCBwcm9taXNlX3Rlc3QoYXN5bmMgKHQpID0+IHsKICAgICByZXF1ZXN0LmFib3J0KCk7CiAg
IH0sIDIwMDApOwogCi0gIGF3YWl0IHByb21pc2VfcmVqZWN0c19kb20odCwgIk5vdEFsbG93ZWRF
cnJvciIsIGFjY2VwdFByb21pc2UpOworICBhd2FpdCBwcm9taXNlX3JlamVjdHNfZG9tKHQsICJT
ZWN1cml0eUVycm9yIiwgYWNjZXB0UHJvbWlzZSk7CiB9LCBgQ2FsbGluZyBzaG93KCkgd2l0aG91
dCBiZWluZyB0cmlnZ2VyZWQgYnkgdXNlciBpbnRlcmFjdGlvbiB0aHJvd3NgKTsKIAogcHJvbWlz
ZV90ZXN0KGFzeW5jICh0KSA9PiB7CiAgIGNvbnN0IHJlcXVlc3QgPSBuZXcgUGF5bWVudFJlcXVl
c3QoZGVmYXVsdE1ldGhvZHMsIGRlZmF1bHREZXRhaWxzKTsKLSAgYXdhaXQgdGVzdF9kcml2ZXIu
Ymxlc3MoCi0gICAgInRlc3Q6IHRocm93cyBpZiB0aGUgcHJvbWlzZSBbW3N0YXRlXV0gaXMgbm90
ICdjcmVhdGVkJyIKLSAgKTsKKyAgYXdhaXQgcHJvbWlzZV9yZWplY3RzX2RvbSh0LCAiU2VjdXJp
dHlFcnJvciIsIHJlcXVlc3Quc2hvdygpKTsKKworICBhd2FpdCB0ZXN0X2RyaXZlci5ibGVzcygp
OwogICBjb25zdCBhY2NlcHRQcm9taXNlID0gcmVxdWVzdC5zaG93KCk7IC8vIFNldHMgc3RhdGUg
dG8gImludGVyYWN0aXZlIgotICAvLyBObyB1c2VyIGFjdGl2YXRpb24uLi4KLSAgYXdhaXQgcHJv
bWlzZV9yZWplY3RzX2RvbSh0LCAiTm90QWxsb3dlZEVycm9yIiwgcmVxdWVzdC5zaG93KCkpOwog
Ci0gIC8vIEdldCB1c2VyIGFjdGl2YXRpb24KLSAgYXdhaXQgdGVzdF9kcml2ZXIuYmxlc3MoCi0g
ICAgInRlc3Q6IHRocm93cyBpZiB0aGUgcHJvbWlzZSBbW3N0YXRlXV0gaXMgbm90ICdjcmVhdGVk
JyIKLSAgKTsKKyAgYXdhaXQgcHJvbWlzZV9yZWplY3RzX2RvbSh0LCAiSW52YWxpZFN0YXRlRXJy
b3IiLCByZXF1ZXN0LnNob3coKSk7CisKKyAgLy8gV2l0aCB1c2VyIGFjdGl2YXRpb24sIGJ1dCBh
bHJlYWR5IHNob3dpbmcgdGhlIHNoZWV0Li4uCisgIGF3YWl0IHRlc3RfZHJpdmVyLmJsZXNzKCk7
CiAgIGF3YWl0IHByb21pc2VfcmVqZWN0c19kb20odCwgIkludmFsaWRTdGF0ZUVycm9yIiwgcmVx
dWVzdC5zaG93KCkpOwogCiAgIGF3YWl0IHJlcXVlc3QuYWJvcnQoKTsKQEAgLTcwLDE2ICs2OCwx
NSBAQCBwcm9taXNlX3Rlc3QoYXN5bmMgKHQpID0+IHsKIAogcHJvbWlzZV90ZXN0KGFzeW5jICh0
KSA9PiB7CiAgIGNvbnN0IHJlcXVlc3QxID0gbmV3IFBheW1lbnRSZXF1ZXN0KGRlZmF1bHRNZXRo
b2RzLCBkZWZhdWx0RGV0YWlscyk7Ci0gIGNvbnN0IHJlcXVlc3QyID0gbmV3IFBheW1lbnRSZXF1
ZXN0KGRlZmF1bHRNZXRob2RzLCBkZWZhdWx0RGV0YWlscyk7Ci0KLSAgYXdhaXQgdGVzdF9kcml2
ZXIuYmxlc3MoInBheW1lbnQgcmVxdWVzdCIpOworICBhd2FpdCB0ZXN0X2RyaXZlci5ibGVzcygp
OwogICBjb25zdCBhY2NlcHRQcm9taXNlMSA9IHJlcXVlc3QxLnNob3coKTsKIAogICAvLyBVc2Vy
IGFjdGl2YXRpb24gY29uc3VtZWQsIHNvLi4uCi0gIGF3YWl0IHByb21pc2VfcmVqZWN0c19kb20o
dCwgIk5vdEFsbG93ZWRFcnJvciIsIHJlcXVlc3QyLnNob3coKSk7CisgIGNvbnN0IHJlcXVlc3Qy
ID0gbmV3IFBheW1lbnRSZXF1ZXN0KGRlZmF1bHRNZXRob2RzLCBkZWZhdWx0RGV0YWlscyk7Cisg
IGF3YWl0IHByb21pc2VfcmVqZWN0c19kb20odCwgIlNlY3VyaXR5RXJyb3IiLCByZXF1ZXN0Mi5z
aG93KCkpOwogCiAgIC8vIFBheW1lbnQgcmVxdWVzdCBhbHJlYWR5IHNob3dpbmcsIHNvLi4uCi0g
IGF3YWl0IHRlc3RfZHJpdmVyLmJsZXNzKCJwYXltZW50IHJlcXVlc3QiKTsKKyAgYXdhaXQgdGVz
dF9kcml2ZXIuYmxlc3MoKTsKICAgYXdhaXQgcHJvbWlzZV9yZWplY3RzX2RvbSh0LCAiQWJvcnRF
cnJvciIsIHJlcXVlc3QyLnNob3coKSk7CiAKICAgYXdhaXQgcmVxdWVzdDEuYWJvcnQoKTsKQEAg
LTkxLDI3ICs4OCwyNyBAQCBwcm9taXNlX3Rlc3QoYXN5bmMgKHQpID0+IHsKICAgICBbeyBzdXBw
b3J0ZWRNZXRob2RzOiAidGhpcy1pcy1ub3Qtc3VwcG9ydGVkIiB9XSwKICAgICBkZWZhdWx0RGV0
YWlscwogICApOwotICBhd2FpdCB0ZXN0X2RyaXZlci5ibGVzcyhgdGVzdDogcmVqZWN0IHByb21p
c2Ugd2l0aCAiTm90U3VwcG9ydGVkRXJyb3IiYCk7CisgIGF3YWl0IHRlc3RfZHJpdmVyLmJsZXNz
KCk7CiAgIGNvbnN0IGFjY2VwdFByb21pc2UgPSByZXF1ZXN0LnNob3coKTsKICAgYXdhaXQgcHJv
bWlzZV9yZWplY3RzX2RvbSh0LCAiTm90U3VwcG9ydGVkRXJyb3IiLCBhY2NlcHRQcm9taXNlKTsK
IH0sIGBJZiBwYXltZW50IG1ldGhvZCBjb25zdWx0YXRpb24gcHJvZHVjZXMgbm8gc3VwcG9ydGVk
IG1ldGhvZCBvZiBwYXltZW50LCB0aGVuIHJldHVybiBhIHByb21pc2UgcmVqZWN0ZWQgd2l0aCBh
ICJOb3RTdXBwb3J0ZWRFcnJvciIgRE9NRXhjZXB0aW9uLmApOwogCiBwcm9taXNlX3Rlc3QoYXN5
bmMgKHQpID0+IHsKICAgY29uc3QgcmVxdWVzdCA9IG5ldyBQYXltZW50UmVxdWVzdChkZWZhdWx0
TWV0aG9kcywgZGVmYXVsdERldGFpbHMpOwotICBhd2FpdCB0ZXN0X2RyaXZlci5ibGVzcygiY2Fs
bCBzaG93KCkiKTsKKyAgYXdhaXQgdGVzdF9kcml2ZXIuYmxlc3MoKTsKICAgY29uc3QgcDEgPSBy
ZXF1ZXN0LnNob3coKTsKLSAgYXdhaXQgdGVzdF9kcml2ZXIuYmxlc3MoImNhbGwgc2hvdygpIik7
CisgIGF3YWl0IHRlc3RfZHJpdmVyLmJsZXNzKCk7CiAgIGNvbnN0IHAyID0gcmVxdWVzdC5zaG93
KCk7Ci0gIGF3YWl0IHRlc3RfZHJpdmVyLmJsZXNzKCJjYWxsIHNob3coKSIpOworICBhd2FpdCB0
ZXN0X2RyaXZlci5ibGVzcygpOwogICBjb25zdCBwMyA9IHJlcXVlc3Quc2hvdygpOworICBhd2Fp
dCByZXF1ZXN0LmFib3J0KCk7CisKICAgY29uc3QgcHJvbWlzZXMgPSBuZXcgU2V0KFtwMSwgcDIs
IHAzXSk7CiAgIGFzc2VydF9lcXVhbHMocHJvbWlzZXMuc2l6ZSwgMywgIk11c3QgaGF2ZSB0aHJl
ZSB1bmlxdWUgb2JqZWN0cyIpOwogCisgIGF3YWl0IHByb21pc2VfcmVqZWN0c19kb20odCwgIkFi
b3J0RXJyb3IiLCBwMSk7CiAgIGF3YWl0IHByb21pc2VfcmVqZWN0c19kb20odCwgIkludmFsaWRT
dGF0ZUVycm9yIiwgcDIpOwogICBhd2FpdCBwcm9taXNlX3JlamVjdHNfZG9tKHQsICJJbnZhbGlk
U3RhdGVFcnJvciIsIHAzKTsKLQotICBhd2FpdCByZXF1ZXN0LmFib3J0KCk7Ci0gIGF3YWl0IHBy
b21pc2VfcmVqZWN0c19kb20odCwgIkFib3J0RXJyb3IiLCBwMSk7CiB9LCAiQ2FsbGluZyBzaG93
KCkgbXVsdGlwbGUgdGltZXMgYWx3YXlzIHJldHVybnMgYSBuZXcgcHJvbWlzZS4iKTsKIDwvc2Ny
aXB0PgogPHNtYWxsPgpAQCAtMTIwLDUgKzExNyw2IEBAIHByb21pc2VfdGVzdChhc3luYyAodCkg
PT4gewogICB0YWcgb25lIG9mIHRoZQogICA8YQogICAgIGhyZWY9Imh0dHBzOi8vZ2l0aHViLmNv
bS93ZWItcGxhdGZvcm0tdGVzdHMvd3B0L2Jsb2IvbWFzdGVyL3BheW1lbnQtcmVxdWVzdC9NRVRB
LnltbCIKLSAgICA+c3VnZ2VzdGVkIHJldmlld2VyczwvYT4uCisgICAgPnN1Z2dlc3RlZCByZXZp
ZXdlcnM8L2EKKyAgPi4KIDwvc21hbGw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3BheW1lbnQtcmVxdWVzdC9yZWplY3RzX2lmX25vdF9h
Y3RpdmUuaHR0cHMuaHRtbCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvcGF5bWVudC1yZXF1ZXN0L3JlamVjdHNfaWZfbm90X2FjdGl2ZS5odHRwcy5odG1sCmlu
ZGV4IDg5YzM0MDdlM2QwYmM1ZWJhZmMzYzdjMGQwMDE1MDk5MTI1MWExMzIuLjg0ZjI5OWRiOWJl
MWRhNGQ4OTRkZDMyZGIyMmNlMmZjZDY3M2NhZmIgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvcGF5bWVudC1yZXF1ZXN0L3JlamVjdHNfaWZf
bm90X2FjdGl2ZS5odHRwcy5odG1sCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvcGF5bWVudC1yZXF1ZXN0L3JlamVjdHNfaWZfbm90X2FjdGl2ZS5odHRw
cy5odG1sCkBAIC0xLDcgKzEsNyBAQAogPCFET0NUWVBFIGh0bWw+Ci08bWV0YSBjaGFyc2V0PXV0
Zi04PgorPG1ldGEgY2hhcnNldD0idXRmLTgiIC8+CiA8dGl0bGU+UGF5bWVudFJlcXVlc3Qgc2hv
dygpIHJlamVjdHMgaWYgZG9jIGlzIG5vdCBmdWxseSBhY3RpdmU8L3RpdGxlPgotPGxpbmsgcmVs
PSJoZWxwIiBocmVmPSJodHRwczovL3czYy5naXRodWIuaW8vcGF5bWVudC1yZXF1ZXN0LyNzaG93
LW1ldGhvZCI+Cis8bGluayByZWw9ImhlbHAiIGhyZWY9Imh0dHBzOi8vdzNjLmdpdGh1Yi5pby9w
YXltZW50LXJlcXVlc3QvI3Nob3ctbWV0aG9kIiAvPgogPHNjcmlwdCBzcmM9Ii9yZXNvdXJjZXMv
dGVzdGhhcm5lc3MuanMiPjwvc2NyaXB0PgogPHNjcmlwdCBzcmM9Ii9yZXNvdXJjZXMvdGVzdGhh
cm5lc3NyZXBvcnQuanMiPjwvc2NyaXB0PgogPHNjcmlwdCBzcmM9Ii9yZXNvdXJjZXMvdGVzdGRy
aXZlci5qcyI+PC9zY3JpcHQ+CkBAIC0xNiw3ICsxNiw3IEBAIGNvbnN0IGFwcGxlUGF5ID0gT2Jq
ZWN0LmZyZWV6ZSh7CiAgICAgY291bnRyeUNvZGU6ICJVUyIsCiAgICAgbWVyY2hhbnRDYXBhYmls
aXRpZXM6IFsic3VwcG9ydHMzRFMiXSwKICAgICBzdXBwb3J0ZWROZXR3b3JrczogWyJ2aXNhIl0s
Ci0gIH0KKyAgfSwKIH0pOwogY29uc3QgdmFsaWRNZXRob2QgPSBPYmplY3QuZnJlZXplKHsKICAg
c3VwcG9ydGVkTWV0aG9kczogImJhc2ljLWNhcmQiLApAQCAtMzQsNjQgKzM0LDU2IEBAIGNvbnN0
IHZhbGlkRGV0YWlscyA9IE9iamVjdC5mcmVlemUoewogICB0b3RhbDogdmFsaWRUb3RhbCwKIH0p
OwogCi1mdW5jdGlvbiBnZXRMb2FkZWRQYXltZW50UmVxdWVzdChpZnJhbWUsIHVybCkgewotICBy
ZXR1cm4gbmV3IFByb21pc2UocmVzb2x2ZSA9PiB7Ci0gICAgaWZyYW1lLmFkZEV2ZW50TGlzdGVu
ZXIoCi0gICAgICAibG9hZCIsCi0gICAgICAoKSA9PiB7Ci0gICAgICAgIGNvbnN0IHsgUGF5bWVu
dFJlcXVlc3QgfSA9IGlmcmFtZS5jb250ZW50V2luZG93OwotICAgICAgICBjb25zdCByZXF1ZXN0
ID0gbmV3IFBheW1lbnRSZXF1ZXN0KHZhbGlkTWV0aG9kcywgdmFsaWREZXRhaWxzKTsKLSAgICAg
ICAgcmVzb2x2ZShyZXF1ZXN0KTsKLSAgICAgIH0sCi0gICAgICB7IG9uY2U6IHRydWUgfQotICAg
ICk7Cithc3luYyBmdW5jdGlvbiBnZXRMb2FkZWRQYXltZW50UmVxdWVzdChpZnJhbWUsIHVybCkg
eworICBhd2FpdCBuZXcgUHJvbWlzZSgocmVzb2x2ZSkgPT4geworICAgIGlmcmFtZS5hZGRFdmVu
dExpc3RlbmVyKCJsb2FkIiwgcmVzb2x2ZSwgeyBvbmNlOiB0cnVlIH0pOwogICAgIGlmcmFtZS5z
cmMgPSB1cmw7CiAgIH0pOworICBjb25zdCB7IFBheW1lbnRSZXF1ZXN0IH0gPSBpZnJhbWUuY29u
dGVudFdpbmRvdzsKKyAgY29uc3QgcmVxdWVzdCA9IG5ldyBQYXltZW50UmVxdWVzdCh2YWxpZE1l
dGhvZHMsIHZhbGlkRGV0YWlscyk7CisgIHJldHVybiByZXF1ZXN0OwogfQogCi1wcm9taXNlX3Rl
c3QoYXN5bmMgdCA9PiB7Citwcm9taXNlX3Rlc3QoYXN5bmMgKHQpID0+IHsKICAgY29uc3QgaWZy
YW1lID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiaWZyYW1lIik7Ci0gIGlmcmFtZS5hbGxvdyA9
ICJwYXltZW50IjsKICAgZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZChpZnJhbWUpOwogICAvLyBN
YWtlIGEgcmVxdWVzdCBpbiB0aGUgaWZyYW1lLgogICBjb25zdCByZXF1ZXN0ID0gYXdhaXQgZ2V0
TG9hZGVkUGF5bWVudFJlcXVlc3QoCiAgICAgaWZyYW1lLAotICAgICIvcGF5bWVudC1yZXF1ZXN0
L3Jlc291cmNlcy9wYWdlMS5odG1sIgorICAgICJyZXNvdXJjZXMvcGFnZTEuaHRtbCIKICAgKTsK
LSAgY29uc3QgW3Nob3dQcm9taXNlXSA9IGF3YWl0IHRlc3RfZHJpdmVyLmJsZXNzKCJzaG93IHBh
eW1lbnQgcmVxdWVzdCIsICgpID0+IHsKLSAgICByZXR1cm4gW3JlcXVlc3Quc2hvdygpXTsKLSAg
fSk7Ci0gIC8vIE5hdmlnYXRlIHRoZSBpZnJhbWUgdG8gYSBuZXcgbG9jYXRpb24uIFdhaXQgZm9y
IHRoZSBsb2FkIGV2ZW50IHRvIGZpcmUuCi0gIGF3YWl0IG5ldyBQcm9taXNlKHJlc29sdmUgPT4g
ewotICAgIGlmcmFtZS5hZGRFdmVudExpc3RlbmVyKCJsb2FkIiwgcmVzb2x2ZSk7Ci0gICAgaWZy
YW1lLnNyYyA9ICIvcGF5bWVudC1yZXF1ZXN0L3Jlc291cmNlcy9wYWdlMi5odG1sIjsKLSAgICAv
LyBBbiBpbXBsZW1lbnRhdGlvbiBtYXkgb3B0aW9uYWxseSByZWplY3QgfHNob3dQcm9taXNlfC4K
LSAgICBzaG93UHJvbWlzZS5jYXRjaChlID0+IHt9KTsKLSAgfSk7CisgIGF3YWl0IHRlc3RfZHJp
dmVyLmJsZXNzKCJzaG93IHBheW1lbnQgcmVxdWVzdCIpOworICBjb25zdCBzaG93UHJvbWlzZSA9
IHJlcXVlc3Quc2hvdygpOworICBjb25zdCBmaXJzdEN0b3IgPSBpZnJhbWUuY29udGVudFdpbmRv
dy5ET01FeGNlcHRpb247CiAKLSAgLy8gVGhlIG5hdmlnYXRvbiBzaG91bGQgaGF2ZSBkaXNtaXNz
ZWQgdGhlIHByZXZpb3VzIHBheW1lbnQgcmVxdWVzdCBzbyBpdAotICAvLyBzaG91bGQgYmUgcG9z
c2libGUgdG8gc2hvdyBhbm90aGVyIG9uZSBub3cuCi0gIGNvbnN0IHJlcXVlc3QyID0gbmV3IGlm
cmFtZS5jb250ZW50V2luZG93LlBheW1lbnRSZXF1ZXN0KAotICAgIHZhbGlkTWV0aG9kcywgdmFs
aWREZXRhaWxzKTsKLSAgY29uc3QgW3Nob3dQcm9taXNlMl0gPSBhd2FpdCB0ZXN0X2RyaXZlci5i
bGVzcygKLSAgICAic2hvdyAybmQgcGF5bWVudCByZXF1ZXN0IiwgKCkgPT4gewotICAgICAgcmV0
dXJuIFtyZXF1ZXN0Mi5zaG93KCldOwotICAgIH0pOworICAvLyBOYXZpZ2F0ZSB0aGUgaWZyYW1l
IHRvIGEgbmV3IGxvY2F0aW9uLiBXYWl0IGZvciB0aGUgbG9hZCBldmVudCB0byBmaXJlLgorICBj
b25zdCByZXF1ZXN0MiA9IGF3YWl0IGdldExvYWRlZFBheW1lbnRSZXF1ZXN0KAorICAgIGlmcmFt
ZSwKKyAgICAicmVzb3VyY2VzL3BhZ2UyLmh0bWwiCisgICk7CiAKLSAgLy8gU3RvcCB0aGUgdGVz
dCBpbiAxIHNlY29uZCBpZiBpdCBoYXMgbm90IHJlamVjdGVkLCB3aGljaCBtZWFucyB0aGF0IGEK
LSAgLy8gcGF5bWVudCBzaGVldCBpcyBzdWNjZXNzZnVsbHkgc2hvd24uCi0gIHQuc3RlcF90aW1l
b3V0KGFzeW5jICgpID0+IHsKLSAgICAvLyBXZSBhcmUgZG9uZSwgc28gY2xlYW4gdXAuCi0gICAg
aWZyYW1lLnJlbW92ZSgpOwotICAgIHQuZG9uZSgpOwotICB9LCAxMDAwKTsKKyAgYXdhaXQgcHJv
bWlzZV9yZWplY3RzX2RvbSgKKyAgICB0LAorICAgICJBYm9ydEVycm9yIiwKKyAgICBmaXJzdEN0
b3IsCisgICAgc2hvd1Byb21pc2UsCisgICAgIlNob3cgcHJvbWlzZSBzaG91bGQgYWJvcnQuIgor
ICApOwogCi0gIC8vIFRoaXMgc2hvdWxkIG5ldmVyIHNldHRsZSBiZWNhdXNlIHRoZSBwYXltZW50
IHNoZWV0IHNob3VsZCBiZSBwZW5kaW5nLgotICBhd2FpdCBzaG93UHJvbWlzZTIudGhlbigoKSA9
PiB7Ci0gICAgYXNzZXJ0X3RydWUoZmFsc2UsICJTZWNvbmQgcGF5bWVudCBzaG91bGQgYmUgcGVu
ZGluZyBidXQgaXMgcmVzb2x2ZWQuIik7Ci0gIH0pCi0gIC5jYXRjaChlID0+IHsKLSAgICBhc3Nl
cnRfdHJ1ZShmYWxzZSwgIlNlY29uZCBwYXltZW50IHNob3VsZCBiZSBwZW5kaW5nIGJ1dCBpcyBy
ZWplY3RlZC4iKTsKLSAgfSk7CisgIC8vIFRoZSBuYXZpZ2F0aW9uIGRpc21pc3NlcyB0aGUgcHJl
dmlvdXMgcGF5bWVudCByZXF1ZXN0IHNvIGl0CisgIC8vIG5vdyBwb3NzaWJsZSB0byBzaG93IGFu
b3RoZXIgb25lLgorICBhd2FpdCB0ZXN0X2RyaXZlci5ibGVzcygic2hvdyAybmQgcGF5bWVudCBy
ZXF1ZXN0Iik7CisgIGNvbnN0IHNob3dQcm9taXNlMiA9IHJlcXVlc3QyLnNob3coKTsKKyAgY29u
c3Qgc2Vjb25kQ3RvciA9IGlmcmFtZS5jb250ZW50V2luZG93LkRPTUV4Y2VwdGlvbjsKKyAgLy8g
bm8gbG9uZ2VyIGZ1bGx5IGFjdGl2ZQorICBpZnJhbWUucmVtb3ZlKCk7CisgIGF3YWl0IHByb21p
c2VfcmVqZWN0c19kb20oCisgICAgdCwKKyAgICAiQWJvcnRFcnJvciIsCisgICAgc2Vjb25kQ3Rv
ciwKKyAgICBzaG93UHJvbWlzZTIsCisgICAgIlNob3cgcHJvbWlzZSBzaG91bGQgYWJvcnQuIgor
ICApOwogfSwgIklmIGEgcGF5bWVudCByZXF1ZXN0IGlzIHNob3dpbmcsIGJ1dCBpdHMgZG9jdW1l
bnQgaXMgbmF2aWdhdGVkIGF3YXkgKHNvIG5vIGxvbmdlciBmdWxseSBhY3RpdmUpLCB0aGUgcGF5
bWVudCBzaGVldCBpcyBkaXNtaXNzZWQuIik7CiA8L3NjcmlwdD4KKzwvYm9keT4KZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvcGF5bWVudC1y
ZXF1ZXN0L3Nob3ctbWV0aG9kLW9wdGlvbmFsLXByb21pc2UtcmVqZWN0cy5odHRwcy1leHBlY3Rl
ZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3BheW1l
bnQtcmVxdWVzdC9zaG93LW1ldGhvZC1vcHRpb25hbC1wcm9taXNlLXJlamVjdHMuaHR0cHMtZXhw
ZWN0ZWQudHh0CmluZGV4IDgwZWQyZmU3Zjg3N2QxM2UzYjM4MDdkYzlmNzcwYTIyOTEyZGM4ODAu
LmFlZTk2MzZiYTMwMGM0Mjk4ZDRhMGJmNDZkMzgyM2ExZTM1MmI0NzYgMTAwNjQ0Ci0tLSBhL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvcGF5bWVudC1yZXF1ZXN0
L3Nob3ctbWV0aG9kLW9wdGlvbmFsLXByb21pc2UtcmVqZWN0cy5odHRwcy1leHBlY3RlZC50eHQK
KysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9wYXltZW50
LXJlcXVlc3Qvc2hvdy1tZXRob2Qtb3B0aW9uYWwtcHJvbWlzZS1yZWplY3RzLmh0dHBzLWV4cGVj
dGVkLnR4dApAQCAtMSwzMCArMSwxMiBAQAogCi1GQUlMIFJlamVjdGlvbiBvZiBkZXRhaWxzUHJv
bWlzZSBtdXN0IGFib3J0IHRoZSB1cGRhdGUgd2l0aCBhbiAnQWJvcnRFcnJvcicgRE9NRXhjZXB0
aW9uLiBwcm9taXNlX3JlamVjdHNfZG9tOiBiYWREZXRhaWxzIG11c3QgY2F1c2UgYWNjZXB0UHJv
bWlzZSB0byByZWplY3Qgd2l0aCBleHBlY3RlZEVycm9yIGZ1bmN0aW9uICJmdW5jdGlvbiAoKSB7
IHRocm93IGUgfSIgdGhyZXcgb2JqZWN0ICJTZWN1cml0eUVycm9yOiBzaG93KCkgbXVzdCBiZSB0
cmlnZ2VyZWQgYnkgdXNlciBhY3RpdmF0aW9uLiIgdGhhdCBpcyBub3QgYSBET01FeGNlcHRpb24g
QWJvcnRFcnJvcjogcHJvcGVydHkgImNvZGUiIGlzIGVxdWFsIHRvIDE4LCBleHBlY3RlZCAyMAot
RkFJTCBUb3RhbCBpbiB0aGUgdXBkYXRlIGlzIGEgc3RyaW5nLCBzbyBjb252ZXJ0aW5nIHRvIElE
TCBtdXN0IGFib3J0IHRoZSB1cGRhdGUgd2l0aCBhIFR5cGVFcnJvci4gcHJvbWlzZV9yZWplY3Rz
X2pzOiBiYWREZXRhaWxzIG11c3QgY2F1c2UgYWNjZXB0UHJvbWlzZSB0byByZWplY3Qgd2l0aCBl
eHBlY3RlZEVycm9yIGZ1bmN0aW9uICJmdW5jdGlvbiAoKSB7IHRocm93IGUgfSIgdGhyZXcgb2Jq
ZWN0ICJTZWN1cml0eUVycm9yOiBzaG93KCkgbXVzdCBiZSB0cmlnZ2VyZWQgYnkgdXNlciBhY3Rp
dmF0aW9uLiIgKCJTZWN1cml0eUVycm9yIikgZXhwZWN0ZWQgaW5zdGFuY2Ugb2YgZnVuY3Rpb24g
ImZ1bmN0aW9uIFR5cGVFcnJvcigpIHsKLSAgICBbbmF0aXZlIGNvZGVdCi19IiAoIlR5cGVFcnJv
ciIpCi1GQUlMIFRvdGFsIGlzIHJlY3Vyc2l2ZSwgc28gY29udmVydGluZyB0byBJREwgbXVzdCBh
Ym9ydCB0aGUgdXBkYXRlIHdpdGggYSBUeXBlRXJyb3IuIHByb21pc2VfcmVqZWN0c19qczogYmFk
RGV0YWlscyBtdXN0IGNhdXNlIGFjY2VwdFByb21pc2UgdG8gcmVqZWN0IHdpdGggZXhwZWN0ZWRF
cnJvciBmdW5jdGlvbiAiZnVuY3Rpb24gKCkgeyB0aHJvdyBlIH0iIHRocmV3IG9iamVjdCAiU2Vj
dXJpdHlFcnJvcjogc2hvdygpIG11c3QgYmUgdHJpZ2dlcmVkIGJ5IHVzZXIgYWN0aXZhdGlvbi4i
ICgiU2VjdXJpdHlFcnJvciIpIGV4cGVjdGVkIGluc3RhbmNlIG9mIGZ1bmN0aW9uICJmdW5jdGlv
biBUeXBlRXJyb3IoKSB7Ci0gICAgW25hdGl2ZSBjb2RlXQotfSIgKCJUeXBlRXJyb3IiKQotRkFJ
TCBVcGRhdGluZyB3aXRoIGEgbmVnYXRpdmUgdG90YWwgcmVzdWx0cyBpbiBhIFR5cGVFcnJvci4g
cHJvbWlzZV9yZWplY3RzX2pzOiBiYWREZXRhaWxzIG11c3QgY2F1c2UgYWNjZXB0UHJvbWlzZSB0
byByZWplY3Qgd2l0aCBleHBlY3RlZEVycm9yIGZ1bmN0aW9uICJmdW5jdGlvbiAoKSB7IHRocm93
IGUgfSIgdGhyZXcgb2JqZWN0ICJTZWN1cml0eUVycm9yOiBzaG93KCkgbXVzdCBiZSB0cmlnZ2Vy
ZWQgYnkgdXNlciBhY3RpdmF0aW9uLiIgKCJTZWN1cml0eUVycm9yIikgZXhwZWN0ZWQgaW5zdGFu
Y2Ugb2YgZnVuY3Rpb24gImZ1bmN0aW9uIFR5cGVFcnJvcigpIHsKLSAgICBbbmF0aXZlIGNvZGVd
Ci19IiAoIlR5cGVFcnJvciIpCi1GQUlMIFVwZGF0aW5nIHdpdGggYSBkaXNwbGF5SXRlbSB3aXRo
IGFuIGludmFsaWQgY3VycmVuY3kgcmVzdWx0cyBpbiBSYW5nZUVycm9yLiBwcm9taXNlX3JlamVj
dHNfanM6IGJhZERldGFpbHMgbXVzdCBjYXVzZSBhY2NlcHRQcm9taXNlIHRvIHJlamVjdCB3aXRo
IGV4cGVjdGVkRXJyb3IgZnVuY3Rpb24gImZ1bmN0aW9uICgpIHsgdGhyb3cgZSB9IiB0aHJldyBv
YmplY3QgIlNlY3VyaXR5RXJyb3I6IHNob3coKSBtdXN0IGJlIHRyaWdnZXJlZCBieSB1c2VyIGFj
dGl2YXRpb24uIiAoIlNlY3VyaXR5RXJyb3IiKSBleHBlY3RlZCBpbnN0YW5jZSBvZiBmdW5jdGlv
biAiZnVuY3Rpb24gUmFuZ2VFcnJvcigpIHsKLSAgICBbbmF0aXZlIGNvZGVdCi19IiAoIlJhbmdl
RXJyb3IiKQotRkFJTCBVcGRhdGluZyB3aXRoIGR1cGxpY2F0ZSBzaGlwcGluZ09wdGlvbnMgKHNh
bWUgSURzKSByZXN1bHRzIGluIGEgVHlwZUVycm9yLiBwcm9taXNlX3JlamVjdHNfanM6IGJhZERl
dGFpbHMgbXVzdCBjYXVzZSBhY2NlcHRQcm9taXNlIHRvIHJlamVjdCB3aXRoIGV4cGVjdGVkRXJy
b3IgZnVuY3Rpb24gImZ1bmN0aW9uICgpIHsgdGhyb3cgZSB9IiB0aHJldyBvYmplY3QgIlNlY3Vy
aXR5RXJyb3I6IHNob3coKSBtdXN0IGJlIHRyaWdnZXJlZCBieSB1c2VyIGFjdGl2YXRpb24uIiAo
IlNlY3VyaXR5RXJyb3IiKSBleHBlY3RlZCBpbnN0YW5jZSBvZiBmdW5jdGlvbiAiZnVuY3Rpb24g
VHlwZUVycm9yKCkgewotICAgIFtuYXRpdmUgY29kZV0KLX0iICgiVHlwZUVycm9yIikKLUZBSUwg
VXBkYXRpbmcgd2l0aCBhIHNoaXBwaW5nT3B0aW9uIHdpdGggYW4gaW52YWxpZCBjdXJyZW5jeSB2
YWx1ZSByZXN1bHRzIGluIGEgUmFuZ0Vycm9yLiBwcm9taXNlX3JlamVjdHNfanM6IGJhZERldGFp
bHMgbXVzdCBjYXVzZSBhY2NlcHRQcm9taXNlIHRvIHJlamVjdCB3aXRoIGV4cGVjdGVkRXJyb3Ig
ZnVuY3Rpb24gImZ1bmN0aW9uICgpIHsgdGhyb3cgZSB9IiB0aHJldyBvYmplY3QgIlNlY3VyaXR5
RXJyb3I6IHNob3coKSBtdXN0IGJlIHRyaWdnZXJlZCBieSB1c2VyIGFjdGl2YXRpb24uIiAoIlNl
Y3VyaXR5RXJyb3IiKSBleHBlY3RlZCBpbnN0YW5jZSBvZiBmdW5jdGlvbiAiZnVuY3Rpb24gUmFu
Z2VFcnJvcigpIHsKLSAgICBbbmF0aXZlIGNvZGVdCi19IiAoIlJhbmdlRXJyb3IiKQotRkFJTCBN
dXN0IHRocm93IGEgUmFuZ2VFcnJvciB3aGVuIGEgbW9kaWZpZXIncyB0b3RhbCBpdGVtIGhhcyBh
biBpbnZhbGlkIGN1cnJlbmN5LiBwcm9taXNlX3JlamVjdHNfanM6IGJhZERldGFpbHMgbXVzdCBj
YXVzZSBhY2NlcHRQcm9taXNlIHRvIHJlamVjdCB3aXRoIGV4cGVjdGVkRXJyb3IgZnVuY3Rpb24g
ImZ1bmN0aW9uICgpIHsgdGhyb3cgZSB9IiB0aHJldyBvYmplY3QgIlNlY3VyaXR5RXJyb3I6IHNo
b3coKSBtdXN0IGJlIHRyaWdnZXJlZCBieSB1c2VyIGFjdGl2YXRpb24uIiAoIlNlY3VyaXR5RXJy
b3IiKSBleHBlY3RlZCBpbnN0YW5jZSBvZiBmdW5jdGlvbiAiZnVuY3Rpb24gUmFuZ2VFcnJvcigp
IHsKLSAgICBbbmF0aXZlIGNvZGVdCi19IiAoIlJhbmdlRXJyb3IiKQotRkFJTCBNdXN0IHRocm93
IGEgUmFuZ2VFcnJvciB3aGVuIGEgbW9kaWZpZXIgZGlzcGxheSBpdGVtIGhhcyBhbiBpbnZhbGlk
IGN1cnJlbmN5LiBwcm9taXNlX3JlamVjdHNfanM6IGJhZERldGFpbHMgbXVzdCBjYXVzZSBhY2Nl
cHRQcm9taXNlIHRvIHJlamVjdCB3aXRoIGV4cGVjdGVkRXJyb3IgZnVuY3Rpb24gImZ1bmN0aW9u
ICgpIHsgdGhyb3cgZSB9IiB0aHJldyBvYmplY3QgIlNlY3VyaXR5RXJyb3I6IHNob3coKSBtdXN0
IGJlIHRyaWdnZXJlZCBieSB1c2VyIGFjdGl2YXRpb24uIiAoIlNlY3VyaXR5RXJyb3IiKSBleHBl
Y3RlZCBpbnN0YW5jZSBvZiBmdW5jdGlvbiAiZnVuY3Rpb24gUmFuZ2VFcnJvcigpIHsKLSAgICBb
bmF0aXZlIGNvZGVdCi19IiAoIlJhbmdlRXJyb3IiKQotRkFJTCBNdXN0IHRocm93IGFzIE1vZGlm
aWVyIGhhcyBhIHJlY3Vyc2l2ZSBkaWN0aW9uYXJ5LiBwcm9taXNlX3JlamVjdHNfanM6IGJhZERl
dGFpbHMgbXVzdCBjYXVzZSBhY2NlcHRQcm9taXNlIHRvIHJlamVjdCB3aXRoIGV4cGVjdGVkRXJy
b3IgZnVuY3Rpb24gImZ1bmN0aW9uICgpIHsgdGhyb3cgZSB9IiB0aHJldyBvYmplY3QgIlNlY3Vy
aXR5RXJyb3I6IHNob3coKSBtdXN0IGJlIHRyaWdnZXJlZCBieSB1c2VyIGFjdGl2YXRpb24uIiAo
IlNlY3VyaXR5RXJyb3IiKSBleHBlY3RlZCBpbnN0YW5jZSBvZiBmdW5jdGlvbiAiZnVuY3Rpb24g
VHlwZUVycm9yKCkgewotICAgIFtuYXRpdmUgY29kZV0KLX0iICgiVHlwZUVycm9yIikKK1BBU1Mg
UmVqZWN0aW9uIG9mIGRldGFpbHNQcm9taXNlIG11c3QgYWJvcnQgdGhlIHVwZGF0ZSB3aXRoIGFu
ICdBYm9ydEVycm9yJyBET01FeGNlcHRpb24uCitQQVNTIFRvdGFsIGluIHRoZSB1cGRhdGUgaXMg
YSBzdHJpbmcsIHNvIGNvbnZlcnRpbmcgdG8gSURMIG11c3QgYWJvcnQgdGhlIHVwZGF0ZSB3aXRo
IGEgVHlwZUVycm9yLgorUEFTUyBUb3RhbCBpcyByZWN1cnNpdmUsIHNvIGNvbnZlcnRpbmcgdG8g
SURMIG11c3QgYWJvcnQgdGhlIHVwZGF0ZSB3aXRoIGEgVHlwZUVycm9yLgorUEFTUyBVcGRhdGlu
ZyB3aXRoIGEgbmVnYXRpdmUgdG90YWwgcmVzdWx0cyBpbiBhIFR5cGVFcnJvci4KK1BBU1MgVXBk
YXRpbmcgd2l0aCBhIGRpc3BsYXlJdGVtIHdpdGggYW4gaW52YWxpZCBjdXJyZW5jeSByZXN1bHRz
IGluIFJhbmdlRXJyb3IuCitQQVNTIFVwZGF0aW5nIHdpdGggZHVwbGljYXRlIHNoaXBwaW5nT3B0
aW9ucyAoc2FtZSBJRHMpIHJlc3VsdHMgaW4gYSBUeXBlRXJyb3IuCitQQVNTIFVwZGF0aW5nIHdp
dGggYSBzaGlwcGluZ09wdGlvbiB3aXRoIGFuIGludmFsaWQgY3VycmVuY3kgdmFsdWUgcmVzdWx0
cyBpbiBhIFJhbmdFcnJvci4KK1BBU1MgTXVzdCB0aHJvdyBhIFJhbmdlRXJyb3Igd2hlbiBhIG1v
ZGlmaWVyJ3MgdG90YWwgaXRlbSBoYXMgYW4gaW52YWxpZCBjdXJyZW5jeS4KK1BBU1MgTXVzdCB0
aHJvdyBhIFJhbmdlRXJyb3Igd2hlbiBhIG1vZGlmaWVyIGRpc3BsYXkgaXRlbSBoYXMgYW4gaW52
YWxpZCBjdXJyZW5jeS4KK1BBU1MgTXVzdCB0aHJvdyBhcyBNb2RpZmllciBoYXMgYSByZWN1cnNp
dmUgZGljdGlvbmFyeS4KIAo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>436375</attachid>
            <date>2021-08-25 00:26:49 -0700</date>
            <delta_ts>2021-08-25 17:22:05 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-217365-20210825172647.patch</filename>
            <type>text/plain</type>
            <size>48673</size>
            <attacher name="Marcos Caceres">marcos</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjgxNTM5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYjFjNGQxMDdjMjJiMzU2
OTU3OGQ3NTZiMzRmOTI5MzAxMjFmNWY2Yy4uYjRjZGE1MzdhNTE0MDViZDJkYzhkNGVmZWYxZjFm
MWY1YjAwNWUyYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE1IEBACisyMDIxLTA4LTI1ICBNYXJj
b3MgQ2FjZXJlcyAgPG1hcmNvc0BtYXJjb3NjLmNvbT4KKworICAgICAgICBbUGF5bWVudCBSZXF1
ZXN0XSBDYWxsaW5nIFBheW1lbnRSZXF1ZXN0J3Mgc2hvdygpIHNob3VsZCBjb25zdW1lIHVzZXIg
YWN0aXZhdGlvbgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9MjE3MzY1CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAg
ICAgUmVseWluZyBvbiBleGlzdGluZyB0ZXN0cyArIGluY29taW5nIHdlYiBwbGF0Zm9ybSB0ZXN0
cy4KKworICAgICAgICAqIE1vZHVsZXMvcGF5bWVudHJlcXVlc3QvUGF5bWVudFJlcXVlc3QuY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6UGF5bWVudFJlcXVlc3Q6OnNob3cpOgorCiAyMDIxLTA4LTI0
ICBKZWFuLVl2ZXMgQXZlbmFyZCAgPGp5YUBhcHBsZS5jb20+CiAKICAgICAgICAgTWVkaWFTZXNz
aW9uIGFydHdvcmsgVVJMIGlzIHNob3dpbmcgaW4gbG9ncy4KZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvcGF5bWVudHJlcXVlc3QvUGF5bWVudFJlcXVlc3QuY3BwIGIvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy9wYXltZW50cmVxdWVzdC9QYXltZW50UmVxdWVzdC5jcHAKaW5kZXgg
YTQxZmEwODY0MjRiNTY4MTI2NjQ1NDQzNDc5YWVhZjljNjk3M2Y0Zi4uZjlkN2UzNmFkYWFhMjg4
ZjFlYzJmNjEwY2YwYzM2NjA3NjFkMTVjNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy9wYXltZW50cmVxdWVzdC9QYXltZW50UmVxdWVzdC5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy9wYXltZW50cmVxdWVzdC9QYXltZW50UmVxdWVzdC5jcHAKQEAgLTM2Myw3ICsz
NjMsNyBAQCBQYXltZW50UmVxdWVzdDo6flBheW1lbnRSZXF1ZXN0KCkKICAgICBBU1NFUlQoIW1f
YWN0aXZlUGF5bWVudEhhbmRsZXIpOwogfQogCi0vLyBodHRwczovL3d3dy53My5vcmcvVFIvcGF5
bWVudC1yZXF1ZXN0LyNzaG93KCktbWV0aG9kCisvLyBodHRwczovL3d3dy53My5vcmcvVFIvcGF5
bWVudC1yZXF1ZXN0LyNzaG93LW1ldGhvZAogdm9pZCBQYXltZW50UmVxdWVzdDo6c2hvdyhEb2N1
bWVudCYgZG9jdW1lbnQsIFJlZlB0cjxET01Qcm9taXNlPiYmIGRldGFpbHNQcm9taXNlLCBTaG93
UHJvbWlzZSYmIHByb21pc2UpCiB7CiAgICAgaWYgKCFkb2N1bWVudC5mcmFtZSgpKSB7CkBAIC0z
NzEsNyArMzcxLDggQEAgdm9pZCBQYXltZW50UmVxdWVzdDo6c2hvdyhEb2N1bWVudCYgZG9jdW1l
bnQsIFJlZlB0cjxET01Qcm9taXNlPiYmIGRldGFpbHNQcm9taXMKICAgICAgICAgcmV0dXJuOwog
ICAgIH0KIAotICAgIGlmICghVXNlckdlc3R1cmVJbmRpY2F0b3I6OnByb2Nlc3NpbmdVc2VyR2Vz
dHVyZSgpKSB7CisgICAgYXV0byogd2luZG93ID0gZG9jdW1lbnQuZnJhbWUoKS0+d2luZG93KCk7
CisgICAgaWYgKHdpbmRvdyAmJiAhd2luZG93LT5jb25zdW1lVHJhbnNpZW50QWN0aXZhdGlvbigp
KSB7CiAgICAgICAgIHByb21pc2UucmVqZWN0KEV4Y2VwdGlvbiB7IFNlY3VyaXR5RXJyb3IsICJz
aG93KCkgbXVzdCBiZSB0cmlnZ2VyZWQgYnkgdXNlciBhY3RpdmF0aW9uLiIgfSk7CiAgICAgICAg
IHJldHVybjsKICAgICB9CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cgYi9MYXlv
dXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggZmQ4NTJkNjFmZWZkOThlODFhODllMDNlMjUzZDhkYWFi
OWYxMmQxMS4uYmZhZjI0MGRkYjQ3ZTRlNzI5NWQ0M2Q3ODU4MmI4ODZiNGVkOWVmYiAxMDA2NDQK
LS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwpA
QCAtMSwzICsxLDEzIEBACisyMDIxLTA4LTI1ICBNYXJjb3MgQ2FjZXJlcyAgPG1hcmNvc0BtYXJj
b3NjLmNvbT4KKworICAgICAgICBbUGF5bWVudCBSZXF1ZXN0XSBDYWxsaW5nIFBheW1lbnRSZXF1
ZXN0J3Mgc2hvdygpIHNob3VsZCBjb25zdW1lIHVzZXIgYWN0aXZhdGlvbgorICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjE3MzY1CisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBodHRwL3Rlc3RzL3BheW1lbnRy
ZXF1ZXN0L3BheW1lbnQtaXMtc2hvd2luZy5odHRwcy5odG1sOgorICAgICAgICAqIGh0dHAvdGVz
dHMvcGF5bWVudHJlcXVlc3QvcGF5bWVudC1yZXF1ZXN0LXNob3ctbWV0aG9kLmh0dHBzLmh0bWw6
CisKIDIwMjEtMDgtMjQgIEVyaWMgSHV0Y2hpc29uICA8ZWh1dGNoaXNvbkBhcHBsZS5jb20+CiAK
ICAgICAgICAgW0JpZ1N1cisgd2sxIFJlbGVhc2VdIG1lZGlhL3ZpZGVvLXBvc3Rlci1iYWNrZ3Jv
dW5kLmh0bWwgaXMgZmxha2lseSBmYWlsaW5nLgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9DaGFuZ2VMb2cK
aW5kZXggNTk1YzVmNmQ4ZTI3MDI2M2M5NGNhMzg5ODYxYjE2Mzk3ZWZkZDc3Mi4uMjBhMmIyZmVk
OTJhYTY5YTdkNDFiYTNmOTgzOTcxZjc5OGJkZmUxYSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMTggQEAKKzIwMjEtMDgtMjUgIE1hcmNvcyBDYWNlcmVzICA8bWFy
Y29zQG1hcmNvc2MuY29tPgorCisgICAgICAgIFtQYXltZW50IFJlcXVlc3RdIENhbGxpbmcgUGF5
bWVudFJlcXVlc3QncyBzaG93KCkgc2hvdWxkIGNvbnN1bWUgdXNlciBhY3RpdmF0aW9uCisgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMTczNjUKKworICAg
ICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIHdlYi1wbGF0Zm9y
bS10ZXN0cy9wYXltZW50LXJlcXVlc3QvcGF5bWVudC1pcy1zaG93aW5nLmh0dHBzLmh0bWw6Cisg
ICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL3BheW1lbnQtcmVxdWVzdC9wYXltZW50LXJlcXVl
c3QtY2FubWFrZXBheW1lbnQtbWV0aG9kLmh0dHBzLWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiB3
ZWItcGxhdGZvcm0tdGVzdHMvcGF5bWVudC1yZXF1ZXN0L3BheW1lbnQtcmVxdWVzdC1oYXNlbnJv
bGxlZGluc3RydW1lbnQtbWV0aG9kLnRlbnRhdGl2ZS5odHRwcy1leHBlY3RlZC50eHQ6CisgICAg
ICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL3BheW1lbnQtcmVxdWVzdC9wYXltZW50LXJlcXVlc3Qt
c2hvdy1tZXRob2QuaHR0cHMtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiB3ZWItcGxh
dGZvcm0tdGVzdHMvcGF5bWVudC1yZXF1ZXN0L3BheW1lbnQtcmVxdWVzdC1zaG93LW1ldGhvZC5o
dHRwcy5odG1sOgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy9wYXltZW50LXJlcXVlc3Qv
cmVqZWN0c19pZl9ub3RfYWN0aXZlLmh0dHBzLmh0bWw6CisgICAgICAgICogd2ViLXBsYXRmb3Jt
LXRlc3RzL3BheW1lbnQtcmVxdWVzdC9zaG93LW1ldGhvZC1vcHRpb25hbC1wcm9taXNlLXJlamVj
dHMuaHR0cHMtZXhwZWN0ZWQudHh0OgorCiAyMDIxLTA4LTI0ICBDaHJpcyBEdW1leiAgPGNkdW1l
ekBhcHBsZS5jb20+CiAKICAgICAgICAgR2VvbG9jYXRpb24gQVBJIHNob3VsZCBjYWxsYmFjayB3
aXRoIGVycm9yIGlmIGRvYyBpcyBub3QgZnVsbHkgYWN0aXZlCmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9odHRwL3Rlc3RzL3BheW1lbnRyZXF1ZXN0L3BheW1lbnQtaXMtc2hvd2luZy5odHRwcy5o
dG1sIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9wYXltZW50cmVxdWVzdC9wYXltZW50LWlzLXNo
b3dpbmcuaHR0cHMuaHRtbAppbmRleCAyZTlhMjRjODAwMmQzODhhOGMzYzhmZjlmMWFkODZiZGM4
MDljNjkwLi5hODRiOGEyNGRiN2YzZGE2YzIyY2FlMGYyNzI5MTZjYzhmYjBmOTNlIDEwMDY0NAot
LS0gYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3BheW1lbnRyZXF1ZXN0L3BheW1lbnQtaXMtc2hv
d2luZy5odHRwcy5odG1sCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcGF5bWVudHJlcXVl
c3QvcGF5bWVudC1pcy1zaG93aW5nLmh0dHBzLmh0bWwKQEAgLTcxLDkgKzcxLDE0IEBACiAgICAg
ICAvLyBTZXRzIHRoZSAicGF5bWVudC1yZWxldmFudCBicm93c2luZyBjb250ZXh0J3MgcGF5bWVu
dCByZXF1ZXN0IGlzCiAgICAgICAvLyBzaG93aW5nIGJvb2xlYW4iIHRvIHRydWUgYW5kIHRoZW4g
dHJ5IHRvIHNob3cgYSBzZWNvbmQgcGF5bWVudCBzaGVldCBpbgogICAgICAgLy8gdGhlIHNhbWUg
d2luZG93LiBUaGUgc2Vjb25kIHNob3coKSBzaG91bGQgcmVqZWN0LgotICAgICAgY29uc3QgW3No
b3dQcm9taXNlMSwgc2hvd1Byb21pc2UyXSA9IGF3YWl0IGFjdGl2YXRlVGhlbigKLSAgICAgICAg
YXN5bmMgKCkgPT4gewotICAgICAgICAgIHJldHVybiBbcmVxdWVzdDEuc2hvdygpLCByZXF1ZXN0
Mi5zaG93KCldOworICAgICAgY29uc3QgW3Nob3dQcm9taXNlMV0gPSBhd2FpdCBhY3RpdmF0ZVRo
ZW4oCisgICAgICAgICgpID0+IHsKKyAgICAgICAgICByZXR1cm4gW3JlcXVlc3QxLnNob3coKV0K
KyAgICAgICAgfQorICAgICAgKTsKKyAgICAgIGNvbnN0IFtzaG93UHJvbWlzZTJdID0gYXdhaXQg
YWN0aXZhdGVUaGVuKAorICAgICAgICAoKSA9PiB7CisgICAgICAgICAgcmV0dXJuIFtyZXF1ZXN0
Mi5zaG93KCldCiAgICAgICAgIH0KICAgICAgICk7CiAgICAgICBhd2FpdCBwcm9taXNlX3JlamVj
dHMoCkBAIC0xMTcsMTIgKzEyMiwxOCBAQAogICAgICAgY29uc3QgaWZyYW1lUmVxdWVzdCA9IG5l
dyBpZnJhbWVXaW5kb3cuUGF5bWVudFJlcXVlc3QobWV0aG9kcywgZGV0YWlscyk7CiAgICAgICBj
b25zdCB3aW5kb3dSZXF1ZXN0ID0gbmV3IHdpbmRvdy5QYXltZW50UmVxdWVzdChtZXRob2RzLCBk
ZXRhaWxzKTsKIAotICAgICAgLy8gTGV0J3MgZ2V0IHNvbWUgYmxlc3NlZCBzaG93UHJvbWlzZXMK
LSAgICAgIGNvbnN0IFtpZnJhbWVTaG93UHJvbWlzZSwgd2luZG93U2hvd1Byb21pc2VdID0gYXdh
aXQgYWN0aXZhdGVUaGVuKAotICAgICAgICBhc3luYyAoKSA9PiB7Ci0gICAgICAgICAgLy8gaWZy
YW1lIHNldHMgImlzIHNob3dpbmcgYm9vbGVhbiIsIGlnbm9yZSB0aGUgcmV0dXJuZWQgcHJvbWlz
ZS4KKyAgICAgIC8vIExldCdzIGdldCBibGVzc2VkIHByb21pc2UgZm9yIHRoZSBpZnJhbWUKKyAg
ICAgIGNvbnN0IFtpZnJhbWVTaG93UHJvbWlzZV0gPSBhd2FpdCBhY3RpdmF0ZVRoZW4oCisgICAg
ICAgICgpID0+IHsKKyAgICAgICAgICAvLyBpZnJhbWUgc2V0cyAiaXMgc2hvd2luZyBib29sZWFu
IgorICAgICAgICAgIHJldHVybiBbaWZyYW1lUmVxdWVzdC5zaG93KCldOworICAgICAgICB9Cisg
ICAgICApOworCisgICAgICBjb25zdCBbd2luZG93U2hvd1Byb21pc2VdID0gYXdhaXQgYWN0aXZh
dGVUaGVuKAorICAgICAgICAoKSA9PiB7CiAgICAgICAgICAgLy8gVGhlIHRvcCBsZXZlbCB3aW5k
b3cgbm93IHRyaWVzIHRvIHNob3coKSB0aGUgcGF5bWVudCByZXF1ZXN0LgotICAgICAgICAgIHJl
dHVybiBbaWZyYW1lUmVxdWVzdC5zaG93KCksIHdpbmRvd1JlcXVlc3Quc2hvdygpXTsKKyAgICAg
ICAgICByZXR1cm4gW3dpbmRvd1JlcXVlc3Quc2hvdygpXTsKICAgICAgICAgfQogICAgICAgKTsK
IApAQCAtMTMwLDcgKzE0MSw3IEBACiAgICAgICAgIHQsCiAgICAgICAgICdBYm9ydEVycm9yJywK
ICAgICAgICAgd2luZG93U2hvd1Byb21pc2UsCi0gICAgICAgICdpZnJhbWUgaXMgYWxyZWFkeSBz
aG93aW5nIGEgcGF5bWVudCByZXF1ZXN0LicsCisgICAgICAgICdpZnJhbWUgaXMgYWxyZWFkeSBz
aG93aW5nIGEgcGF5bWVudCByZXF1ZXN0JywKICAgICAgICk7CiAKICAgICAgIC8vIENsZWFudXAK
QEAgLTE1NCw5ICsxNjUsMTUgQEAKICAgICAgIC8vIFdlIGZpcnN0IHNob3cgYSBwYXltZW50IHJl
cXVlc3QgdmlhIHRoZSB0aGUgdG9wIGxldmVsIGJyb3dzaW5nIGNvbnRleHQsCiAgICAgICAvLyB3
aW5kb3dSZXF1ZXN0LnNob3coKSBzZXRzICJpcyBzaG93aW5nIGJvb2xlYW4iIHRvIHRydWUuIFRo
ZW4gd2UgdHJ5IHRvCiAgICAgICAvLyBzaG93IGEgcGF5bWVudCByZXF1ZXN0IGluIHRoZSBpZnJh
bWUsIHdoaWNoIHNob3VsZCByZWplY3QuCi0gICAgICBjb25zdCBbd2luZG93U2hvd1Byb21pc2Us
IGlmcmFtZVNob3dQcm9taXNlXSA9IGF3YWl0IGFjdGl2YXRlVGhlbigKLSAgICAgICAgYXN5bmMg
KCkgPT4gewotICAgICAgICAgIHJldHVybiBbd2luZG93UmVxdWVzdC5zaG93KCksIGlmcmFtZVJl
cXVlc3Quc2hvdygpXTsKKyAgICAgIGNvbnN0IFt3aW5kb3dTaG93UHJvbWlzZV0gPSBhd2FpdCBh
Y3RpdmF0ZVRoZW4oCisgICAgICAgICgpID0+IHsKKyAgICAgICAgICByZXR1cm4gW3dpbmRvd1Jl
cXVlc3Quc2hvdygpXTsKKyAgICAgICAgfQorICAgICAgKTsKKworICAgICAgY29uc3QgW2lmcmFt
ZVNob3dQcm9taXNlXSA9IGF3YWl0IGFjdGl2YXRlVGhlbigKKyAgICAgICAgKCkgPT4geworICAg
ICAgICAgIHJldHVybiBbaWZyYW1lUmVxdWVzdC5zaG93KCldOwogICAgICAgICB9CiAgICAgICAp
OwogCkBAIC0xODgsMTUgKzIwNSwxNSBAQAogICAgICAgLy8gR2V0IHRoZSBzaG93UHJvbWlzZSBm
b3IgZWFjaCBicm93c2luZyBjb250ZXh0LiBEb2luZyB0aGlzIGluIGEgc2VwYXJhdGUKICAgICAg
IC8vIHRlc3RfZHJpdmVyLmJsZXNzKCkgaXMgaW1wb3J0YW50IGJlY2F1c2UgdGhlIHVzZXIgZ2Vz
dHVyZSBicmluZ3MKICAgICAgIC8vIHx3aW5kb3d8IHRvIHRoZSBmb3JlZ3JvdW5kLCBzbyB0aGF0
IHRoZSBwYXltZW50IHNoZWV0IGNhbiBzaG93LgotICAgICAgY29uc3QgWwotICAgICAgICB3aW5k
b3dTaG93UHJvbWlzZSwKLSAgICAgICAgaWZyYW1lU2hvd1Byb21pc2UsCi0gICAgICBdID0gYXdh
aXQgYWN0aXZhdGVUaGVuKAorICAgICAgY29uc3QgW3dpbmRvd1Nob3dQcm9taXNlXSA9IGF3YWl0
IGFjdGl2YXRlVGhlbigKKyAgICAgICAgKCkgPT4geworICAgICAgICAgIHJldHVybiBbd2luZG93
UmVxdWVzdC5zaG93KCldOworICAgICAgICB9CisgICAgICApOworCisgICAgICBjb25zdCBbIGlm
cmFtZVNob3dQcm9taXNlIF0gPSBhd2FpdCBhY3RpdmF0ZVRoZW4oCiAgICAgICAgIGFzeW5jICgp
ID0+IHsKLSAgICAgICAgICByZXR1cm4gWwotICAgICAgICAgICAgd2luZG93UmVxdWVzdC5zaG93
KCksCi0gICAgICAgICAgICBpZnJhbWVSZXF1ZXN0LnNob3coKSwKLSAgICAgICAgICBdOworICAg
ICAgICAgIHJldHVybiBbaWZyYW1lUmVxdWVzdC5zaG93KCldOwogICAgICAgICB9CiAgICAgICAp
OwogCkBAIC0yMjcsMTUgKzI0NCwxNCBAQAogICAgICAgLy8gR2V0IHRoZSBzaG93UHJvbWlzZSBm
b3IgZWFjaCBicm93c2luZyBjb250ZXh0LiBEb2luZyB0aGlzIGluIGEgc2VwYXJhdGUKICAgICAg
IC8vIHRlc3RfZHJpdmVyLmJsZXNzKCkgaXMgaW1wb3J0YW50IGJlY2F1c2UgdGhlIHVzZXIgZ2Vz
dHVyZSBicmluZ3MKICAgICAgIC8vIHx3aW5kb3d8IHRvIHRoZSBmb3JlZ3JvdW5kLCBzbyB0aGF0
IHRoZSBwYXltZW50IHNoZWV0IGNhbiBzaG93LgotICAgICAgY29uc3QgWwotICAgICAgICBpZnJh
bWVTaG93UHJvbWlzZSwKLSAgICAgICAgd2luZG93U2hvd1Byb21pc2UsCi0gICAgICBdID0gYXdh
aXQgYWN0aXZhdGVUaGVuKAotICAgICAgICBhc3luYyAoKSA9PiB7Ci0gICAgICAgICAgcmV0dXJu
IFsKLSAgICAgICAgICAgIGlmcmFtZVJlcXVlc3Quc2hvdygpLAotICAgICAgICAgICAgd2luZG93
UmVxdWVzdC5zaG93KCksCi0gICAgICAgICAgXTsKKyAgICAgIGNvbnN0IFtpZnJhbWVTaG93UHJv
bWlzZV0gPSBhd2FpdCBhY3RpdmF0ZVRoZW4oCisgICAgICAgICgpID0+IHsKKyAgICAgICAgICBy
ZXR1cm4gW2lmcmFtZVJlcXVlc3Quc2hvdygpXTsKKyAgICAgICAgfQorICAgICAgKTsKKyAgICAg
IGNvbnN0IFt3aW5kb3dTaG93UHJvbWlzZV0gPSBhd2FpdCBhY3RpdmF0ZVRoZW4oCisgICAgICAg
ICgpID0+IHsKKyAgICAgICAgICByZXR1cm4gW3dpbmRvd1JlcXVlc3Quc2hvdygpXTsKICAgICAg
ICAgfQogICAgICAgKTsKIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9wYXlt
ZW50cmVxdWVzdC9wYXltZW50LXJlcXVlc3Qtc2hvdy1tZXRob2QuaHR0cHMuaHRtbCBiL0xheW91
dFRlc3RzL2h0dHAvdGVzdHMvcGF5bWVudHJlcXVlc3QvcGF5bWVudC1yZXF1ZXN0LXNob3ctbWV0
aG9kLmh0dHBzLmh0bWwKaW5kZXggNjRlNTJjNjlmZTE3ZDNmZjE3ZDZlOWRhYjgzMmQ3MTg1MTkw
OWUxMy4uNDMyYTA5ZmU0YzY4Mzg0MWJkOGFhNWFhMzkxOTAwNTQ0NDIwNmNhNSAxMDA2NDQKLS0t
IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9wYXltZW50cmVxdWVzdC9wYXltZW50LXJlcXVlc3Qt
c2hvdy1tZXRob2QuaHR0cHMuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3BheW1l
bnRyZXF1ZXN0L3BheW1lbnQtcmVxdWVzdC1zaG93LW1ldGhvZC5odHRwcy5odG1sCkBAIC00Niw3
ICs0Niw3IEBAIHRlc3QoKCkgPT4gewogdXNlcl9hY3RpdmF0aW9uX3Rlc3QoYXN5bmMgdCA9PiB7
CiAgIGNvbnN0IHJlcXVlc3QgPSBuZXcgUGF5bWVudFJlcXVlc3QoZGVmYXVsdE1ldGhvZHMsIGRl
ZmF1bHREZXRhaWxzKTsKICAgY29uc3QgYWNjZXB0UHJvbWlzZSA9IHJlcXVlc3Quc2hvdygpOyAv
LyBTZXRzIHN0YXRlIHRvICJpbnRlcmFjdGl2ZSIKLSAgYXdhaXQgcHJvbWlzZV9yZWplY3RzKHQs
ICJJbnZhbGlkU3RhdGVFcnJvciIsIHJlcXVlc3Quc2hvdygpKTsKKyAgYXdhaXQgcHJvbWlzZV9y
ZWplY3RzKHQsICJTZWN1cml0eUVycm9yIiwgcmVxdWVzdC5zaG93KCkpOwogICBhd2FpdCByZXF1
ZXN0LmFib3J0KCk7CiAgIGF3YWl0IHByb21pc2VfcmVqZWN0cyh0LCAiQWJvcnRFcnJvciIsIGFj
Y2VwdFByb21pc2UpOwogfSwgYFRocm93cyBpZiB0aGUgcHJvbWlzZSBbW3N0YXRlXV0gaXMgbm90
ICJjcmVhdGVkImApOwpAQCAtNTYsNyArNTYsNyBAQCB1c2VyX2FjdGl2YXRpb25fdGVzdChhc3lu
YyB0ID0+IHsKICAgY29uc3QgcmVxdWVzdDIgPSBuZXcgUGF5bWVudFJlcXVlc3QoZGVmYXVsdE1l
dGhvZHMsIGRlZmF1bHREZXRhaWxzKTsKICAgY29uc3QgYWNjZXB0UHJvbWlzZTEgPSByZXF1ZXN0
MS5zaG93KCk7CiAgIGNvbnN0IGFjY2VwdFByb21pc2UyID0gcmVxdWVzdDIuc2hvdygpOwotICBh
d2FpdCBwcm9taXNlX3JlamVjdHModCwgIkFib3J0RXJyb3IiLCBhY2NlcHRQcm9taXNlMik7Cisg
IGF3YWl0IHByb21pc2VfcmVqZWN0cyh0LCAiU2VjdXJpdHlFcnJvciIsIGFjY2VwdFByb21pc2Uy
KTsKICAgYXdhaXQgcmVxdWVzdDEuYWJvcnQoKTsKICAgYXdhaXQgcHJvbWlzZV9yZWplY3RzKHQs
ICJBYm9ydEVycm9yIiwgYWNjZXB0UHJvbWlzZTEpOwogfSwgYElmIHRoZSB1c2VyIGFnZW50J3Mg
InBheW1lbnQgcmVxdWVzdCBpcyBzaG93aW5nIiBib29sZWFuIGlzIHRydWUsIHRoZW4gcmV0dXJu
IGEgcHJvbWlzZSByZWplY3RlZCB3aXRoIGFuICJBYm9ydEVycm9yIiBET01FeGNlcHRpb24uYCk7
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L3BheW1lbnQtcmVxdWVzdC9wYXltZW50LWlzLXNob3dpbmcuaHR0cHMuaHRtbCBiL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvcGF5bWVudC1yZXF1ZXN0L3BheW1l
bnQtaXMtc2hvd2luZy5odHRwcy5odG1sCmluZGV4IGZlZDZlYWY2ZDlmYWRhMTE0NDZiMzJjYWFi
YTA3YjVkZTJkODhiMGUuLjM0YjlhZTgyYjY1MzBlMzcyMzA0OGUzODM5MzY4NzA5MWI0ZmJiZDcg
MTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
cGF5bWVudC1yZXF1ZXN0L3BheW1lbnQtaXMtc2hvd2luZy5odHRwcy5odG1sCisrKyBiL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvcGF5bWVudC1yZXF1ZXN0L3Bh
eW1lbnQtaXMtc2hvd2luZy5odHRwcy5odG1sCkBAIC00LDcgKzQsNyBAQAogICByZWw9ImhlbHAi
CiAgIGhyZWY9Imh0dHBzOi8vdzNjLmdpdGh1Yi5pby9icm93c2VyLXBheW1lbnQtYXBpLyNkZm4t
cGF5bWVudC1yZXF1ZXN0LWlzLXNob3dpbmciCiAvPgotPG1ldGEgbmFtZT0idGltZW91dCIgY29u
dGVudD0ibG9uZyI+Cis8bWV0YSBuYW1lPSJ0aW1lb3V0IiBjb250ZW50PSJsb25nIiAvPgogPHNj
cmlwdCBzcmM9Ii9yZXNvdXJjZXMvdGVzdGhhcm5lc3MuanMiPjwvc2NyaXB0PgogPHNjcmlwdCBz
cmM9Ii9yZXNvdXJjZXMvdGVzdGhhcm5lc3NyZXBvcnQuanMiPjwvc2NyaXB0PgogPHNjcmlwdCBz
cmM9Ii9yZXNvdXJjZXMvdGVzdGRyaXZlci5qcyI+PC9zY3JpcHQ+CkBAIC0yMiw3ICsyMiw3IEBA
CiAgICAgICAgIHN1cHBvcnRlZE5ldHdvcmtzOiBbInZpc2EiXSwKICAgICAgIH0sCiAgICAgfTsK
LSAgICBjb25zdCBtZXRob2RzID0gW3tzdXBwb3J0ZWRNZXRob2RzOiAiYmFzaWMtY2FyZCJ9LCBh
cHBsZVBheU1ldGhvZF07CisgICAgY29uc3QgbWV0aG9kcyA9IFt7IHN1cHBvcnRlZE1ldGhvZHM6
ICJiYXNpYy1jYXJkIiB9LCBhcHBsZVBheU1ldGhvZF07CiAgICAgY29uc3QgZGV0YWlscyA9IHsK
ICAgICAgIHRvdGFsOiB7CiAgICAgICAgIGxhYmVsOiAiVG90YWwiLApAQCAtNDQsNDUgKzQ0LDQw
IEBACiAgICAgICBpZnJhbWUuYWxsb3cgPSAicGF5bWVudCI7CiAgICAgICBpZnJhbWUuc3JjID0g
c3JjOwogICAgICAgZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZChpZnJhbWUpOwotICAgICAgYXdh
aXQgbmV3IFByb21pc2UocmVzb2x2ZSA9PiB7Ci0gICAgICAgIGlmcmFtZS5hZGRFdmVudExpc3Rl
bmVyKCJsb2FkIiwgcmVzb2x2ZSwge29uY2U6IHRydWV9KTsKKyAgICAgIGF3YWl0IG5ldyBQcm9t
aXNlKChyZXNvbHZlKSA9PiB7CisgICAgICAgIGlmcmFtZS5hZGRFdmVudExpc3RlbmVyKCJsb2Fk
IiwgcmVzb2x2ZSwgeyBvbmNlOiB0cnVlIH0pOwogICAgICAgfSk7CiAgICAgICByZXR1cm4gaWZy
YW1lOwogICAgIH0KIAotICAgIC8qKgotICAgICAqIENyZWF0ZXMgYSBwb3B1cCB3aW5kb3cuIFRo
ZSBjYWxsZXIgbXVzdCBiZSB0cmlnZ2VyZWQgd2l0aCBhIHVzZXIgZ2VzdHVyZS4KLSAgICAgKgot
ICAgICAqIEBwYXJhbSB7U3RyaW5nfSBzcmMgT3B0aW9uYWwgcmVzb3VyY2UgVVJMIHRvIGxvYWQu
Ci0gICAgICogQHJldHVybnMge1Byb21pc2V9IFJlc29sdmVzIHdoZW4gdGhlIHNyYyBsb2Fkcy4K
LSAgICAgKi8KLSAgICBhc3luYyBmdW5jdGlvbiBsb2FkUG9wdXBJbnNpZGVVc2VyR2VzdHVyZShz
cmMgPSAiYmxhbmsuaHRtbCIpIHsKLSAgICAgIGNvbnN0IHBvcHVwV2luZG93ID0gd2luZG93Lm9w
ZW4oc3JjLCAiIiwgIndpZHRoPTQwMCxoZWlnaHQ9NDAwIik7Ci0gICAgICBhd2FpdCBuZXcgUHJv
bWlzZShyZXNvbHZlID0+IHsKLSAgICAgICAgcG9wdXBXaW5kb3cuYWRkRXZlbnRMaXN0ZW5lcigi
bG9hZCIsIHJlc29sdmUsIHtvbmNlOiB0cnVlfSk7Ci0gICAgICB9KTsKLSAgICAgIHBvcHVwV2lu
ZG93LmZvY3VzKCk7Ci0gICAgICByZXR1cm4gcG9wdXBXaW5kb3c7CisgICAgZnVuY3Rpb24gZ2V0
U2hvd1Byb21pc2VGcm9tQ29udGV4dChwYXltZW50UmVxdWVzdCwgY29udGV4dCA9IHRoaXMpIHsK
KyAgICAgIHJldHVybiB0ZXN0X2RyaXZlci5ibGVzcygKKyAgICAgICAgInBheW1lbnQgcmVxdWVz
dCBzaG93KCkiLAorICAgICAgICAoKSA9PiB7CisgICAgICAgICAgcmV0dXJuIFtwYXltZW50UmVx
dWVzdC5zaG93KCldOworICAgICAgICB9LAorICAgICAgICBjb250ZXh0CisgICAgICApOwogICAg
IH0KIAotICAgIHByb21pc2VfdGVzdChhc3luYyB0ID0+IHsKKyAgICBwcm9taXNlX3Rlc3QoYXN5
bmMgKHQpID0+IHsKICAgICAgIGNvbnN0IHJlcXVlc3QxID0gbmV3IFBheW1lbnRSZXF1ZXN0KG1l
dGhvZHMsIGRldGFpbHMpOwogICAgICAgY29uc3QgcmVxdWVzdDIgPSBuZXcgUGF5bWVudFJlcXVl
c3QobWV0aG9kcywgZGV0YWlscyk7CiAKICAgICAgIC8vIFNldHMgdGhlICJwYXltZW50LXJlbGV2
YW50IGJyb3dzaW5nIGNvbnRleHQncyBwYXltZW50IHJlcXVlc3QgaXMKICAgICAgIC8vIHNob3dp
bmcgYm9vbGVhbiIgdG8gdHJ1ZSBhbmQgdGhlbiB0cnkgdG8gc2hvdyBhIHNlY29uZCBwYXltZW50
IHNoZWV0IGluCiAgICAgICAvLyB0aGUgc2FtZSB3aW5kb3cuIFRoZSBzZWNvbmQgc2hvdygpIHNo
b3VsZCByZWplY3QuCi0gICAgICBjb25zdCBbc2hvd1Byb21pc2UxLCBzaG93UHJvbWlzZTJdID0g
YXdhaXQgdGVzdF9kcml2ZXIuYmxlc3MoCi0gICAgICAgICJ0ZXN0aW5nIG9uZSBwYXltZW50IHNo
ZWV0IHBlciB3aW5kb3ciLAotICAgICAgICAoKSA9PiB7Ci0gICAgICAgICAgcmV0dXJuIFtyZXF1
ZXN0MS5zaG93KCksIHJlcXVlc3QyLnNob3coKV07Ci0gICAgICAgIH0sCi0gICAgICApOworICAg
ICAgYXdhaXQgdGVzdF9kcml2ZXIuYmxlc3MoInBheW1lbnQgcmVxdWVzdCBzaG93KCkiKTsKKyAg
ICAgIGNvbnN0IHNob3dQcm9taXNlMSA9IHJlcXVlc3QxLnNob3coKTsKKworICAgICAgYXdhaXQg
dGVzdF9kcml2ZXIuYmxlc3MoInBheW1lbnQgcmVxdWVzdCBzaG93KCkiKTsKKyAgICAgIGNvbnN0
IHNob3dQcm9taXNlMiA9IHJlcXVlc3QyLnNob3coKTsKKwogICAgICAgYXdhaXQgcHJvbWlzZV9y
ZWplY3RzX2RvbSgKICAgICAgICAgdCwKICAgICAgICAgIkFib3J0RXJyb3IiLAogICAgICAgICBz
aG93UHJvbWlzZTIsCi0gICAgICAgICJBdHRlbXB0aW5nIHRvIHNob3cgYSBzZWNvbmQgcGF5bWVu
dCByZXF1ZXN0IG11c3QgcmVqZWN0LiIsCisgICAgICAgICJBdHRlbXB0aW5nIHRvIHNob3cgYSBz
ZWNvbmQgcGF5bWVudCByZXF1ZXN0IG11c3QgcmVqZWN0LiIKICAgICAgICk7CiAKICAgICAgIGF3
YWl0IHJlcXVlc3QxLmFib3J0KCk7CkBAIC05MCw3ICs4NSw3IEBACiAgICAgICAgIHQsCiAgICAg
ICAgICJBYm9ydEVycm9yIiwKICAgICAgICAgc2hvd1Byb21pc2UxLAotICAgICAgICAicmVxdWVz
dDEgd2FzIGFib3J0ZWQgdmlhIC5hYm9ydCgpIiwKKyAgICAgICAgInJlcXVlc3QxIHdhcyBhYm9y
dGVkIHZpYSAuYWJvcnQoKSIKICAgICAgICk7CiAKICAgICAgIC8vIEZpbmFsbHksIHJlcXVlc3Qy
IHNob3VsZCBoYXZlIGJlZW4gImNsb3NlZCIsIHNvIHRyeWluZyB0byBzaG93CkBAIC0xMDEsNDAg
Kzk2LDQwIEBACiAgICAgICAgIHQsCiAgICAgICAgICJJbnZhbGlkU3RhdGVFcnJvciIsCiAgICAg
ICAgIHJlamVjdGVkUHJvbWlzZSwKLSAgICAgICAgIkF0dGVtcHRpbmcgdG8gc2hvdyBhIHNlY29u
ZCBwYXltZW50IHJlcXVlc3QgbXVzdCByZWplY3QuIiwKKyAgICAgICAgIkF0dGVtcHRpbmcgdG8g
c2hvdyBhIHNlY29uZCBwYXltZW50IHJlcXVlc3QgbXVzdCByZWplY3QuIgogICAgICAgKTsKICAg
ICAgIC8vIEZpbmFsbHksIHdlIGNvbmZpcm0gdGhhdCByZXF1ZXN0MidzIHJldHVybmVkIHByb21p
c2VzIGFyZSB1bmlxdWUuCiAgICAgICBhc3NlcnRfbm90X2VxdWFscygKICAgICAgICAgc2hvd1By
b21pc2UyLAogICAgICAgICByZWplY3RlZFByb21pc2UsCi0gICAgICAgICJSZXR1cm5lZCBQcm9t
aXNlcyBiZSB1bmlxdWUiLAorICAgICAgICAiUmV0dXJuZWQgUHJvbWlzZXMgYmUgdW5pcXVlIgog
ICAgICAgKTsKICAgICB9LCAiVGhlIHRvcCBicm93c2luZyBjb250ZXh0IGNhbiBvbmx5IHNob3cg
b25lIHBheW1lbnQgc2hlZXQgYXQgYSB0aW1lLiIpOwogCi0gICAgcHJvbWlzZV90ZXN0KGFzeW5j
IHQgPT4geworICAgIHByb21pc2VfdGVzdChhc3luYyAodCkgPT4gewogICAgICAgY29uc3QgaWZy
YW1lID0gYXdhaXQgYXR0YWNoSWZyYW1lKCk7CiAgICAgICBjb25zdCBpZnJhbWVXaW5kb3cgPSBp
ZnJhbWUuY29udGVudFdpbmRvdzsKIAogICAgICAgLy8gUGF5bWVudCByZXF1ZXN0cwotICAgICAg
Y29uc3QgaWZyYW1lUmVxdWVzdCA9IG5ldyBpZnJhbWVXaW5kb3cuUGF5bWVudFJlcXVlc3QobWV0
aG9kcywgZGV0YWlscyk7CiAgICAgICBjb25zdCB3aW5kb3dSZXF1ZXN0ID0gbmV3IHdpbmRvdy5Q
YXltZW50UmVxdWVzdChtZXRob2RzLCBkZXRhaWxzKTsKKyAgICAgIGNvbnN0IGlmcmFtZVJlcXVl
c3QgPSBuZXcgaWZyYW1lV2luZG93LlBheW1lbnRSZXF1ZXN0KG1ldGhvZHMsIGRldGFpbHMpOwog
CiAgICAgICAvLyBMZXQncyBnZXQgc29tZSBibGVzc2VkIHNob3dQcm9taXNlcwotICAgICAgY29u
c3QgW3Nob3dQcm9taXNlXSA9IGF3YWl0IHRlc3RfZHJpdmVyLmJsZXNzKAotICAgICAgICAidGVz
dGluZyB0b3Agd2luZG93IHNob3coKSBibG9ja2VkIGJ5IHBheW1lbnQgc2hlZXQgaW4gaWZyYW1l
IiwKLSAgICAgICAgKCkgPT4gewotICAgICAgICAgIC8vIGlmcmFtZSBzZXRzICJpcyBzaG93aW5n
IGJvb2xlYW4iLCBpZ25vcmUgdGhlIHJldHVybmVkIHByb21pc2UuCi0gICAgICAgICAgaWZyYW1l
UmVxdWVzdC5zaG93KCk7Ci0gICAgICAgICAgLy8gVGhlIHRvcCBsZXZlbCB3aW5kb3cgbm93IHRy
aWVzIHRvIHNob3coKSB0aGUgcGF5bWVudCByZXF1ZXN0LgotICAgICAgICAgIHJldHVybiBbd2lu
ZG93UmVxdWVzdC5zaG93KCldOwotICAgICAgICB9LAorICAgICAgLy8gaWZyYW1lIHNldHMgImlz
IHNob3dpbmcgYm9vbGVhbiIsIGlnbm9yZSB0aGUgcmV0dXJuZWQgcHJvbWlzZS4KKyAgICAgIGNv
bnN0IFtpZnJhbWVQcm9taXNlXSA9IGF3YWl0IGdldFNob3dQcm9taXNlRnJvbUNvbnRleHQoCisg
ICAgICAgIGlmcmFtZVJlcXVlc3QsCisgICAgICAgIGlmcmFtZVdpbmRvdwogICAgICAgKTsKIAor
ICAgICAgLy8gVGhlIHRvcCBsZXZlbCB3aW5kb3cgbm93IHRyaWVzIHRvIHNob3coKSB0aGUgcGF5
bWVudCByZXF1ZXN0LgorICAgICAgYXdhaXQgdGVzdF9kcml2ZXIuYmxlc3MoInBheW1lbnQgcmVx
dWVzdCBzaG93KCkiKTsKKyAgICAgIGNvbnN0IHNob3dQcm9taXNlID0gd2luZG93UmVxdWVzdC5z
aG93KCk7CisKICAgICAgIGF3YWl0IHByb21pc2VfcmVqZWN0c19kb20oCiAgICAgICAgIHQsCiAg
ICAgICAgICJBYm9ydEVycm9yIiwKICAgICAgICAgc2hvd1Byb21pc2UsCi0gICAgICAgICJpZnJh
bWUgaXMgYWxyZWFkeSBzaG93aW5nIGEgcGF5bWVudCByZXF1ZXN0LiIsCisgICAgICAgICJpZnJh
bWUgaXMgYWxyZWFkeSBzaG93aW5nIGEgcGF5bWVudCByZXF1ZXN0LiIKICAgICAgICk7CiAKICAg
ICAgIC8vIENsZWFudXAKQEAgLTE0MiwzNjEgKzEzNywzNCBAQAogICAgICAgaWZyYW1lLnJlbW92
ZSgpOwogICAgIH0sICJJZiBhbiBpZnJhbWUgc2hvd3MgYSBwYXltZW50IHJlcXVlc3QsIHRoZSB0
b3AtbGV2ZWwgYnJvd3NpbmcgY29udGV4dCBjYW4ndCBhbHNvIHNob3cgb25lLiIpOwogCi0gICAg
cHJvbWlzZV90ZXN0KGFzeW5jIHQgPT4geworICAgIHByb21pc2VfdGVzdChhc3luYyAodCkgPT4g
ewogICAgICAgY29uc3QgaWZyYW1lID0gYXdhaXQgYXR0YWNoSWZyYW1lKCk7CiAgICAgICBjb25z
dCBpZnJhbWVXaW5kb3cgPSBpZnJhbWUuY29udGVudFdpbmRvdzsKLQotICAgICAgLy8gUGF5bWVu
dCByZXF1ZXN0cwogICAgICAgY29uc3QgaWZyYW1lUmVxdWVzdCA9IG5ldyBpZnJhbWVXaW5kb3cu
UGF5bWVudFJlcXVlc3QobWV0aG9kcywgZGV0YWlscyk7Ci0gICAgICBjb25zdCB3aW5kb3dSZXF1
ZXN0ID0gbmV3IHdpbmRvdy5QYXltZW50UmVxdWVzdChtZXRob2RzLCBkZXRhaWxzKTsKLQotICAg
ICAgLy8gV2UgZmlyc3Qgc2hvdyBhIHBheW1lbnQgcmVxdWVzdCB2aWEgdGhlIHRoZSB0b3AgbGV2
ZWwgYnJvd3NpbmcgY29udGV4dCwKLSAgICAgIC8vIHdpbmRvd1JlcXVlc3Quc2hvdygpIHNldHMg
ImlzIHNob3dpbmcgYm9vbGVhbiIgdG8gdHJ1ZS4gVGhlbiB3ZSB0cnkgdG8KLSAgICAgIC8vIHNo
b3cgYSBwYXltZW50IHJlcXVlc3QgaW4gdGhlIGlmcmFtZSwgd2hpY2ggc2hvdWxkIHJlamVjdC4K
LSAgICAgIGNvbnN0IFt3aW5kb3dTaG93UHJvbWlzZSwgaWZyYW1lU2hvd1Byb21pc2VdID0gYXdh
aXQgdGVzdF9kcml2ZXIuYmxlc3MoCi0gICAgICAgICJ0ZXN0aW5nIGlmcmFtZSBzaG93KCkgYmxv
Y2tlZCBieSBwYXltZW50IHNoZWV0IGluIHRvcCB3aW5kb3ciLAotICAgICAgICAoKSA9PiB7Ci0g
ICAgICAgICAgcmV0dXJuIFt3aW5kb3dSZXF1ZXN0LnNob3coKSwgaWZyYW1lUmVxdWVzdC5zaG93
KCldOwotICAgICAgICB9LAotICAgICAgKTsKLQotICAgICAgYXdhaXQgcHJvbWlzZV9yZWplY3Rz
X2RvbSgKLSAgICAgICAgdCwKLSAgICAgICAgIkFib3J0RXJyb3IiLAotICAgICAgICBpZnJhbWVT
aG93UHJvbWlzZSwKLSAgICAgICAgIlRoZSB0b3Agd2luZG93IGlzIGFscmVhZHkgc2hvd2luZyBh
IHBheW1lbnQgcmVxdWVzdC4iLAorICAgICAgY29uc3QgW2lmcmFtZVNob3dQcm9taXNlXSA9IGF3
YWl0IGdldFNob3dQcm9taXNlRnJvbUNvbnRleHQoCisgICAgICAgIGlmcmFtZVJlcXVlc3QsCisg
ICAgICAgIGlmcmFtZVdpbmRvdwogICAgICAgKTsKIAotICAgICAgLy8gQ2xlYW51cAotICAgICAg
YXdhaXQgd2luZG93UmVxdWVzdC5hYm9ydCgpOwotICAgICAgYXdhaXQgcHJvbWlzZV9yZWplY3Rz
X2RvbSgKLSAgICAgICAgdCwKLSAgICAgICAgIkFib3J0RXJyb3IiLAotICAgICAgICB3aW5kb3dT
aG93UHJvbWlzZSwKLSAgICAgICAgIlRoZSB3aW5kb3cgcGF5bWVudCByZXF1ZXN0IHNob3VsZCBi
ZSBhYm9ydGVkIGJ5IHRlc3QuIiwKLSAgICAgICAgKTsKLSAgICAgIGlmcmFtZS5yZW1vdmUoKTsK
LSAgICB9LCAiQW4gaWZyYW1lIGNhbm5vdCBzaG93IGEgcGF5bWVudCByZXF1ZXN0IGlmIHRoZSB0
b3AtbGV2ZWwgd2luZG93IGlzIGFscmVhZHkgc2hvd2luZyBvbmUuIik7Ci0KLSAgICBwcm9taXNl
X3Rlc3QoYXN5bmMgdCA9PiB7Ci0gICAgICAvLyBDcmVhdGUgYSBQYXltZW50UmV1cWVzdCBpbiB0
b3AtbGV2ZWwgd2luZG93LgotICAgICAgY29uc3Qgd2luZG93UmVxdWVzdCA9IG5ldyB3aW5kb3cu
UGF5bWVudFJlcXVlc3QobWV0aG9kcywgZGV0YWlscyk7Ci0KLSAgICAgIC8vIFVzZSBhIHNpbmds
ZSB1c2VyIGdlc3R1cmUgdG8gb3BlbiBhIHBvcHVwIHdpbmRvdyB3aXRoIGEgUGF5bWVudFJlcXVl
c3QuCi0gICAgICAvLyBUaGVuIHRyaWdnZXIgc2hvdygpIGZpcnN0IG9uIHxwb3B1cFJlcXVlc3R8
IHRoZW4gb24gfHdpbmRvd1JlcXVlc3R8LgotICAgICAgLy8gVGhlIGxhdHRlciBzaG91bGQgcmVq
ZWN0LgotICAgICAgY29uc3QgWwotICAgICAgICBwb3B1cFdpbmRvdywKLSAgICAgICAgcG9wdXBS
ZXF1ZXN0LAotICAgICAgICBwb3B1cFNob3dQcm9taXNlLAotICAgICAgICB3aW5kb3dTaG93UHJv
bWlzZSwKLSAgICAgIF0gPSBhd2FpdCB0ZXN0X2RyaXZlci5ibGVzcygKLSAgICAgICAgInRlc3Rp
bmcgdG9wLWxldmVsIHNob3coKSBibG9ja2VkIGJ5IHBheW1lbnQgc2hlZXQgaW4gcG9wdXAiLAot
ICAgICAgICBhc3luYyAoKSA9PiB7Ci0gICAgICAgICAgY29uc3QgcG9wdXBXaW5kb3cgPSBhd2Fp
dCBsb2FkUG9wdXBJbnNpZGVVc2VyR2VzdHVyZSgpOwotICAgICAgICAgIGNvbnN0IHBvcHVwUmVx
dWVzdCA9IG5ldyBwb3B1cFdpbmRvdy5QYXltZW50UmVxdWVzdChtZXRob2RzLCBkZXRhaWxzKTsK
LSAgICAgICAgICBjb25zdCBwb3B1cFNob3dQcm9taXNlID0gcG9wdXBSZXF1ZXN0LnNob3coKTsK
LSAgICAgICAgICBjb25zdCB3aW5kb3dTaG93UHJvbWlzZSA9IHdpbmRvd1JlcXVlc3Quc2hvdygp
OwotICAgICAgICAgIHJldHVybiBbCi0gICAgICAgICAgICBwb3B1cFdpbmRvdywKLSAgICAgICAg
ICAgIHBvcHVwUmVxdWVzdCwKLSAgICAgICAgICAgIHBvcHVwU2hvd1Byb21pc2UsCi0gICAgICAg
ICAgICB3aW5kb3dTaG93UHJvbWlzZSwKLSAgICAgICAgICBdOwotICAgICAgICB9LAotICAgICAg
KTsKLQotICAgICAgYXdhaXQgcHJvbWlzZV9yZWplY3RzX2RvbSgKLSAgICAgICAgdCwKLSAgICAg
ICAgIkFib3J0RXJyb3IiLAotICAgICAgICB3aW5kb3dTaG93UHJvbWlzZSwKLSAgICAgICAgIkV4
cGVjdGVkIHdpbmRvdydzIHNob3dQcm9taXNlIHRvIHJlamVjdCwgcmVxdWVzdCBpcyBhbHJlYWR5
IHNob3dpbmciLAotICAgICAgKTsKLQotICAgICAgYXdhaXQgcG9wdXBSZXF1ZXN0LmFib3J0KCk7
Ci0gICAgICBhd2FpdCBwcm9taXNlX3JlamVjdHNfZG9tKAotICAgICAgICB0LAotICAgICAgICAi
QWJvcnRFcnJvciIsCi0gICAgICAgIHBvcHVwU2hvd1Byb21pc2UsCi0gICAgICAgICJFeHBlY3Rl
ZCBwb3B1cFNob3dQcm9taXNlIHRvIGJlIGFib3J0ZWQgYnkgdGVzdC4iLAotICAgICAgKTsKLSAg
ICAgIHBvcHVwV2luZG93LmNsb3NlKCk7Ci0gICAgfSwgIlVzaW5nIGEgcG9wdXAgd2luZG93IHBy
ZXZlbnRzIHRoZSB0b3AtYnJvd3NpbmcgY29udGV4dCBmcm9tIHNob3dpbmcgYSBwYXltZW50IHJl
cXVlc3QiKTsKLQotICAgIHByb21pc2VfdGVzdChhc3luYyB0ID0+IHsKLSAgICAgIGNvbnN0IGlm
cmFtZSA9IGF3YWl0IGF0dGFjaElmcmFtZSgpOwotICAgICAgY29uc3QgaWZyYW1lV2luZG93ID0g
aWZyYW1lLmNvbnRlbnRXaW5kb3c7Ci0KLSAgICAgIC8vIENyZWF0ZSByZXF1ZXN0cwotICAgICAg
Y29uc3Qgd2luZG93UmVxdWVzdCA9IG5ldyB3aW5kb3cuUGF5bWVudFJlcXVlc3QobWV0aG9kcywg
ZGV0YWlscyk7Ci0gICAgICBjb25zdCBpZnJhbWVSZXF1ZXN0ID0gbmV3IGlmcmFtZVdpbmRvdy5Q
YXltZW50UmVxdWVzdChtZXRob2RzLCBkZXRhaWxzKTsKLQotICAgICAgLy8gT3BlbiBhIHBvcHVw
IHdpbmRvdwotICAgICAgY29uc3QgW3BvcHVwV2luZG93LCBwb3B1cFJlcXVlc3RdID0KLSAgICAg
IGF3YWl0IHRlc3RfZHJpdmVyLmJsZXNzKAotICAgICAgICAib3BlbiBwb3B1cCB0byB0ZXN0IG11
bHRpcGxlIGNvbnRleHQgYW5kIHdpbmRvdyBjYWxscyBzaG93KCkgZmlyc3QiLAotICAgICAgICBh
c3luYyAoKSA9PiB7Ci0gICAgICAgICAgY29uc3QgcG9wdXBXaW5kb3cgPSBhd2FpdCBsb2FkUG9w
dXBJbnNpZGVVc2VyR2VzdHVyZSgpOwotICAgICAgICAgIGNvbnN0IHBvcHVwUmVxdWVzdCA9IG5l
dyBwb3B1cFdpbmRvdy5QYXltZW50UmVxdWVzdChtZXRob2RzLCBkZXRhaWxzKTsKLSAgICAgICAg
ICByZXR1cm4gW3BvcHVwV2luZG93LCBwb3B1cFJlcXVlc3RdOwotICAgICAgICB9LAotICAgICAg
KTsKLQotICAgICAgLy8gR2V0IHRoZSBzaG93UHJvbWlzZSBmb3IgZWFjaCBicm93c2luZyBjb250
ZXh0LiBEb2luZyB0aGlzIGluIGEgc2VwYXJhdGUKLSAgICAgIC8vIHRlc3RfZHJpdmVyLmJsZXNz
KCkgaXMgaW1wb3J0YW50IGJlY2F1c2UgdGhlIHVzZXIgZ2VzdHVyZSBicmluZ3MKLSAgICAgIC8v
IHx3aW5kb3d8IHRvIHRoZSBmb3JlZ3JvdW5kLCBzbyB0aGF0IHRoZSBwYXltZW50IHNoZWV0IGNh
biBzaG93LgotICAgICAgY29uc3QgWwotICAgICAgICB3aW5kb3dTaG93UHJvbWlzZSwKLSAgICAg
ICAgcG9wdXBTaG93UHJvbWlzZSwKLSAgICAgICAgaWZyYW1lU2hvd1Byb21pc2UsCi0gICAgICBd
ID0gYXdhaXQgdGVzdF9kcml2ZXIuYmxlc3MoCi0gICAgICAgICJ0ZXN0IG11bHRpcGxlIG5lc3Rl
ZCBicm93c2luZyBjb250ZXh0IiwKLSAgICAgICAgKCkgPT4gewotICAgICAgICAgIHJldHVybiBb
Ci0gICAgICAgICAgICB3aW5kb3dSZXF1ZXN0LnNob3coKSwKLSAgICAgICAgICAgIHBvcHVwUmVx
dWVzdC5zaG93KCksCi0gICAgICAgICAgICBpZnJhbWVSZXF1ZXN0LnNob3coKSwKLSAgICAgICAg
ICBdOwotICAgICAgICB9LAotICAgICAgKTsKLSAgICAgIC8vIHBvcHVwUmVxdWVzdCBhbmQgaWZy
YW1lUmVxdWVzdCB3aWxsIGJvdGggcmVqZWN0Ci0gICAgICBhd2FpdCBwcm9taXNlX3JlamVjdHNf
ZG9tKAotICAgICAgICB0LAotICAgICAgICAiQWJvcnRFcnJvciIsCi0gICAgICAgIHBvcHVwU2hv
d1Byb21pc2UsCi0gICAgICAgICJFeHBlY3RlZCBwb3B1cFNob3dQcm9taXNlIHRvIHJlamVjdCwg
cmVxdWVzdCBpcyBhbHJlYWR5IHNob3dpbmcuIiwKLSAgICAgICk7Ci0KLSAgICAgIGF3YWl0IHBy
b21pc2VfcmVqZWN0c19kb20oCi0gICAgICAgIHQsCi0gICAgICAgICJBYm9ydEVycm9yIiwKLSAg
ICAgICAgaWZyYW1lU2hvd1Byb21pc2UsCi0gICAgICAgICJFeHBlY3RlZCBpZnJhbWVTaG93UHJv
bWlzZSB0byByZWplY3QsIHJlcXVlc3QgaXMgYWxyZWFkeSBzaG93aW5nLiIsCi0gICAgICApOwot
Ci0gICAgICBhd2FpdCB3aW5kb3dSZXF1ZXN0LmFib3J0KCk7Ci0gICAgICBhd2FpdCBwcm9taXNl
X3JlamVjdHNfZG9tKAotICAgICAgICB0LAotICAgICAgICAiQWJvcnRFcnJvciIsCi0gICAgICAg
IHdpbmRvd1Nob3dQcm9taXNlLAotICAgICAgICAiRXhwZWN0IHdpbmRvdyBwcm9taXNlIHRvIGJl
IGFib3J0ZWQgYnkgdGVzdC4iCi0gICAgICApOwotICAgICAgcG9wdXBXaW5kb3cuY2xvc2UoKTsK
LSAgICAgIGlmcmFtZS5yZW1vdmUoKTsKLSAgICB9LCAiR2l2ZW4gbXVsdGlwbGUgbmVzdGVkIGJy
b3dzaW5nIGNvbnRleHRzLCBhbmQgd2luZG93IGNhbGxzIHNob3coKSBmaXJzdCwgb3RoZXIgbmVz
dGVkIGJyb3dzaW5nIGNvbnRleHRzIGNhbid0IHNob3cgYSByZXF1ZXN0LiIpOwotCi0gICAgcHJv
bWlzZV90ZXN0KGFzeW5jIHQgPT4gewotICAgICAgY29uc3QgaWZyYW1lID0gYXdhaXQgYXR0YWNo
SWZyYW1lKCk7Ci0gICAgICBjb25zdCBpZnJhbWVXaW5kb3cgPSBpZnJhbWUuY29udGVudFdpbmRv
dzsKLQotICAgICAgLy8gQ3JlYXRlIHJlcXVlc3RzCi0gICAgICBjb25zdCB3aW5kb3dSZXF1ZXN0
ID0gbmV3IHdpbmRvdy5QYXltZW50UmVxdWVzdChtZXRob2RzLCBkZXRhaWxzKTsKLSAgICAgIGNv
bnN0IGlmcmFtZVJlcXVlc3QgPSBuZXcgaWZyYW1lV2luZG93LlBheW1lbnRSZXF1ZXN0KG1ldGhv
ZHMsIGRldGFpbHMpOwotCi0gICAgICAvLyBPcGVuIGEgcG9wdXAgd2luZG93Ci0gICAgICBjb25z
dCBbCi0gICAgICAgIHBvcHVwV2luZG93LAotICAgICAgICBwb3B1cFJlcXVlc3QsCi0gICAgICAg
IHBvcHVwU2hvd1Byb21pc2UsCi0gICAgICAgIHdpbmRvd1Nob3dQcm9taXNlLAotICAgICAgICBp
ZnJhbWVTaG93UHJvbWlzZQotICAgICAgXSA9IGF3YWl0IHRlc3RfZHJpdmVyLmJsZXNzKAotICAg
ICAgICAidGVzdCBtdWx0aXBsZSBicm93c2luZyBjb250ZXh0IGFuZCBpZnJhbWUgY2FsbHMgc2hv
dygpIGZpcnN0IiwKLSAgICAgICAgYXN5bmMgKCkgPT4gewotICAgICAgICAgIGNvbnN0IHBvcHVw
V2luZG93ID0gYXdhaXQgbG9hZFBvcHVwSW5zaWRlVXNlckdlc3R1cmUoKTsKLSAgICAgICAgICBj
b25zdCBwb3B1cFJlcXVlc3QgPSBuZXcgcG9wdXBXaW5kb3cuUGF5bWVudFJlcXVlc3QobWV0aG9k
cywgZGV0YWlscyk7Ci0gICAgICAgICAgY29uc3QgcG9wdXBTaG93UHJvbWlzZSA9IHBvcHVwUmVx
dWVzdC5zaG93KCk7Ci0gICAgICAgICAgY29uc3Qgd2luZG93U2hvd1Byb21pc2UgPSB3aW5kb3dS
ZXF1ZXN0LnNob3coKTsKLSAgICAgICAgICBjb25zdCBpZnJhbWVTaG93UHJvbWlzZSA9IGlmcmFt
ZVJlcXVlc3Quc2hvdygpOwotICAgICAgICAgIHJldHVybiBbcG9wdXBXaW5kb3csCi0gICAgICAg
ICAgICAgICAgICBwb3B1cFJlcXVlc3QsCi0gICAgICAgICAgICAgICAgICBwb3B1cFNob3dQcm9t
aXNlLAotICAgICAgICAgICAgICAgICAgd2luZG93U2hvd1Byb21pc2UsCi0gICAgICAgICAgICAg
ICAgICBpZnJhbWVTaG93UHJvbWlzZV07CisgICAgICAvLyBXZSBuYXZpZ2F0ZSBhd2F5LCBjYXVz
aW5nIHRoZSBwYXltZW50IHNoZWV0IHRvIGNsb3NlCisgICAgICAvLyBhbmQgdGhlIHJlcXVlc3Qg
aXMgc2hvd2luZyBib29sZWFuIHRvIGJlY29tZSBmYWxzZS4KKyAgICAgIGF3YWl0IG5ldyBQcm9t
aXNlKChyZXNvbHZlKSA9PiB7CisgICAgICAgIGlmcmFtZS5vbmxvYWQgPSByZXNvbHZlOworICAg
ICAgICBpZnJhbWUuc3JjID0gImJsYW5rLmh0bWw/dGVzdD0xMjMiOwogICAgICAgfSk7CiAKLSAg
ICAgIC8vIHdpbmRvd1Nob3dQcm9taXNlIGFuZCBpZnJhbWVSZXF1ZXN0IHdpbGwgYm90aCByZWpl
Y3QKLSAgICAgIGF3YWl0IHByb21pc2VfcmVqZWN0c19kb20oCi0gICAgICAgIHQsCi0gICAgICAg
ICJBYm9ydEVycm9yIiwKLSAgICAgICAgd2luZG93U2hvd1Byb21pc2UsCi0gICAgICAgICJFeHBl
Y3RlZCB3aW5kb3dTaG93UHJvbWlzZSB0byByZWplY3QsIHRoZSBwb3B1cCBpcyBzaG93aW5nIGEg
cGF5bWVudCByZXF1ZXN0LiIsCi0gICAgICApOwotCi0gICAgICBhd2FpdCBwcm9taXNlX3JlamVj
dHNfZG9tKAotICAgICAgICB0LAotICAgICAgICAiQWJvcnRFcnJvciIsCi0gICAgICAgIGlmcmFt
ZVNob3dQcm9taXNlLAotICAgICAgICAiRXhwZWN0ZWQgaWZyYW1lU2hvd1Byb21pc2UgdG8gcmVq
ZWN0LCB0aGUgcG9wdXAgaXMgc2hvd2luZyBhIHBheW1lbnQgcmVxdWVzdC4iLAotICAgICAgKTsK
LQotICAgICAgYXdhaXQgcG9wdXBSZXF1ZXN0LmFib3J0KCk7Ci0gICAgICBhd2FpdCBwcm9taXNl
X3JlamVjdHNfZG9tKAotICAgICAgICB0LAotICAgICAgICAiQWJvcnRFcnJvciIsCi0gICAgICAg
IHBvcHVwU2hvd1Byb21pc2UsCi0gICAgICAgICJFeHBlY3RlZCBwb3B1cFNob3dQcm9taXNlIHRv
IGJlIGFib3J0ZWQgYnkgdGVzdC4iLAotICAgICAgKTsKLSAgICAgIHBvcHVwV2luZG93LmNsb3Nl
KCk7CiAgICAgICBpZnJhbWUucmVtb3ZlKCk7Ci0gICAgfSwgIkdpdmVuIG11bHRpcGxlIG5lc3Rl
ZCBicm93c2luZyBjb250ZXh0cywgYW5kIHBvcHVwIGNhbGxzIHNob3coKSBmaXJzdCwgb3RoZXIg
bmVzdGVkIGJyb3dzaW5nIGNvbnRleHRzIGNhbid0IHNob3cgYSByZXF1ZXN0LiIpOwotCi0gICAg
cHJvbWlzZV90ZXN0KGFzeW5jIHQgPT4gewotICAgICAgY29uc3QgaWZyYW1lID0gYXdhaXQgYXR0
YWNoSWZyYW1lKCk7Ci0gICAgICBjb25zdCBpZnJhbWVXaW5kb3cgPSBpZnJhbWUuY29udGVudFdp
bmRvdzsKLQotICAgICAgLy8gQ3JlYXRlIHJlcXVlc3RzCi0gICAgICBjb25zdCB3aW5kb3dSZXF1
ZXN0ID0gbmV3IHdpbmRvdy5QYXltZW50UmVxdWVzdChtZXRob2RzLCBkZXRhaWxzKTsKLSAgICAg
IGNvbnN0IGlmcmFtZVJlcXVlc3QgPSBuZXcgaWZyYW1lV2luZG93LlBheW1lbnRSZXF1ZXN0KG1l
dGhvZHMsIGRldGFpbHMpOwotCi0gICAgICBjb25zdCBbcG9wdXBXaW5kb3csIHBvcHVwUmVxdWVz
dF0gPSBhd2FpdCB0ZXN0X2RyaXZlci5ibGVzcygKLSAgICAgICAgIm9wZW4gcG9wdXAgdG8gdGVz
dCBtdWx0aXBsZSBjb250ZXh0IGFuZCBpZnJhbWUgY2FsbHMgc2hvdygpIGZpcnN0IiwKLSAgICAg
ICAgYXN5bmMgKCkgPT4gewotICAgICAgICAgIGNvbnN0IHcgPSBhd2FpdCBsb2FkUG9wdXBJbnNp
ZGVVc2VyR2VzdHVyZSgpOwotICAgICAgICAgIGNvbnN0IHIgPSBuZXcgdy5QYXltZW50UmVxdWVz
dChtZXRob2RzLCBkZXRhaWxzKTsKLSAgICAgICAgICByZXR1cm4gW3csIHJdOwotICAgICAgICB9
LAotICAgICAgKTsKLQotICAgICAgLy8gR2V0IHRoZSBzaG93UHJvbWlzZSBmb3IgZWFjaCBicm93
c2luZyBjb250ZXh0LiBEb2luZyB0aGlzIGluIGEgc2VwYXJhdGUKLSAgICAgIC8vIHRlc3RfZHJp
dmVyLmJsZXNzKCkgaXMgaW1wb3J0YW50IGJlY2F1c2UgdGhlIHVzZXIgZ2VzdHVyZSBicmluZ3MK
LSAgICAgIC8vIHx3aW5kb3d8IHRvIHRoZSBmb3JlZ3JvdW5kLCBzbyB0aGF0IHRoZSBwYXltZW50
IHNoZWV0IGNhbiBzaG93LgotICAgICAgY29uc3QgWwotICAgICAgICBpZnJhbWVTaG93UHJvbWlz
ZSwKLSAgICAgICAgcG9wdXBTaG93UHJvbWlzZSwKLSAgICAgICAgd2luZG93U2hvd1Byb21pc2Us
Ci0gICAgICBdID0gYXdhaXQgdGVzdF9kcml2ZXIuYmxlc3MoCi0gICAgICAgICJ0ZXN0IG11bHRp
cGxlIGJyb3dzaW5nIGNvbnRleHQgYW5kIGlmcmFtZSBjYWxscyBzaG93KCkgZmlyc3QiLAotICAg
ICAgICBhc3luYyAoKSA9PiB7Ci0gICAgICAgICAgcmV0dXJuIFsKLSAgICAgICAgICAgIGlmcmFt
ZVJlcXVlc3Quc2hvdygpLAotICAgICAgICAgICAgcG9wdXBSZXF1ZXN0LnNob3coKSwKLSAgICAg
ICAgICAgIHdpbmRvd1JlcXVlc3Quc2hvdygpLAotICAgICAgICAgIF07Ci0gICAgICAgIH0sCi0g
ICAgICApOwotCi0gICAgICAvLyB3aW5kb3dTaG93UHJvbWlzZSBhbmQgaWZyYW1lUmVxdWVzdCB3
aWxsIGJvdGggcmVqZWN0Ci0gICAgICBhd2FpdCBwcm9taXNlX3JlamVjdHNfZG9tKAotICAgICAg
ICB0LAotICAgICAgICAiQWJvcnRFcnJvciIsCi0gICAgICAgIHdpbmRvd1Nob3dQcm9taXNlLAot
ICAgICAgICAiRXhwZWN0ZWQgd2luZG93U2hvd1Byb21pc2UgdG8gcmVqZWN0LCB0aGUgcG9wdXAg
aXMgc2hvd2luZyBhIHBheW1lbnQgcmVxdWVzdC4iLAotICAgICAgKTsKIAorICAgICAgLy8gTm93
IHdlIHNob3VsZCBiZSBvayB0byBzcGluIHVwIGEgbmV3IHBheW1lbnQgcmVxdWVzdAorICAgICAg
Y29uc3QgcmVxdWVzdCA9IG5ldyB3aW5kb3cuUGF5bWVudFJlcXVlc3QobWV0aG9kcywgZGV0YWls
cyk7CisgICAgICBjb25zdCBbc2hvd1Byb21pc2VdID0gYXdhaXQgZ2V0U2hvd1Byb21pc2VGcm9t
Q29udGV4dChyZXF1ZXN0KTsKKyAgICAgIGF3YWl0IHJlcXVlc3QuYWJvcnQoKTsKICAgICAgIGF3
YWl0IHByb21pc2VfcmVqZWN0c19kb20oCiAgICAgICAgIHQsCiAgICAgICAgICJBYm9ydEVycm9y
IiwKLSAgICAgICAgcG9wdXBTaG93UHJvbWlzZSwKLSAgICAgICAgIkV4cGVjdGVkIHBvcHVwU2hv
d1Byb21pc2UgdG8gcmVqZWN0LCB0aGUgcG9wdXAgaXMgc2hvd2luZyBhIHBheW1lbnQgcmVxdWVz
dC4iLAotICAgICAgKTsKLQotICAgICAgYXdhaXQgaWZyYW1lUmVxdWVzdC5hYm9ydCgpOwotICAg
ICAgYXdhaXQgcHJvbWlzZV9yZWplY3RzX2RvbSgKLSAgICAgICAgdCwKLSAgICAgICAgIkFib3J0
RXJyb3IiLAotICAgICAgICBpZnJhbWVTaG93UHJvbWlzZSwKLSAgICAgICAgIkV4cGVjdGVkIGlm
cmFtZVNob3dQcm9taXNlIHRvIGJlIGFib3J0ZWQgYnkgdGVzdC4iCi0gICAgICApOwotICAgICAg
cG9wdXBXaW5kb3cuY2xvc2UoKTsKLSAgICAgIGlmcmFtZS5yZW1vdmUoKTsKLSAgICB9LCAiR2l2
ZW4gbXVsdGlwbGUgbmVzdGVkIGJyb3dzaW5nIGNvbnRleHRzLCBhbmQgYW4gaWZyYW1lIGNhbGxz
IHNob3coKSBmaXJzdCwgb3RoZXIgbmVzdGVkIGJyb3dzaW5nIGNvbnRleHRzIGNhbid0IHNob3cg
YSByZXF1ZXN0LiIpOwotCi0gICAgcHJvbWlzZV90ZXN0KGFzeW5jIHQgPT4gewotICAgICAgY29u
c3QgaWZyYW1lID0gYXdhaXQgYXR0YWNoSWZyYW1lKCk7Ci0gICAgICBjb25zdCBpZnJhbWVXaW5k
b3cgPSBpZnJhbWUuY29udGVudFdpbmRvdzsKLSAgICAgIGNvbnN0IGlmcmFtZVJlcXVlc3QgPSBu
ZXcgaWZyYW1lV2luZG93LlBheW1lbnRSZXF1ZXN0KG1ldGhvZHMsIGRldGFpbHMpOwotICAgICAg
Y29uc3QgaWZyYW1lU2hvd1Byb21pc2UgPSB0ZXN0X2RyaXZlci5ibGVzcygKLSAgICAgICAgInRl
c3QgbmF2aWdhdGluZyBpZnJhbWUgYWZ0ZXIgc2hvdygpIiwKLSAgICAgICAgKCkgPT4gaWZyYW1l
UmVxdWVzdC5zaG93KCksCi0gICAgICApOwotCi0gICAgICAvLyBXZSBuYXZpZ2F0ZSBhd2F5LCBj
YXVzaW5nIHRoZSBwYXltZW50IHNoZWV0IHRvIGNsb3NlCi0gICAgICAvLyBhbmQgdGhlIHJlcXVl
c3QgaXMgc2hvd2luZyBib29sZWFuIHRvIGJlY29tZSBmYWxzZS4KLSAgICAgIGlmcmFtZS5zcmMg
PSAiYmxhbmsuaHRtbD9hYmM9MTIzIjsKLSAgICAgIGF3YWl0IG5ldyBQcm9taXNlKHJlc29sdmUg
PT4gKGlmcmFtZS5vbmxvYWQgPSByZXNvbHZlKSk7Ci0gICAgICBhd2FpdCBwcm9taXNlX3JlamVj
dHNfZG9tKAotICAgICAgICB0LAotICAgICAgICAiQWJvcnRFcnJvciIsCi0gICAgICAgIGlmcmFt
ZVNob3dQcm9taXNlLAotICAgICAgICAiTmF2aWdhdGluZyBpZnJhbWUgYXdheSBtdXN0IGNhdXNl
IHRoZSBpZnJhbWVTaG93UHJvbWlzZSB0byByZWplY3QuIiwKKyAgICAgICAgc2hvd1Byb21pc2Us
CisgICAgICAgICJOb3JtYWwgYWJvcnQuIgogICAgICAgKTsKLSAgICAgIGlmcmFtZS5yZW1vdmUo
KTsKLQotICAgICAgLy8gTm93IHdlIHNob3VsZCBiZSBvayB0byBzcGluIHVwIGEgbmV3IHBheW1l
bnQgcmVxdWVzdAotICAgICAgY29uc3QgcmVxdWVzdCA9IG5ldyB3aW5kb3cuUGF5bWVudFJlcXVl
c3QobWV0aG9kcywgZGV0YWlscyk7Ci0gICAgICBjb25zdCBbc2hvd1Byb21pc2VdID0gYXdhaXQg
dGVzdF9kcml2ZXIuYmxlc3MoCi0gICAgICAgICAgInN0YXJ0IGEgbmV3IHBheW1lbnQgcmVxdWVz
dCIsCi0gICAgICAgICAgKCkgPT4gewotICAgICAgICAgICAgcmV0dXJuIFtyZXF1ZXN0LnNob3co
KV07Ci0gICAgICAgICAgfSk7Ci0KLSAgICAgIC8vIElmIGEgcGF5bWVudCBzaGVldCBmYWlscyB0
byBzaG93LCBpdCBzaG91bGQgcmVqZWN0IGltbWVkaWF0ZWx5LiBJZiBpdAotICAgICAgLy8gaGFz
bid0IHJlamVjdGVkIGluIDEgc2Vjb25kLCB0aGVuIHRoZSB0ZXN0IGhhcyBwYXNzZWQuCi0gICAg
ICB0LnN0ZXBfdGltZW91dChhc3luYyAoKSA9PiB7Ci0gICAgICAgIC8vIFdlJ3JlIGRvbmUuIENs
ZWFuIHVwLgotICAgICAgICBhd2FpdCByZXF1ZXN0LmFib3J0KCk7Ci0gICAgICAgIHQuZG9uZSgp
OwotICAgICAgfSk7Ci0KLSAgICAgIC8vIElmIHRoZSBuYXZpZ2F0aW9uIGluIGlmcmFtZSBmYWls
ZWQgdG8gY2xvc2UgdGhlIG9yaWdpbmFsIHBheW1lbnQgc2hlZXQKLSAgICAgIC8vIHRoZXJlLCB8
c2hvd1Byb21pc2V8IHNob3VsZCByZWplY3QgaW1tZWRpYXRlbHkgYW5kIHRoaXMgaW5kaWNhdGVz
IGEKLSAgICAgIC8vIGZhaWx1cmUgb2YgdGhpcyB0ZXN0LgotICAgICAgYXdhaXQgc2hvd1Byb21p
c2UudGhlbigoKSA9PiB7Ci0gICAgICAgIGFzc2VydF90cnVlKGZhbHNlLAotICAgICAgICAgICJT
ZWNvbmQgcGF5bWVudCBzaGVldCBzaG91bGQgYmUgcGVuZGluZyBidXQgaXMgcmVzb2x2ZWQuIik7
Ci0gICAgICB9KQotICAgICAgLmNhdGNoKGUgPT4gewotICAgICAgICBhc3NlcnRfdHJ1ZShmYWxz
ZSwKLSAgICAgICAgICAiU2Vjb25kIHBheW1lbnQgc2hlZXQgc2hvdWxkIGJlIHBlbmRpbmcgYnV0
IGlzIHJlamVjdGVkLiIgKyBlLm1lc3NhZ2UpOwotICAgICAgfSk7CiAgICAgfSwgIk5hdmlnYXRp
bmcgYW4gaWZyYW1lIGFzIGEgbmVzdGVkIGJyb3dzaW5nIGNvbnRleHQgc2V0cyAncGF5bWVudCBy
ZXF1ZXN0IGlzIHNob3dpbmcgYm9vbGVhbicgdG8gZmFsc2UuIik7Ci0KLSAgICBwcm9taXNlX3Rl
c3QoYXN5bmMgdCA9PiB7Ci0gICAgICBjb25zdCBbcG9wdXBXaW5kb3csIHBvcHVwUmVxdWVzdCwg
cG9wdXBTaG93UHJvbWlzZV0gPQotICAgICAgICBhd2FpdCB0ZXN0X2RyaXZlci5ibGVzcygKLSAg
ICAgICAgICAidHJpZ2dlciBwYXltZW50IGluIGEgcG9wdXAgd2luZG93IiwKLSAgICAgICAgICBh
c3luYyAoKSA9PiB7Ci0gICAgICAgICAgICBjb25zdCBwb3B1cFdpbmRvdyA9IGF3YWl0IGxvYWRQ
b3B1cEluc2lkZVVzZXJHZXN0dXJlKCk7Ci0gICAgICAgICAgICBjb25zdCBwb3B1cFJlcXVlc3Qg
PSBuZXcgcG9wdXBXaW5kb3cuUGF5bWVudFJlcXVlc3QobWV0aG9kcywgZGV0YWlscyk7Ci0gICAg
ICAgICAgICByZXR1cm4gW3BvcHVwV2luZG93LCBwb3B1cFJlcXVlc3QsIHBvcHVwUmVxdWVzdC5z
aG93KCldOwotICAgICAgICAgIH0pOwotCi0gICAgICAvLyBXZSBuYXZpZ2F0ZSBhd2F5LCBjYXVz
aW5nIHRoZSBwYXltZW50IHNoZWV0IHRvIGNsb3NlCi0gICAgICAvLyBhbmQgdGhlIHJlcXVlc3Qg
aXMgc2hvd2luZyBib29sZWFuIHRvIGJlY29tZSBmYWxzZS4KLSAgICAgIHBvcHVwV2luZG93Lmxv
Y2F0aW9uID0gImJsYW5rLmh0bWw/YWJjPTEyMyI7Ci0gICAgICBhd2FpdCBuZXcgUHJvbWlzZShy
ZXNvbHZlID0+IChwb3B1cFdpbmRvdy5vbmxvYWQgPSByZXNvbHZlKSk7Ci0KLSAgICAgIC8vIERv
bid0IHdhaXQgZm9yIHxwb3B1cFNob3dQcm9taXNlfCB0byByZWplY3QgYmVjYXVzZSBpdCBtYXkg
bmV2ZXIgZG8KLSAgICAgIC8vIChzZWUgaHR0cHM6Ly9naXRodWIuY29tL3czYy9wYXltZW50LXJl
cXVlc3QvaXNzdWVzLzg3MikuIEluc3RlYWQsIHRyeQotICAgICAgLy8gdG8gc3BpbiB1cCBhIG5l
dyBwYXltZW50IHJlcXVlc3QgYW5kIG1ha2Ugc3VyZSBpdCBzdWNjZWVkcy4KLSAgICAgIGNvbnN0
IHJlcXVlc3QgPSBuZXcgd2luZG93LlBheW1lbnRSZXF1ZXN0KG1ldGhvZHMsIGRldGFpbHMpOwot
ICAgICAgY29uc3QgW3Nob3dQcm9taXNlXSA9IGF3YWl0IHRlc3RfZHJpdmVyLmJsZXNzKAotICAg
ICAgICAidHJpZ2dlciBwYXltZW50IGluIG1haW4gd2luZG93IiwKLSAgICAgICAgKCkgPT4gewot
ICAgICAgICAgIHJldHVybiBbcmVxdWVzdC5zaG93KCldOwotICAgICAgICB9KTsKLQotICAgICAg
Ly8gSWYgYSBwYXltZW50IHNoZWV0IGZhaWxzIHRvIHNob3csIGl0IHNob3VsZCByZWplY3QgaW1t
ZWRpYXRlbHkuIElmIGl0Ci0gICAgICAvLyBoYXNuJ3QgcmVqZWN0ZWQgaW4gMSBzZWNvbmQsIHRo
ZW4gdGhlIHRlc3QgaGFzIHBhc3NlZC4KLSAgICAgIHQuc3RlcF90aW1lb3V0KGFzeW5jICgpID0+
IHsKLSAgICAgICAgLy8gV2UncmUgZG9uZS4gQ2xlYW4gdXAuCi0gICAgICAgIHBvcHVwV2luZG93
LmNsb3NlKCk7Ci0gICAgICAgIGF3YWl0IHJlcXVlc3QuYWJvcnQoKTsKLSAgICAgICAgdC5kb25l
KCk7Ci0gICAgICB9LCAxMDAwKTsKLQotICAgICAgLy8gSWYgdGhlIG5hdmlnYXRpb24gaW4gcG9w
dXAgd2luZG93IGZhaWxlZCB0byBjbG9zZSB0aGUgb3JpZ2luYWwgcGF5bWVudAotICAgICAgLy8g
c2hlZXQgdGhlcmUsIHxzaG93UHJvbWlzZXwgc2hvdWxkIHJlamVjdCBpbW1lZGlhdGVseSBhbmQg
dGhpcyBpbmRpY2F0ZXMKLSAgICAgIC8vIGEgZmFpbHVyZSBvZiB0aGlzIHRlc3QuCi0gICAgICBh
d2FpdCBzaG93UHJvbWlzZS50aGVuKCgpID0+IHsKLSAgICAgICAgYXNzZXJ0X3RydWUoZmFsc2Us
Ci0gICAgICAgICAgIlNlY29uZCBwYXltZW50IHNoZWV0IHNob3VsZCBiZSBwZW5kaW5nIGJ1dCBp
cyByZXNvbHZlZC4iKTsKLSAgICAgIH0pCi0gICAgICAuY2F0Y2goZSA9PiB7Ci0gICAgICAgIGFz
c2VydF90cnVlKGZhbHNlLAotICAgICAgICAgICJTZWNvbmQgcGF5bWVudCBzaGVldCBzaG91bGQg
YmUgcGVuZGluZyBidXQgaXMgcmVqZWN0ZWQuIik7Ci0gICAgICB9KTsKLSAgICB9LCAiTmF2aWdh
dGluZyBhIHBvcHVwIGFzIGEgbmVzdGVkIGJyb3dzaW5nIGNvbnRleHQgc2V0cyAncGF5bWVudCBy
ZXF1ZXN0IGlzIHNob3dpbmcgYm9vbGVhbicgdG8gZmFsc2UuIik7CiAgIDwvc2NyaXB0PgogPC9i
b2R5PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy9wYXltZW50LXJlcXVlc3QvcGF5bWVudC1yZXF1ZXN0LWNhbm1ha2VwYXltZW50LW1ldGhv
ZC5odHRwcy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3BheW1lbnQtcmVxdWVzdC9wYXltZW50LXJlcXVlc3QtY2FubWFrZXBheW1lbnQt
bWV0aG9kLmh0dHBzLWV4cGVjdGVkLnR4dAppbmRleCBiNjg0ZDc3ODY1YWFkNDdmODVmMTMyOWMz
NTJhOWNkNzEwNjNkYjlmLi41NjYxODJmMWMzYTgwZGZjZjg4Y2QxMjRiMWVlZWQ5ZTg4YjFiY2M3
IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L3BheW1lbnQtcmVxdWVzdC9wYXltZW50LXJlcXVlc3QtY2FubWFrZXBheW1lbnQtbWV0aG9kLmh0
dHBzLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3BheW1lbnQtcmVxdWVzdC9wYXltZW50LXJlcXVlc3QtY2FubWFrZXBheW1lbnQt
bWV0aG9kLmh0dHBzLWV4cGVjdGVkLnR4dApAQCAtNCw2ICs0LDYgQEAgUEFTUyBJZiBwYXltZW50
IG1ldGhvZCBpZGVudGlmaWVyIGFyZSBzdXBwb3J0ZWQsIHJlc29sdmUgcHJvbWlzZSB3aXRoIHRy
dWUuCiBQQVNTIElmIHJlcXVlc3QuW1tzdGF0ZV1dIGlzICJjcmVhdGVkIiwgdGhlbiByZXR1cm4g
YSBwcm9taXNlIHRoYXQgcmVzb2x2ZXMgdG8gdHJ1ZSBmb3Iga25vd24gbWV0aG9kLgogUEFTUyBB
bGwgbWV0aG9kcyBhcmUgdW5zdXBwb3J0ZWQKIFBBU1MgTWl4IG9mIHN1cHBvcnRlZCBhbmQgdW5z
dXBwb3J0ZWQgbWV0aG9kcywgYXQgbGVhc3Qgb25lIG1ldGhvZCBpcyBzdXBwb3J0ZWQuCi1GQUlM
IElmIHJlcXVlc3QuW1tzdGF0ZV1dIGlzICJpbnRlcmFjdGl2ZSIsIHRoZW4gcmV0dXJuIGEgcHJv
bWlzZSByZWplY3RlZCB3aXRoIGFuICJJbnZhbGlkU3RhdGVFcnJvciIgRE9NRXhjZXB0aW9uLiBh
c3NlcnRfdW5yZWFjaGVkOiBTaG91bGQgaGF2ZSByZWplY3RlZDogdW5kZWZpbmVkIFJlYWNoZWQg
dW5yZWFjaGFibGUgY29kZQotRkFJTCBJZiByZXF1ZXN0Lltbc3RhdGVdXSBpcyAiY2xvc2VkIiwg
dGhlbiByZXR1cm4gYSBwcm9taXNlIHJlamVjdGVkIHdpdGggYW4gIkludmFsaWRTdGF0ZUVycm9y
IiBET01FeGNlcHRpb24uIHByb21pc2VfdGVzdDogVW5oYW5kbGVkIHJlamVjdGlvbiB3aXRoIHZh
bHVlOiBvYmplY3QgIkludmFsaWRTdGF0ZUVycm9yOiBUaGUgb2JqZWN0IGlzIGluIGFuIGludmFs
aWQgc3RhdGUuIgorUEFTUyBJZiByZXF1ZXN0Lltbc3RhdGVdXSBpcyAiaW50ZXJhY3RpdmUiLCB0
aGVuIHJldHVybiBhIHByb21pc2UgcmVqZWN0ZWQgd2l0aCBhbiAiSW52YWxpZFN0YXRlRXJyb3Ii
IERPTUV4Y2VwdGlvbi4KK1BBU1MgSWYgcmVxdWVzdC5bW3N0YXRlXV0gaXMgImNsb3NlZCIsIHRo
ZW4gcmV0dXJuIGEgcHJvbWlzZSByZWplY3RlZCB3aXRoIGFuICJJbnZhbGlkU3RhdGVFcnJvciIg
RE9NRXhjZXB0aW9uLgogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL3BheW1lbnQtcmVxdWVzdC9wYXltZW50LXJlcXVlc3QtaGFzZW5yb2xs
ZWRpbnN0cnVtZW50LW1ldGhvZC50ZW50YXRpdmUuaHR0cHMtZXhwZWN0ZWQudHh0IGIvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9wYXltZW50LXJlcXVlc3QvcGF5
bWVudC1yZXF1ZXN0LWhhc2Vucm9sbGVkaW5zdHJ1bWVudC1tZXRob2QudGVudGF0aXZlLmh0dHBz
LWV4cGVjdGVkLnR4dAppbmRleCA4MWFmNmIxNzA2NWEzZmViNzA3Mzk2NWExMzlhNGUzMjIzZjg1
MDQ4Li41MzkxYTViM2I3ODdhNzdjNWRkMzE3YmY2MjlhOWNjZDU2ZjZmOTkyIDEwMDY0NAotLS0g
YS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3BheW1lbnQtcmVx
dWVzdC9wYXltZW50LXJlcXVlc3QtaGFzZW5yb2xsZWRpbnN0cnVtZW50LW1ldGhvZC50ZW50YXRp
dmUuaHR0cHMtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvcGF5bWVudC1yZXF1ZXN0L3BheW1lbnQtcmVxdWVzdC1oYXNlbnJvbGxl
ZGluc3RydW1lbnQtbWV0aG9kLnRlbnRhdGl2ZS5odHRwcy1leHBlY3RlZC50eHQKQEAgLTIsNSAr
Miw1IEBAIElmIHlvdSBmaW5kIGEgYnVnZ3kgdGVzdCwgcGxlYXNlIGZpbGUgYSBidWcgYW5kIHRh
ZyBvbmUgb2YgdGhlIHN1Z2dlc3RlZCByZXZpZXdlCiAKIEZBSUwgaGFzRW5yb2xsZWRJbnN0cnVt
ZW50KCkgcmVzb2x2ZXMgdG8gZmFsc2UgZm9yIHVuc3VwcG9ydGVkIHBheW1lbnQgbWV0aG9kcy4g
cHJvbWlzZV90ZXN0OiBVbmhhbmRsZWQgcmVqZWN0aW9uIHdpdGggdmFsdWU6IG9iamVjdCAiVHlw
ZUVycm9yOiByZXF1ZXN0Lmhhc0Vucm9sbGVkSW5zdHJ1bWVudCBpcyBub3QgYSBmdW5jdGlvbi4g
KEluICdyZXF1ZXN0Lmhhc0Vucm9sbGVkSW5zdHJ1bWVudCgpJywgJ3JlcXVlc3QuaGFzRW5yb2xs
ZWRJbnN0cnVtZW50JyBpcyB1bmRlZmluZWQpIgogRkFJTCBJZiByZXF1ZXN0Lltbc3RhdGVdXSBp
cyAiaW50ZXJhY3RpdmUiLCB0aGVuIHJldHVybiBhIHByb21pc2UgcmVqZWN0ZWQgd2l0aCBhbiAi
SW52YWxpZFN0YXRlRXJyb3IiIERPTUV4Y2VwdGlvbi4gcHJvbWlzZV90ZXN0OiBVbmhhbmRsZWQg
cmVqZWN0aW9uIHdpdGggdmFsdWU6IG9iamVjdCAiVHlwZUVycm9yOiByZXF1ZXN0Lmhhc0Vucm9s
bGVkSW5zdHJ1bWVudCBpcyBub3QgYSBmdW5jdGlvbi4gKEluICdyZXF1ZXN0Lmhhc0Vucm9sbGVk
SW5zdHJ1bWVudCgpJywgJ3JlcXVlc3QuaGFzRW5yb2xsZWRJbnN0cnVtZW50JyBpcyB1bmRlZmlu
ZWQpIgotRkFJTCBJZiByZXF1ZXN0Lltbc3RhdGVdXSBpcyAiY2xvc2VkIiwgdGhlbiByZXR1cm4g
YSBwcm9taXNlIHJlamVjdGVkIHdpdGggYW4gIkludmFsaWRTdGF0ZUVycm9yIiBET01FeGNlcHRp
b24uIHByb21pc2VfdGVzdDogVW5oYW5kbGVkIHJlamVjdGlvbiB3aXRoIHZhbHVlOiBvYmplY3Qg
IkludmFsaWRTdGF0ZUVycm9yOiBUaGUgb2JqZWN0IGlzIGluIGFuIGludmFsaWQgc3RhdGUuIgor
RkFJTCBJZiByZXF1ZXN0Lltbc3RhdGVdXSBpcyAiY2xvc2VkIiwgdGhlbiByZXR1cm4gYSBwcm9t
aXNlIHJlamVjdGVkIHdpdGggYW4gIkludmFsaWRTdGF0ZUVycm9yIiBET01FeGNlcHRpb24uIHBy
b21pc2VfcmVqZWN0c19kb206IGZ1bmN0aW9uICJmdW5jdGlvbiAoKSB7IHRocm93IGUgfSIgdGhy
ZXcgb2JqZWN0ICJOb3RTdXBwb3J0ZWRFcnJvcjogVGhlIG9wZXJhdGlvbiBpcyBub3Qgc3VwcG9y
dGVkLiIgdGhhdCBpcyBub3QgYSBET01FeGNlcHRpb24gQWJvcnRFcnJvcjogcHJvcGVydHkgImNv
ZGUiIGlzIGVxdWFsIHRvIDksIGV4cGVjdGVkIDIwCiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvcGF5bWVudC1yZXF1ZXN0L3BheW1lbnQt
cmVxdWVzdC1zaG93LW1ldGhvZC5odHRwcy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3BheW1lbnQtcmVxdWVzdC9wYXltZW50LXJlcXVl
c3Qtc2hvdy1tZXRob2QuaHR0cHMtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmI4MTA0NmI4ZWMz
YjU4ZGFjZWIzZGIxMGIyMjI0MjA3OTY3MGU2NWUKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3BheW1lbnQtcmVxdWVzdC9wYXlt
ZW50LXJlcXVlc3Qtc2hvdy1tZXRob2QuaHR0cHMtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsOCBA
QAorSWYgeW91IGZpbmQgYSBidWdneSB0ZXN0LCBwbGVhc2UgZmlsZSBhIGJ1ZyBhbmQgdGFnIG9u
ZSBvZiB0aGUgc3VnZ2VzdGVkIHJldmlld2Vycy4KKworUEFTUyBDYWxsaW5nIHNob3coKSB3aXRo
b3V0IGJlaW5nIHRyaWdnZXJlZCBieSB1c2VyIGludGVyYWN0aW9uIHRocm93cworRkFJTCBUaHJv
d3MgaWYgdGhlIHByb21pc2UgW1tzdGF0ZV1dIGlzIG5vdCAnY3JlYXRlZCcuIHByb21pc2VfcmVq
ZWN0c19kb206IGZ1bmN0aW9uICJmdW5jdGlvbiAoKSB7IHRocm93IGUgfSIgdGhyZXcgb2JqZWN0
ICJTZWN1cml0eUVycm9yOiBzaG93KCkgbXVzdCBiZSB0cmlnZ2VyZWQgYnkgdXNlciBhY3RpdmF0
aW9uLiIgdGhhdCBpcyBub3QgYSBET01FeGNlcHRpb24gSW52YWxpZFN0YXRlRXJyb3I6IHByb3Bl
cnR5ICJjb2RlIiBpcyBlcXVhbCB0byAxOCwgZXhwZWN0ZWQgMTEKK0ZBSUwgSWYgdGhlIHVzZXIg
YWdlbnQncyAicGF5bWVudCByZXF1ZXN0IGlzIHNob3dpbmciIGJvb2xlYW4gaXMgdHJ1ZSwgdGhl
biByZXR1cm4gYSBwcm9taXNlIHJlamVjdGVkIHdpdGggYW4gIkFib3J0RXJyb3IiIERPTUV4Y2Vw
dGlvbi4gcHJvbWlzZV90ZXN0OiBVbmhhbmRsZWQgcmVqZWN0aW9uIHdpdGggdmFsdWU6IG9iamVj
dCAiSW52YWxpZFN0YXRlRXJyb3I6IFRoZSBvYmplY3QgaXMgaW4gYW4gaW52YWxpZCBzdGF0ZS4i
CitGQUlMIElmIHBheW1lbnQgbWV0aG9kIGNvbnN1bHRhdGlvbiBwcm9kdWNlcyBubyBzdXBwb3J0
ZWQgbWV0aG9kIG9mIHBheW1lbnQsIHRoZW4gcmV0dXJuIGEgcHJvbWlzZSByZWplY3RlZCB3aXRo
IGEgIk5vdFN1cHBvcnRlZEVycm9yIiBET01FeGNlcHRpb24uIHByb21pc2VfcmVqZWN0c19kb206
IGZ1bmN0aW9uICJmdW5jdGlvbiAoKSB7IHRocm93IGUgfSIgdGhyZXcgb2JqZWN0ICJBYm9ydEVy
cm9yOiBUaGUgb3BlcmF0aW9uIHdhcyBhYm9ydGVkLiIgdGhhdCBpcyBub3QgYSBET01FeGNlcHRp
b24gTm90U3VwcG9ydGVkRXJyb3I6IHByb3BlcnR5ICJjb2RlIiBpcyBlcXVhbCB0byAyMCwgZXhw
ZWN0ZWQgOQorRkFJTCBDYWxsaW5nIHNob3coKSBtdWx0aXBsZSB0aW1lcyBhbHdheXMgcmV0dXJu
cyBhIG5ldyBwcm9taXNlLiBwcm9taXNlX3Rlc3Q6IFVuaGFuZGxlZCByZWplY3Rpb24gd2l0aCB2
YWx1ZTogb2JqZWN0ICJJbnZhbGlkU3RhdGVFcnJvcjogVGhlIG9iamVjdCBpcyBpbiBhbiBpbnZh
bGlkIHN0YXRlLiIKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy9wYXltZW50LXJlcXVlc3QvcGF5bWVudC1yZXF1ZXN0LXNob3ctbWV0aG9k
Lmh0dHBzLmh0bWwgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L3BheW1lbnQtcmVxdWVzdC9wYXltZW50LXJlcXVlc3Qtc2hvdy1tZXRob2QuaHR0cHMuaHRtbApp
bmRleCA5Nzg4NzIxYWEzNTQ3MmQ0Nzk5YTQ0MjM5MjMwNjYwNzQ3NWFmYWUwLi4yMjc3OTc0NTYz
OTI2Nzc5NzQyNzc3ZTliMTkzNWFlNmM4OTRiODljIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3BheW1lbnQtcmVxdWVzdC9wYXltZW50LXJl
cXVlc3Qtc2hvdy1tZXRob2QuaHR0cHMuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3BheW1lbnQtcmVxdWVzdC9wYXltZW50LXJlcXVlc3Qtc2hv
dy1tZXRob2QuaHR0cHMuaHRtbApAQCAtNDYsMjIgKzQ2LDIwIEBAIHByb21pc2VfdGVzdChhc3lu
YyAodCkgPT4gewogICAgIHJlcXVlc3QuYWJvcnQoKTsKICAgfSwgMjAwMCk7CiAKLSAgYXdhaXQg
cHJvbWlzZV9yZWplY3RzX2RvbSh0LCAiTm90QWxsb3dlZEVycm9yIiwgYWNjZXB0UHJvbWlzZSk7
CisgIGF3YWl0IHByb21pc2VfcmVqZWN0c19kb20odCwgIlNlY3VyaXR5RXJyb3IiLCBhY2NlcHRQ
cm9taXNlKTsKIH0sIGBDYWxsaW5nIHNob3coKSB3aXRob3V0IGJlaW5nIHRyaWdnZXJlZCBieSB1
c2VyIGludGVyYWN0aW9uIHRocm93c2ApOwogCiBwcm9taXNlX3Rlc3QoYXN5bmMgKHQpID0+IHsK
ICAgY29uc3QgcmVxdWVzdCA9IG5ldyBQYXltZW50UmVxdWVzdChkZWZhdWx0TWV0aG9kcywgZGVm
YXVsdERldGFpbHMpOwotICBhd2FpdCB0ZXN0X2RyaXZlci5ibGVzcygKLSAgICAidGVzdDogdGhy
b3dzIGlmIHRoZSBwcm9taXNlIFtbc3RhdGVdXSBpcyBub3QgJ2NyZWF0ZWQnIgotICApOworICBh
d2FpdCBwcm9taXNlX3JlamVjdHNfZG9tKHQsICJTZWN1cml0eUVycm9yIiwgcmVxdWVzdC5zaG93
KCkpOworCisgIGF3YWl0IHRlc3RfZHJpdmVyLmJsZXNzKCk7CiAgIGNvbnN0IGFjY2VwdFByb21p
c2UgPSByZXF1ZXN0LnNob3coKTsgLy8gU2V0cyBzdGF0ZSB0byAiaW50ZXJhY3RpdmUiCi0gIC8v
IE5vIHVzZXIgYWN0aXZhdGlvbi4uLgotICBhd2FpdCBwcm9taXNlX3JlamVjdHNfZG9tKHQsICJO
b3RBbGxvd2VkRXJyb3IiLCByZXF1ZXN0LnNob3coKSk7CiAKLSAgLy8gR2V0IHVzZXIgYWN0aXZh
dGlvbgotICBhd2FpdCB0ZXN0X2RyaXZlci5ibGVzcygKLSAgICAidGVzdDogdGhyb3dzIGlmIHRo
ZSBwcm9taXNlIFtbc3RhdGVdXSBpcyBub3QgJ2NyZWF0ZWQnIgotICApOworICBhd2FpdCBwcm9t
aXNlX3JlamVjdHNfZG9tKHQsICJJbnZhbGlkU3RhdGVFcnJvciIsIHJlcXVlc3Quc2hvdygpKTsK
KworICAvLyBXaXRoIHVzZXIgYWN0aXZhdGlvbiwgYnV0IGFscmVhZHkgc2hvd2luZyB0aGUgc2hl
ZXQuLi4KKyAgYXdhaXQgdGVzdF9kcml2ZXIuYmxlc3MoKTsKICAgYXdhaXQgcHJvbWlzZV9yZWpl
Y3RzX2RvbSh0LCAiSW52YWxpZFN0YXRlRXJyb3IiLCByZXF1ZXN0LnNob3coKSk7CiAKICAgYXdh
aXQgcmVxdWVzdC5hYm9ydCgpOwpAQCAtNzAsMTYgKzY4LDE1IEBAIHByb21pc2VfdGVzdChhc3lu
YyAodCkgPT4gewogCiBwcm9taXNlX3Rlc3QoYXN5bmMgKHQpID0+IHsKICAgY29uc3QgcmVxdWVz
dDEgPSBuZXcgUGF5bWVudFJlcXVlc3QoZGVmYXVsdE1ldGhvZHMsIGRlZmF1bHREZXRhaWxzKTsK
LSAgY29uc3QgcmVxdWVzdDIgPSBuZXcgUGF5bWVudFJlcXVlc3QoZGVmYXVsdE1ldGhvZHMsIGRl
ZmF1bHREZXRhaWxzKTsKLQotICBhd2FpdCB0ZXN0X2RyaXZlci5ibGVzcygicGF5bWVudCByZXF1
ZXN0Iik7CisgIGF3YWl0IHRlc3RfZHJpdmVyLmJsZXNzKCk7CiAgIGNvbnN0IGFjY2VwdFByb21p
c2UxID0gcmVxdWVzdDEuc2hvdygpOwogCiAgIC8vIFVzZXIgYWN0aXZhdGlvbiBjb25zdW1lZCwg
c28uLi4KLSAgYXdhaXQgcHJvbWlzZV9yZWplY3RzX2RvbSh0LCAiTm90QWxsb3dlZEVycm9yIiwg
cmVxdWVzdDIuc2hvdygpKTsKKyAgY29uc3QgcmVxdWVzdDIgPSBuZXcgUGF5bWVudFJlcXVlc3Qo
ZGVmYXVsdE1ldGhvZHMsIGRlZmF1bHREZXRhaWxzKTsKKyAgYXdhaXQgcHJvbWlzZV9yZWplY3Rz
X2RvbSh0LCAiU2VjdXJpdHlFcnJvciIsIHJlcXVlc3QyLnNob3coKSk7CiAKICAgLy8gUGF5bWVu
dCByZXF1ZXN0IGFscmVhZHkgc2hvd2luZywgc28uLi4KLSAgYXdhaXQgdGVzdF9kcml2ZXIuYmxl
c3MoInBheW1lbnQgcmVxdWVzdCIpOworICBhd2FpdCB0ZXN0X2RyaXZlci5ibGVzcygpOwogICBh
d2FpdCBwcm9taXNlX3JlamVjdHNfZG9tKHQsICJBYm9ydEVycm9yIiwgcmVxdWVzdDIuc2hvdygp
KTsKIAogICBhd2FpdCByZXF1ZXN0MS5hYm9ydCgpOwpAQCAtOTEsMjcgKzg4LDI3IEBAIHByb21p
c2VfdGVzdChhc3luYyAodCkgPT4gewogICAgIFt7IHN1cHBvcnRlZE1ldGhvZHM6ICJ0aGlzLWlz
LW5vdC1zdXBwb3J0ZWQiIH1dLAogICAgIGRlZmF1bHREZXRhaWxzCiAgICk7Ci0gIGF3YWl0IHRl
c3RfZHJpdmVyLmJsZXNzKGB0ZXN0OiByZWplY3QgcHJvbWlzZSB3aXRoICJOb3RTdXBwb3J0ZWRF
cnJvciJgKTsKKyAgYXdhaXQgdGVzdF9kcml2ZXIuYmxlc3MoKTsKICAgY29uc3QgYWNjZXB0UHJv
bWlzZSA9IHJlcXVlc3Quc2hvdygpOwogICBhd2FpdCBwcm9taXNlX3JlamVjdHNfZG9tKHQsICJO
b3RTdXBwb3J0ZWRFcnJvciIsIGFjY2VwdFByb21pc2UpOwogfSwgYElmIHBheW1lbnQgbWV0aG9k
IGNvbnN1bHRhdGlvbiBwcm9kdWNlcyBubyBzdXBwb3J0ZWQgbWV0aG9kIG9mIHBheW1lbnQsIHRo
ZW4gcmV0dXJuIGEgcHJvbWlzZSByZWplY3RlZCB3aXRoIGEgIk5vdFN1cHBvcnRlZEVycm9yIiBE
T01FeGNlcHRpb24uYCk7CiAKIHByb21pc2VfdGVzdChhc3luYyAodCkgPT4gewogICBjb25zdCBy
ZXF1ZXN0ID0gbmV3IFBheW1lbnRSZXF1ZXN0KGRlZmF1bHRNZXRob2RzLCBkZWZhdWx0RGV0YWls
cyk7Ci0gIGF3YWl0IHRlc3RfZHJpdmVyLmJsZXNzKCJjYWxsIHNob3coKSIpOworICBhd2FpdCB0
ZXN0X2RyaXZlci5ibGVzcygpOwogICBjb25zdCBwMSA9IHJlcXVlc3Quc2hvdygpOwotICBhd2Fp
dCB0ZXN0X2RyaXZlci5ibGVzcygiY2FsbCBzaG93KCkiKTsKKyAgYXdhaXQgdGVzdF9kcml2ZXIu
Ymxlc3MoKTsKICAgY29uc3QgcDIgPSByZXF1ZXN0LnNob3coKTsKLSAgYXdhaXQgdGVzdF9kcml2
ZXIuYmxlc3MoImNhbGwgc2hvdygpIik7CisgIGF3YWl0IHRlc3RfZHJpdmVyLmJsZXNzKCk7CiAg
IGNvbnN0IHAzID0gcmVxdWVzdC5zaG93KCk7CisgIGF3YWl0IHJlcXVlc3QuYWJvcnQoKTsKKwog
ICBjb25zdCBwcm9taXNlcyA9IG5ldyBTZXQoW3AxLCBwMiwgcDNdKTsKICAgYXNzZXJ0X2VxdWFs
cyhwcm9taXNlcy5zaXplLCAzLCAiTXVzdCBoYXZlIHRocmVlIHVuaXF1ZSBvYmplY3RzIik7CiAK
KyAgYXdhaXQgcHJvbWlzZV9yZWplY3RzX2RvbSh0LCAiQWJvcnRFcnJvciIsIHAxKTsKICAgYXdh
aXQgcHJvbWlzZV9yZWplY3RzX2RvbSh0LCAiSW52YWxpZFN0YXRlRXJyb3IiLCBwMik7CiAgIGF3
YWl0IHByb21pc2VfcmVqZWN0c19kb20odCwgIkludmFsaWRTdGF0ZUVycm9yIiwgcDMpOwotCi0g
IGF3YWl0IHJlcXVlc3QuYWJvcnQoKTsKLSAgYXdhaXQgcHJvbWlzZV9yZWplY3RzX2RvbSh0LCAi
QWJvcnRFcnJvciIsIHAxKTsKIH0sICJDYWxsaW5nIHNob3coKSBtdWx0aXBsZSB0aW1lcyBhbHdh
eXMgcmV0dXJucyBhIG5ldyBwcm9taXNlLiIpOwogPC9zY3JpcHQ+CiA8c21hbGw+CkBAIC0xMjAs
NSArMTE3LDYgQEAgcHJvbWlzZV90ZXN0KGFzeW5jICh0KSA9PiB7CiAgIHRhZyBvbmUgb2YgdGhl
CiAgIDxhCiAgICAgaHJlZj0iaHR0cHM6Ly9naXRodWIuY29tL3dlYi1wbGF0Zm9ybS10ZXN0cy93
cHQvYmxvYi9tYXN0ZXIvcGF5bWVudC1yZXF1ZXN0L01FVEEueW1sIgotICAgID5zdWdnZXN0ZWQg
cmV2aWV3ZXJzPC9hPi4KKyAgICA+c3VnZ2VzdGVkIHJldmlld2VyczwvYQorICA+LgogPC9zbWFs
bD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvcGF5bWVudC1yZXF1ZXN0L3JlamVjdHNfaWZfbm90X2FjdGl2ZS5odHRwcy5odG1sIGIvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9wYXltZW50LXJlcXVlc3Qv
cmVqZWN0c19pZl9ub3RfYWN0aXZlLmh0dHBzLmh0bWwKaW5kZXggODljMzQwN2UzZDBiYzVlYmFm
YzNjN2MwZDAwMTUwOTkxMjUxYTEzMi4uODRmMjk5ZGI5YmUxZGE0ZDg5NGRkMzJkYjIyY2UyZmNk
NjczY2FmYiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy9wYXltZW50LXJlcXVlc3QvcmVqZWN0c19pZl9ub3RfYWN0aXZlLmh0dHBzLmh0bWwK
KysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9wYXltZW50
LXJlcXVlc3QvcmVqZWN0c19pZl9ub3RfYWN0aXZlLmh0dHBzLmh0bWwKQEAgLTEsNyArMSw3IEBA
CiA8IURPQ1RZUEUgaHRtbD4KLTxtZXRhIGNoYXJzZXQ9dXRmLTg+Cis8bWV0YSBjaGFyc2V0PSJ1
dGYtOCIgLz4KIDx0aXRsZT5QYXltZW50UmVxdWVzdCBzaG93KCkgcmVqZWN0cyBpZiBkb2MgaXMg
bm90IGZ1bGx5IGFjdGl2ZTwvdGl0bGU+Ci08bGluayByZWw9ImhlbHAiIGhyZWY9Imh0dHBzOi8v
dzNjLmdpdGh1Yi5pby9wYXltZW50LXJlcXVlc3QvI3Nob3ctbWV0aG9kIj4KKzxsaW5rIHJlbD0i
aGVscCIgaHJlZj0iaHR0cHM6Ly93M2MuZ2l0aHViLmlvL3BheW1lbnQtcmVxdWVzdC8jc2hvdy1t
ZXRob2QiIC8+CiA8c2NyaXB0IHNyYz0iL3Jlc291cmNlcy90ZXN0aGFybmVzcy5qcyI+PC9zY3Jp
cHQ+CiA8c2NyaXB0IHNyYz0iL3Jlc291cmNlcy90ZXN0aGFybmVzc3JlcG9ydC5qcyI+PC9zY3Jp
cHQ+CiA8c2NyaXB0IHNyYz0iL3Jlc291cmNlcy90ZXN0ZHJpdmVyLmpzIj48L3NjcmlwdD4KQEAg
LTE2LDcgKzE2LDcgQEAgY29uc3QgYXBwbGVQYXkgPSBPYmplY3QuZnJlZXplKHsKICAgICBjb3Vu
dHJ5Q29kZTogIlVTIiwKICAgICBtZXJjaGFudENhcGFiaWxpdGllczogWyJzdXBwb3J0czNEUyJd
LAogICAgIHN1cHBvcnRlZE5ldHdvcmtzOiBbInZpc2EiXSwKLSAgfQorICB9LAogfSk7CiBjb25z
dCB2YWxpZE1ldGhvZCA9IE9iamVjdC5mcmVlemUoewogICBzdXBwb3J0ZWRNZXRob2RzOiAiYmFz
aWMtY2FyZCIsCkBAIC0zNCw2NCArMzQsNTYgQEAgY29uc3QgdmFsaWREZXRhaWxzID0gT2JqZWN0
LmZyZWV6ZSh7CiAgIHRvdGFsOiB2YWxpZFRvdGFsLAogfSk7CiAKLWZ1bmN0aW9uIGdldExvYWRl
ZFBheW1lbnRSZXF1ZXN0KGlmcmFtZSwgdXJsKSB7Ci0gIHJldHVybiBuZXcgUHJvbWlzZShyZXNv
bHZlID0+IHsKLSAgICBpZnJhbWUuYWRkRXZlbnRMaXN0ZW5lcigKLSAgICAgICJsb2FkIiwKLSAg
ICAgICgpID0+IHsKLSAgICAgICAgY29uc3QgeyBQYXltZW50UmVxdWVzdCB9ID0gaWZyYW1lLmNv
bnRlbnRXaW5kb3c7Ci0gICAgICAgIGNvbnN0IHJlcXVlc3QgPSBuZXcgUGF5bWVudFJlcXVlc3Qo
dmFsaWRNZXRob2RzLCB2YWxpZERldGFpbHMpOwotICAgICAgICByZXNvbHZlKHJlcXVlc3QpOwot
ICAgICAgfSwKLSAgICAgIHsgb25jZTogdHJ1ZSB9Ci0gICAgKTsKK2FzeW5jIGZ1bmN0aW9uIGdl
dExvYWRlZFBheW1lbnRSZXF1ZXN0KGlmcmFtZSwgdXJsKSB7CisgIGF3YWl0IG5ldyBQcm9taXNl
KChyZXNvbHZlKSA9PiB7CisgICAgaWZyYW1lLmFkZEV2ZW50TGlzdGVuZXIoImxvYWQiLCByZXNv
bHZlLCB7IG9uY2U6IHRydWUgfSk7CiAgICAgaWZyYW1lLnNyYyA9IHVybDsKICAgfSk7CisgIGNv
bnN0IHsgUGF5bWVudFJlcXVlc3QgfSA9IGlmcmFtZS5jb250ZW50V2luZG93OworICBjb25zdCBy
ZXF1ZXN0ID0gbmV3IFBheW1lbnRSZXF1ZXN0KHZhbGlkTWV0aG9kcywgdmFsaWREZXRhaWxzKTsK
KyAgcmV0dXJuIHJlcXVlc3Q7CiB9CiAKLXByb21pc2VfdGVzdChhc3luYyB0ID0+IHsKK3Byb21p
c2VfdGVzdChhc3luYyAodCkgPT4gewogICBjb25zdCBpZnJhbWUgPSBkb2N1bWVudC5jcmVhdGVF
bGVtZW50KCJpZnJhbWUiKTsKLSAgaWZyYW1lLmFsbG93ID0gInBheW1lbnQiOwogICBkb2N1bWVu
dC5ib2R5LmFwcGVuZENoaWxkKGlmcmFtZSk7CiAgIC8vIE1ha2UgYSByZXF1ZXN0IGluIHRoZSBp
ZnJhbWUuCiAgIGNvbnN0IHJlcXVlc3QgPSBhd2FpdCBnZXRMb2FkZWRQYXltZW50UmVxdWVzdCgK
ICAgICBpZnJhbWUsCi0gICAgIi9wYXltZW50LXJlcXVlc3QvcmVzb3VyY2VzL3BhZ2UxLmh0bWwi
CisgICAgInJlc291cmNlcy9wYWdlMS5odG1sIgogICApOwotICBjb25zdCBbc2hvd1Byb21pc2Vd
ID0gYXdhaXQgdGVzdF9kcml2ZXIuYmxlc3MoInNob3cgcGF5bWVudCByZXF1ZXN0IiwgKCkgPT4g
ewotICAgIHJldHVybiBbcmVxdWVzdC5zaG93KCldOwotICB9KTsKLSAgLy8gTmF2aWdhdGUgdGhl
IGlmcmFtZSB0byBhIG5ldyBsb2NhdGlvbi4gV2FpdCBmb3IgdGhlIGxvYWQgZXZlbnQgdG8gZmly
ZS4KLSAgYXdhaXQgbmV3IFByb21pc2UocmVzb2x2ZSA9PiB7Ci0gICAgaWZyYW1lLmFkZEV2ZW50
TGlzdGVuZXIoImxvYWQiLCByZXNvbHZlKTsKLSAgICBpZnJhbWUuc3JjID0gIi9wYXltZW50LXJl
cXVlc3QvcmVzb3VyY2VzL3BhZ2UyLmh0bWwiOwotICAgIC8vIEFuIGltcGxlbWVudGF0aW9uIG1h
eSBvcHRpb25hbGx5IHJlamVjdCB8c2hvd1Byb21pc2V8LgotICAgIHNob3dQcm9taXNlLmNhdGNo
KGUgPT4ge30pOwotICB9KTsKKyAgYXdhaXQgdGVzdF9kcml2ZXIuYmxlc3MoInNob3cgcGF5bWVu
dCByZXF1ZXN0Iik7CisgIGNvbnN0IHNob3dQcm9taXNlID0gcmVxdWVzdC5zaG93KCk7CisgIGNv
bnN0IGZpcnN0Q3RvciA9IGlmcmFtZS5jb250ZW50V2luZG93LkRPTUV4Y2VwdGlvbjsKIAotICAv
LyBUaGUgbmF2aWdhdG9uIHNob3VsZCBoYXZlIGRpc21pc3NlZCB0aGUgcHJldmlvdXMgcGF5bWVu
dCByZXF1ZXN0IHNvIGl0Ci0gIC8vIHNob3VsZCBiZSBwb3NzaWJsZSB0byBzaG93IGFub3RoZXIg
b25lIG5vdy4KLSAgY29uc3QgcmVxdWVzdDIgPSBuZXcgaWZyYW1lLmNvbnRlbnRXaW5kb3cuUGF5
bWVudFJlcXVlc3QoCi0gICAgdmFsaWRNZXRob2RzLCB2YWxpZERldGFpbHMpOwotICBjb25zdCBb
c2hvd1Byb21pc2UyXSA9IGF3YWl0IHRlc3RfZHJpdmVyLmJsZXNzKAotICAgICJzaG93IDJuZCBw
YXltZW50IHJlcXVlc3QiLCAoKSA9PiB7Ci0gICAgICByZXR1cm4gW3JlcXVlc3QyLnNob3coKV07
Ci0gICAgfSk7CisgIC8vIE5hdmlnYXRlIHRoZSBpZnJhbWUgdG8gYSBuZXcgbG9jYXRpb24uIFdh
aXQgZm9yIHRoZSBsb2FkIGV2ZW50IHRvIGZpcmUuCisgIGNvbnN0IHJlcXVlc3QyID0gYXdhaXQg
Z2V0TG9hZGVkUGF5bWVudFJlcXVlc3QoCisgICAgaWZyYW1lLAorICAgICJyZXNvdXJjZXMvcGFn
ZTIuaHRtbCIKKyAgKTsKIAotICAvLyBTdG9wIHRoZSB0ZXN0IGluIDEgc2Vjb25kIGlmIGl0IGhh
cyBub3QgcmVqZWN0ZWQsIHdoaWNoIG1lYW5zIHRoYXQgYQotICAvLyBwYXltZW50IHNoZWV0IGlz
IHN1Y2Nlc3NmdWxseSBzaG93bi4KLSAgdC5zdGVwX3RpbWVvdXQoYXN5bmMgKCkgPT4gewotICAg
IC8vIFdlIGFyZSBkb25lLCBzbyBjbGVhbiB1cC4KLSAgICBpZnJhbWUucmVtb3ZlKCk7Ci0gICAg
dC5kb25lKCk7Ci0gIH0sIDEwMDApOworICBhd2FpdCBwcm9taXNlX3JlamVjdHNfZG9tKAorICAg
IHQsCisgICAgIkFib3J0RXJyb3IiLAorICAgIGZpcnN0Q3RvciwKKyAgICBzaG93UHJvbWlzZSwK
KyAgICAiU2hvdyBwcm9taXNlIHNob3VsZCBhYm9ydC4iCisgICk7CiAKLSAgLy8gVGhpcyBzaG91
bGQgbmV2ZXIgc2V0dGxlIGJlY2F1c2UgdGhlIHBheW1lbnQgc2hlZXQgc2hvdWxkIGJlIHBlbmRp
bmcuCi0gIGF3YWl0IHNob3dQcm9taXNlMi50aGVuKCgpID0+IHsKLSAgICBhc3NlcnRfdHJ1ZShm
YWxzZSwgIlNlY29uZCBwYXltZW50IHNob3VsZCBiZSBwZW5kaW5nIGJ1dCBpcyByZXNvbHZlZC4i
KTsKLSAgfSkKLSAgLmNhdGNoKGUgPT4gewotICAgIGFzc2VydF90cnVlKGZhbHNlLCAiU2Vjb25k
IHBheW1lbnQgc2hvdWxkIGJlIHBlbmRpbmcgYnV0IGlzIHJlamVjdGVkLiIpOwotICB9KTsKKyAg
Ly8gVGhlIG5hdmlnYXRpb24gZGlzbWlzc2VzIHRoZSBwcmV2aW91cyBwYXltZW50IHJlcXVlc3Qg
c28gaXQKKyAgLy8gbm93IHBvc3NpYmxlIHRvIHNob3cgYW5vdGhlciBvbmUuCisgIGF3YWl0IHRl
c3RfZHJpdmVyLmJsZXNzKCJzaG93IDJuZCBwYXltZW50IHJlcXVlc3QiKTsKKyAgY29uc3Qgc2hv
d1Byb21pc2UyID0gcmVxdWVzdDIuc2hvdygpOworICBjb25zdCBzZWNvbmRDdG9yID0gaWZyYW1l
LmNvbnRlbnRXaW5kb3cuRE9NRXhjZXB0aW9uOworICAvLyBubyBsb25nZXIgZnVsbHkgYWN0aXZl
CisgIGlmcmFtZS5yZW1vdmUoKTsKKyAgYXdhaXQgcHJvbWlzZV9yZWplY3RzX2RvbSgKKyAgICB0
LAorICAgICJBYm9ydEVycm9yIiwKKyAgICBzZWNvbmRDdG9yLAorICAgIHNob3dQcm9taXNlMiwK
KyAgICAiU2hvdyBwcm9taXNlIHNob3VsZCBhYm9ydC4iCisgICk7CiB9LCAiSWYgYSBwYXltZW50
IHJlcXVlc3QgaXMgc2hvd2luZywgYnV0IGl0cyBkb2N1bWVudCBpcyBuYXZpZ2F0ZWQgYXdheSAo
c28gbm8gbG9uZ2VyIGZ1bGx5IGFjdGl2ZSksIHRoZSBwYXltZW50IHNoZWV0IGlzIGRpc21pc3Nl
ZC4iKTsKIDwvc2NyaXB0PgorPC9ib2R5PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9wYXltZW50LXJlcXVlc3Qvc2hvdy1tZXRob2Qtb3B0
aW9uYWwtcHJvbWlzZS1yZWplY3RzLmh0dHBzLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvcGF5bWVudC1yZXF1ZXN0L3Nob3ctbWV0aG9k
LW9wdGlvbmFsLXByb21pc2UtcmVqZWN0cy5odHRwcy1leHBlY3RlZC50eHQKaW5kZXggODBlZDJm
ZTdmODc3ZDEzZTNiMzgwN2RjOWY3NzBhMjI5MTJkYzg4MC4uYWVlOTYzNmJhMzAwYzQyOThkNGEw
YmY0NmQzODIzYTFlMzUyYjQ3NiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy9wYXltZW50LXJlcXVlc3Qvc2hvdy1tZXRob2Qtb3B0aW9uYWwt
cHJvbWlzZS1yZWplY3RzLmh0dHBzLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3BheW1lbnQtcmVxdWVzdC9zaG93LW1ldGhvZC1v
cHRpb25hbC1wcm9taXNlLXJlamVjdHMuaHR0cHMtZXhwZWN0ZWQudHh0CkBAIC0xLDMwICsxLDEy
IEBACiAKLUZBSUwgUmVqZWN0aW9uIG9mIGRldGFpbHNQcm9taXNlIG11c3QgYWJvcnQgdGhlIHVw
ZGF0ZSB3aXRoIGFuICdBYm9ydEVycm9yJyBET01FeGNlcHRpb24uIHByb21pc2VfcmVqZWN0c19k
b206IGJhZERldGFpbHMgbXVzdCBjYXVzZSBhY2NlcHRQcm9taXNlIHRvIHJlamVjdCB3aXRoIGV4
cGVjdGVkRXJyb3IgZnVuY3Rpb24gImZ1bmN0aW9uICgpIHsgdGhyb3cgZSB9IiB0aHJldyBvYmpl
Y3QgIlNlY3VyaXR5RXJyb3I6IHNob3coKSBtdXN0IGJlIHRyaWdnZXJlZCBieSB1c2VyIGFjdGl2
YXRpb24uIiB0aGF0IGlzIG5vdCBhIERPTUV4Y2VwdGlvbiBBYm9ydEVycm9yOiBwcm9wZXJ0eSAi
Y29kZSIgaXMgZXF1YWwgdG8gMTgsIGV4cGVjdGVkIDIwCi1GQUlMIFRvdGFsIGluIHRoZSB1cGRh
dGUgaXMgYSBzdHJpbmcsIHNvIGNvbnZlcnRpbmcgdG8gSURMIG11c3QgYWJvcnQgdGhlIHVwZGF0
ZSB3aXRoIGEgVHlwZUVycm9yLiBwcm9taXNlX3JlamVjdHNfanM6IGJhZERldGFpbHMgbXVzdCBj
YXVzZSBhY2NlcHRQcm9taXNlIHRvIHJlamVjdCB3aXRoIGV4cGVjdGVkRXJyb3IgZnVuY3Rpb24g
ImZ1bmN0aW9uICgpIHsgdGhyb3cgZSB9IiB0aHJldyBvYmplY3QgIlNlY3VyaXR5RXJyb3I6IHNo
b3coKSBtdXN0IGJlIHRyaWdnZXJlZCBieSB1c2VyIGFjdGl2YXRpb24uIiAoIlNlY3VyaXR5RXJy
b3IiKSBleHBlY3RlZCBpbnN0YW5jZSBvZiBmdW5jdGlvbiAiZnVuY3Rpb24gVHlwZUVycm9yKCkg
ewotICAgIFtuYXRpdmUgY29kZV0KLX0iICgiVHlwZUVycm9yIikKLUZBSUwgVG90YWwgaXMgcmVj
dXJzaXZlLCBzbyBjb252ZXJ0aW5nIHRvIElETCBtdXN0IGFib3J0IHRoZSB1cGRhdGUgd2l0aCBh
IFR5cGVFcnJvci4gcHJvbWlzZV9yZWplY3RzX2pzOiBiYWREZXRhaWxzIG11c3QgY2F1c2UgYWNj
ZXB0UHJvbWlzZSB0byByZWplY3Qgd2l0aCBleHBlY3RlZEVycm9yIGZ1bmN0aW9uICJmdW5jdGlv
biAoKSB7IHRocm93IGUgfSIgdGhyZXcgb2JqZWN0ICJTZWN1cml0eUVycm9yOiBzaG93KCkgbXVz
dCBiZSB0cmlnZ2VyZWQgYnkgdXNlciBhY3RpdmF0aW9uLiIgKCJTZWN1cml0eUVycm9yIikgZXhw
ZWN0ZWQgaW5zdGFuY2Ugb2YgZnVuY3Rpb24gImZ1bmN0aW9uIFR5cGVFcnJvcigpIHsKLSAgICBb
bmF0aXZlIGNvZGVdCi19IiAoIlR5cGVFcnJvciIpCi1GQUlMIFVwZGF0aW5nIHdpdGggYSBuZWdh
dGl2ZSB0b3RhbCByZXN1bHRzIGluIGEgVHlwZUVycm9yLiBwcm9taXNlX3JlamVjdHNfanM6IGJh
ZERldGFpbHMgbXVzdCBjYXVzZSBhY2NlcHRQcm9taXNlIHRvIHJlamVjdCB3aXRoIGV4cGVjdGVk
RXJyb3IgZnVuY3Rpb24gImZ1bmN0aW9uICgpIHsgdGhyb3cgZSB9IiB0aHJldyBvYmplY3QgIlNl
Y3VyaXR5RXJyb3I6IHNob3coKSBtdXN0IGJlIHRyaWdnZXJlZCBieSB1c2VyIGFjdGl2YXRpb24u
IiAoIlNlY3VyaXR5RXJyb3IiKSBleHBlY3RlZCBpbnN0YW5jZSBvZiBmdW5jdGlvbiAiZnVuY3Rp
b24gVHlwZUVycm9yKCkgewotICAgIFtuYXRpdmUgY29kZV0KLX0iICgiVHlwZUVycm9yIikKLUZB
SUwgVXBkYXRpbmcgd2l0aCBhIGRpc3BsYXlJdGVtIHdpdGggYW4gaW52YWxpZCBjdXJyZW5jeSBy
ZXN1bHRzIGluIFJhbmdlRXJyb3IuIHByb21pc2VfcmVqZWN0c19qczogYmFkRGV0YWlscyBtdXN0
IGNhdXNlIGFjY2VwdFByb21pc2UgdG8gcmVqZWN0IHdpdGggZXhwZWN0ZWRFcnJvciBmdW5jdGlv
biAiZnVuY3Rpb24gKCkgeyB0aHJvdyBlIH0iIHRocmV3IG9iamVjdCAiU2VjdXJpdHlFcnJvcjog
c2hvdygpIG11c3QgYmUgdHJpZ2dlcmVkIGJ5IHVzZXIgYWN0aXZhdGlvbi4iICgiU2VjdXJpdHlF
cnJvciIpIGV4cGVjdGVkIGluc3RhbmNlIG9mIGZ1bmN0aW9uICJmdW5jdGlvbiBSYW5nZUVycm9y
KCkgewotICAgIFtuYXRpdmUgY29kZV0KLX0iICgiUmFuZ2VFcnJvciIpCi1GQUlMIFVwZGF0aW5n
IHdpdGggZHVwbGljYXRlIHNoaXBwaW5nT3B0aW9ucyAoc2FtZSBJRHMpIHJlc3VsdHMgaW4gYSBU
eXBlRXJyb3IuIHByb21pc2VfcmVqZWN0c19qczogYmFkRGV0YWlscyBtdXN0IGNhdXNlIGFjY2Vw
dFByb21pc2UgdG8gcmVqZWN0IHdpdGggZXhwZWN0ZWRFcnJvciBmdW5jdGlvbiAiZnVuY3Rpb24g
KCkgeyB0aHJvdyBlIH0iIHRocmV3IG9iamVjdCAiU2VjdXJpdHlFcnJvcjogc2hvdygpIG11c3Qg
YmUgdHJpZ2dlcmVkIGJ5IHVzZXIgYWN0aXZhdGlvbi4iICgiU2VjdXJpdHlFcnJvciIpIGV4cGVj
dGVkIGluc3RhbmNlIG9mIGZ1bmN0aW9uICJmdW5jdGlvbiBUeXBlRXJyb3IoKSB7Ci0gICAgW25h
dGl2ZSBjb2RlXQotfSIgKCJUeXBlRXJyb3IiKQotRkFJTCBVcGRhdGluZyB3aXRoIGEgc2hpcHBp
bmdPcHRpb24gd2l0aCBhbiBpbnZhbGlkIGN1cnJlbmN5IHZhbHVlIHJlc3VsdHMgaW4gYSBSYW5n
RXJyb3IuIHByb21pc2VfcmVqZWN0c19qczogYmFkRGV0YWlscyBtdXN0IGNhdXNlIGFjY2VwdFBy
b21pc2UgdG8gcmVqZWN0IHdpdGggZXhwZWN0ZWRFcnJvciBmdW5jdGlvbiAiZnVuY3Rpb24gKCkg
eyB0aHJvdyBlIH0iIHRocmV3IG9iamVjdCAiU2VjdXJpdHlFcnJvcjogc2hvdygpIG11c3QgYmUg
dHJpZ2dlcmVkIGJ5IHVzZXIgYWN0aXZhdGlvbi4iICgiU2VjdXJpdHlFcnJvciIpIGV4cGVjdGVk
IGluc3RhbmNlIG9mIGZ1bmN0aW9uICJmdW5jdGlvbiBSYW5nZUVycm9yKCkgewotICAgIFtuYXRp
dmUgY29kZV0KLX0iICgiUmFuZ2VFcnJvciIpCi1GQUlMIE11c3QgdGhyb3cgYSBSYW5nZUVycm9y
IHdoZW4gYSBtb2RpZmllcidzIHRvdGFsIGl0ZW0gaGFzIGFuIGludmFsaWQgY3VycmVuY3kuIHBy
b21pc2VfcmVqZWN0c19qczogYmFkRGV0YWlscyBtdXN0IGNhdXNlIGFjY2VwdFByb21pc2UgdG8g
cmVqZWN0IHdpdGggZXhwZWN0ZWRFcnJvciBmdW5jdGlvbiAiZnVuY3Rpb24gKCkgeyB0aHJvdyBl
IH0iIHRocmV3IG9iamVjdCAiU2VjdXJpdHlFcnJvcjogc2hvdygpIG11c3QgYmUgdHJpZ2dlcmVk
IGJ5IHVzZXIgYWN0aXZhdGlvbi4iICgiU2VjdXJpdHlFcnJvciIpIGV4cGVjdGVkIGluc3RhbmNl
IG9mIGZ1bmN0aW9uICJmdW5jdGlvbiBSYW5nZUVycm9yKCkgewotICAgIFtuYXRpdmUgY29kZV0K
LX0iICgiUmFuZ2VFcnJvciIpCi1GQUlMIE11c3QgdGhyb3cgYSBSYW5nZUVycm9yIHdoZW4gYSBt
b2RpZmllciBkaXNwbGF5IGl0ZW0gaGFzIGFuIGludmFsaWQgY3VycmVuY3kuIHByb21pc2VfcmVq
ZWN0c19qczogYmFkRGV0YWlscyBtdXN0IGNhdXNlIGFjY2VwdFByb21pc2UgdG8gcmVqZWN0IHdp
dGggZXhwZWN0ZWRFcnJvciBmdW5jdGlvbiAiZnVuY3Rpb24gKCkgeyB0aHJvdyBlIH0iIHRocmV3
IG9iamVjdCAiU2VjdXJpdHlFcnJvcjogc2hvdygpIG11c3QgYmUgdHJpZ2dlcmVkIGJ5IHVzZXIg
YWN0aXZhdGlvbi4iICgiU2VjdXJpdHlFcnJvciIpIGV4cGVjdGVkIGluc3RhbmNlIG9mIGZ1bmN0
aW9uICJmdW5jdGlvbiBSYW5nZUVycm9yKCkgewotICAgIFtuYXRpdmUgY29kZV0KLX0iICgiUmFu
Z2VFcnJvciIpCi1GQUlMIE11c3QgdGhyb3cgYXMgTW9kaWZpZXIgaGFzIGEgcmVjdXJzaXZlIGRp
Y3Rpb25hcnkuIHByb21pc2VfcmVqZWN0c19qczogYmFkRGV0YWlscyBtdXN0IGNhdXNlIGFjY2Vw
dFByb21pc2UgdG8gcmVqZWN0IHdpdGggZXhwZWN0ZWRFcnJvciBmdW5jdGlvbiAiZnVuY3Rpb24g
KCkgeyB0aHJvdyBlIH0iIHRocmV3IG9iamVjdCAiU2VjdXJpdHlFcnJvcjogc2hvdygpIG11c3Qg
YmUgdHJpZ2dlcmVkIGJ5IHVzZXIgYWN0aXZhdGlvbi4iICgiU2VjdXJpdHlFcnJvciIpIGV4cGVj
dGVkIGluc3RhbmNlIG9mIGZ1bmN0aW9uICJmdW5jdGlvbiBUeXBlRXJyb3IoKSB7Ci0gICAgW25h
dGl2ZSBjb2RlXQotfSIgKCJUeXBlRXJyb3IiKQorUEFTUyBSZWplY3Rpb24gb2YgZGV0YWlsc1By
b21pc2UgbXVzdCBhYm9ydCB0aGUgdXBkYXRlIHdpdGggYW4gJ0Fib3J0RXJyb3InIERPTUV4Y2Vw
dGlvbi4KK1BBU1MgVG90YWwgaW4gdGhlIHVwZGF0ZSBpcyBhIHN0cmluZywgc28gY29udmVydGlu
ZyB0byBJREwgbXVzdCBhYm9ydCB0aGUgdXBkYXRlIHdpdGggYSBUeXBlRXJyb3IuCitQQVNTIFRv
dGFsIGlzIHJlY3Vyc2l2ZSwgc28gY29udmVydGluZyB0byBJREwgbXVzdCBhYm9ydCB0aGUgdXBk
YXRlIHdpdGggYSBUeXBlRXJyb3IuCitQQVNTIFVwZGF0aW5nIHdpdGggYSBuZWdhdGl2ZSB0b3Rh
bCByZXN1bHRzIGluIGEgVHlwZUVycm9yLgorUEFTUyBVcGRhdGluZyB3aXRoIGEgZGlzcGxheUl0
ZW0gd2l0aCBhbiBpbnZhbGlkIGN1cnJlbmN5IHJlc3VsdHMgaW4gUmFuZ2VFcnJvci4KK1BBU1Mg
VXBkYXRpbmcgd2l0aCBkdXBsaWNhdGUgc2hpcHBpbmdPcHRpb25zIChzYW1lIElEcykgcmVzdWx0
cyBpbiBhIFR5cGVFcnJvci4KK1BBU1MgVXBkYXRpbmcgd2l0aCBhIHNoaXBwaW5nT3B0aW9uIHdp
dGggYW4gaW52YWxpZCBjdXJyZW5jeSB2YWx1ZSByZXN1bHRzIGluIGEgUmFuZ0Vycm9yLgorUEFT
UyBNdXN0IHRocm93IGEgUmFuZ2VFcnJvciB3aGVuIGEgbW9kaWZpZXIncyB0b3RhbCBpdGVtIGhh
cyBhbiBpbnZhbGlkIGN1cnJlbmN5LgorUEFTUyBNdXN0IHRocm93IGEgUmFuZ2VFcnJvciB3aGVu
IGEgbW9kaWZpZXIgZGlzcGxheSBpdGVtIGhhcyBhbiBpbnZhbGlkIGN1cnJlbmN5LgorUEFTUyBN
dXN0IHRocm93IGFzIE1vZGlmaWVyIGhhcyBhIHJlY3Vyc2l2ZSBkaWN0aW9uYXJ5LgogCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>436443</attachid>
            <date>2021-08-25 17:22:10 -0700</date>
            <delta_ts>2021-08-26 00:34:58 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-217365-20210826102209.patch</filename>
            <type>text/plain</type>
            <size>53289</size>
            <attacher name="Marcos Caceres">marcos</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjgxNjAyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNjUyOGFjN2M2NGJlYzQ0
NjMzMjZhNGIzYTYzYjlkNGQ2YzcwODk0OS4uMjZlMjY1ZTBiYWM5OWUzNGQ1NGNkOGU4OTA1NGRj
OGE5M2QyNWI4NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE1IEBACisyMDIxLTA4LTI1ICBNYXJj
b3MgQ2FjZXJlcyAgPG1hcmNvc0BtYXJjb3NjLmNvbT4KKworICAgICAgICBbUGF5bWVudCBSZXF1
ZXN0XSBDYWxsaW5nIFBheW1lbnRSZXF1ZXN0J3Mgc2hvdygpIHNob3VsZCBjb25zdW1lIHVzZXIg
YWN0aXZhdGlvbgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9MjE3MzY1CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAg
ICAgVGVzdGVkIGJ5IGV4aXN0aW5nIFdQVCB0ZXN0cy4gCisKKyAgICAgICAgKiBNb2R1bGVzL3Bh
eW1lbnRyZXF1ZXN0L1BheW1lbnRSZXF1ZXN0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlBheW1l
bnRSZXF1ZXN0OjpzaG93KToKKwogMjAyMS0wOC0yNSAgRXJpYyBDYXJsc29uICA8ZXJpYy5jYXJs
c29uQGFwcGxlLmNvbT4KIAogICAgICAgICBbR1BVUF0gUmVtb3RlQXVkaW9TZXNzaW9uIGRvZXNu
J3QgaW1wbGVtZW50IGJlZ2luL2VuZEludGVycnVwdGlvbgpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy9wYXltZW50cmVxdWVzdC9QYXltZW50UmVxdWVzdC5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL3BheW1lbnRyZXF1ZXN0L1BheW1lbnRSZXF1ZXN0LmNwcAppbmRleCBh
NDFmYTA4NjQyNGI1NjgxMjY2NDU0NDM0NzlhZWFmOWM2OTczZjRmLi5mOWQ3ZTM2YWRhYWEyODhm
MWVjMmY2MTBjZjBjMzY2MDc2MWQxNWM0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL3BheW1lbnRyZXF1ZXN0L1BheW1lbnRSZXF1ZXN0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL3BheW1lbnRyZXF1ZXN0L1BheW1lbnRSZXF1ZXN0LmNwcApAQCAtMzYzLDcgKzM2
Myw3IEBAIFBheW1lbnRSZXF1ZXN0Ojp+UGF5bWVudFJlcXVlc3QoKQogICAgIEFTU0VSVCghbV9h
Y3RpdmVQYXltZW50SGFuZGxlcik7CiB9CiAKLS8vIGh0dHBzOi8vd3d3LnczLm9yZy9UUi9wYXlt
ZW50LXJlcXVlc3QvI3Nob3coKS1tZXRob2QKKy8vIGh0dHBzOi8vd3d3LnczLm9yZy9UUi9wYXlt
ZW50LXJlcXVlc3QvI3Nob3ctbWV0aG9kCiB2b2lkIFBheW1lbnRSZXF1ZXN0OjpzaG93KERvY3Vt
ZW50JiBkb2N1bWVudCwgUmVmUHRyPERPTVByb21pc2U+JiYgZGV0YWlsc1Byb21pc2UsIFNob3dQ
cm9taXNlJiYgcHJvbWlzZSkKIHsKICAgICBpZiAoIWRvY3VtZW50LmZyYW1lKCkpIHsKQEAgLTM3
MSw3ICszNzEsOCBAQCB2b2lkIFBheW1lbnRSZXF1ZXN0OjpzaG93KERvY3VtZW50JiBkb2N1bWVu
dCwgUmVmUHRyPERPTVByb21pc2U+JiYgZGV0YWlsc1Byb21pcwogICAgICAgICByZXR1cm47CiAg
ICAgfQogCi0gICAgaWYgKCFVc2VyR2VzdHVyZUluZGljYXRvcjo6cHJvY2Vzc2luZ1VzZXJHZXN0
dXJlKCkpIHsKKyAgICBhdXRvKiB3aW5kb3cgPSBkb2N1bWVudC5mcmFtZSgpLT53aW5kb3coKTsK
KyAgICBpZiAod2luZG93ICYmICF3aW5kb3ctPmNvbnN1bWVUcmFuc2llbnRBY3RpdmF0aW9uKCkp
IHsKICAgICAgICAgcHJvbWlzZS5yZWplY3QoRXhjZXB0aW9uIHsgU2VjdXJpdHlFcnJvciwgInNo
b3coKSBtdXN0IGJlIHRyaWdnZXJlZCBieSB1c2VyIGFjdGl2YXRpb24uIiB9KTsKICAgICAgICAg
cmV0dXJuOwogICAgIH0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91
dFRlc3RzL0NoYW5nZUxvZwppbmRleCA0ZjA5ZDE5ZDc2M2RiYzVhYWZhYTc3N2I1YjlmNzYxZGVm
MDJmYWI5Li4wZWFlNzdmYzYwZGM4NDQyYjUyNzc1MGQxZWUzMWEyZDJiNzc4N2FiIDEwMDY0NAot
LS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBA
IC0xLDMgKzEsMTQgQEAKKzIwMjEtMDgtMjUgIE1hcmNvcyBDYWNlcmVzICA8bWFyY29zQG1hcmNv
c2MuY29tPgorCisgICAgICAgIFtQYXltZW50IFJlcXVlc3RdIENhbGxpbmcgUGF5bWVudFJlcXVl
c3QncyBzaG93KCkgc2hvdWxkIGNvbnN1bWUgdXNlciBhY3RpdmF0aW9uCisgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMTczNjUKKworICAgICAgICBSZXZp
ZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIGh0dHAvdGVzdHMvcGF5bWVudHJl
cXVlc3QvcGF5bWVudC1pcy1zaG93aW5nLmh0dHBzLmh0bWw6CisgICAgICAgICogaHR0cC90ZXN0
cy9wYXltZW50cmVxdWVzdC9wYXltZW50LXJlcXVlc3Qtc2hvdy1tZXRob2QuaHR0cHMuaHRtbDoK
KyAgICAgICAgKiBwbGF0Zm9ybS9pb3Mtd2syL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvcGF5bWVudC1yZXF1ZXN0L3Nob3ctbWV0aG9kLW9wdGlvbmFsLXByb21pc2UtcmVqZWN0cy5o
dHRwcy1leHBlY3RlZC50eHQ6IFJlbW92ZWQuCisKIDIwMjEtMDgtMjUgIFRydWl0dCBTYXZlbGwg
IDx0c2F2ZWxsQGFwcGxlLmNvbT4KIAogICAgICAgICAyNSB3ZWJraXQgaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy9jc3MvIGxheW91dCB0ZXN0cyBmYWlsaW5nIHdpdGggYmxhY2sgYmFy
cwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL0NoYW5nZUxvZyBiL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy9DaGFuZ2VMb2cKaW5kZXggOGE2NjUwZjg4Mjg0OTk4MDJhOWQy
MGVmZTY5YjU0MzM3YjY0NGI4Zi4uZmFkOTk4ZDczNmMyNzc1ZTkyZWQ2ZDNlYTA3ZWM2NTQwMzgx
M2ZjNSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL0NoYW5nZUxvZworKysg
Yi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTggQEAKKzIw
MjEtMDgtMjUgIE1hcmNvcyBDYWNlcmVzICA8bWFyY29zQG1hcmNvc2MuY29tPgorCisgICAgICAg
IFtQYXltZW50IFJlcXVlc3RdIENhbGxpbmcgUGF5bWVudFJlcXVlc3QncyBzaG93KCkgc2hvdWxk
IGNvbnN1bWUgdXNlciBhY3RpdmF0aW9uCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD0yMTczNjUKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9P
UFMhKS4KKworICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy9wYXltZW50LXJlcXVlc3QvcGF5
bWVudC1pcy1zaG93aW5nLmh0dHBzLmh0bWw6CisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3Rz
L3BheW1lbnQtcmVxdWVzdC9wYXltZW50LXJlcXVlc3QtY2FubWFrZXBheW1lbnQtbWV0aG9kLmh0
dHBzLWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvcGF5bWVudC1y
ZXF1ZXN0L3BheW1lbnQtcmVxdWVzdC1oYXNlbnJvbGxlZGluc3RydW1lbnQtbWV0aG9kLnRlbnRh
dGl2ZS5odHRwcy1leHBlY3RlZC50eHQ6CisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL3Bh
eW1lbnQtcmVxdWVzdC9wYXltZW50LXJlcXVlc3Qtc2hvdy1tZXRob2QuaHR0cHMtZXhwZWN0ZWQu
dHh0OiBBZGRlZC4KKyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvcGF5bWVudC1yZXF1ZXN0
L3BheW1lbnQtcmVxdWVzdC1zaG93LW1ldGhvZC5odHRwcy5odG1sOgorICAgICAgICAqIHdlYi1w
bGF0Zm9ybS10ZXN0cy9wYXltZW50LXJlcXVlc3QvcmVqZWN0c19pZl9ub3RfYWN0aXZlLmh0dHBz
Lmh0bWw6CisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL3BheW1lbnQtcmVxdWVzdC9zaG93
LW1ldGhvZC1vcHRpb25hbC1wcm9taXNlLXJlamVjdHMuaHR0cHMtZXhwZWN0ZWQudHh0OgorCiAy
MDIxLTA4LTI1ICBDaHJpcyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CiAKICAgICAgICAgW01h
YyB3azJdIGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9jcm9zcy1vcmlnaW4t
ZW1iZWRkZXItcG9saWN5L3JlcG9ydGluZy10by1mcmFtZS1vd25lci5odHRwcy5odG1sIGlzIGEg
Zmxha3kgZmFpbHVyZQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9wYXltZW50
cmVxdWVzdC9wYXltZW50LWlzLXNob3dpbmcuaHR0cHMuaHRtbCBiL0xheW91dFRlc3RzL2h0dHAv
dGVzdHMvcGF5bWVudHJlcXVlc3QvcGF5bWVudC1pcy1zaG93aW5nLmh0dHBzLmh0bWwKaW5kZXgg
MmU5YTI0YzgwMDJkMzg4YThjM2M4ZmY5ZjFhZDg2YmRjODA5YzY5MC4uYTg0YjhhMjRkYjdmM2Rh
NmMyMmNhZTBmMjcyOTE2Y2M4ZmIwZjkzZSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaHR0cC90
ZXN0cy9wYXltZW50cmVxdWVzdC9wYXltZW50LWlzLXNob3dpbmcuaHR0cHMuaHRtbAorKysgYi9M
YXlvdXRUZXN0cy9odHRwL3Rlc3RzL3BheW1lbnRyZXF1ZXN0L3BheW1lbnQtaXMtc2hvd2luZy5o
dHRwcy5odG1sCkBAIC03MSw5ICs3MSwxNCBAQAogICAgICAgLy8gU2V0cyB0aGUgInBheW1lbnQt
cmVsZXZhbnQgYnJvd3NpbmcgY29udGV4dCdzIHBheW1lbnQgcmVxdWVzdCBpcwogICAgICAgLy8g
c2hvd2luZyBib29sZWFuIiB0byB0cnVlIGFuZCB0aGVuIHRyeSB0byBzaG93IGEgc2Vjb25kIHBh
eW1lbnQgc2hlZXQgaW4KICAgICAgIC8vIHRoZSBzYW1lIHdpbmRvdy4gVGhlIHNlY29uZCBzaG93
KCkgc2hvdWxkIHJlamVjdC4KLSAgICAgIGNvbnN0IFtzaG93UHJvbWlzZTEsIHNob3dQcm9taXNl
Ml0gPSBhd2FpdCBhY3RpdmF0ZVRoZW4oCi0gICAgICAgIGFzeW5jICgpID0+IHsKLSAgICAgICAg
ICByZXR1cm4gW3JlcXVlc3QxLnNob3coKSwgcmVxdWVzdDIuc2hvdygpXTsKKyAgICAgIGNvbnN0
IFtzaG93UHJvbWlzZTFdID0gYXdhaXQgYWN0aXZhdGVUaGVuKAorICAgICAgICAoKSA9PiB7Cisg
ICAgICAgICAgcmV0dXJuIFtyZXF1ZXN0MS5zaG93KCldCisgICAgICAgIH0KKyAgICAgICk7Cisg
ICAgICBjb25zdCBbc2hvd1Byb21pc2UyXSA9IGF3YWl0IGFjdGl2YXRlVGhlbigKKyAgICAgICAg
KCkgPT4geworICAgICAgICAgIHJldHVybiBbcmVxdWVzdDIuc2hvdygpXQogICAgICAgICB9CiAg
ICAgICApOwogICAgICAgYXdhaXQgcHJvbWlzZV9yZWplY3RzKApAQCAtMTE3LDEyICsxMjIsMTgg
QEAKICAgICAgIGNvbnN0IGlmcmFtZVJlcXVlc3QgPSBuZXcgaWZyYW1lV2luZG93LlBheW1lbnRS
ZXF1ZXN0KG1ldGhvZHMsIGRldGFpbHMpOwogICAgICAgY29uc3Qgd2luZG93UmVxdWVzdCA9IG5l
dyB3aW5kb3cuUGF5bWVudFJlcXVlc3QobWV0aG9kcywgZGV0YWlscyk7CiAKLSAgICAgIC8vIExl
dCdzIGdldCBzb21lIGJsZXNzZWQgc2hvd1Byb21pc2VzCi0gICAgICBjb25zdCBbaWZyYW1lU2hv
d1Byb21pc2UsIHdpbmRvd1Nob3dQcm9taXNlXSA9IGF3YWl0IGFjdGl2YXRlVGhlbigKLSAgICAg
ICAgYXN5bmMgKCkgPT4gewotICAgICAgICAgIC8vIGlmcmFtZSBzZXRzICJpcyBzaG93aW5nIGJv
b2xlYW4iLCBpZ25vcmUgdGhlIHJldHVybmVkIHByb21pc2UuCisgICAgICAvLyBMZXQncyBnZXQg
Ymxlc3NlZCBwcm9taXNlIGZvciB0aGUgaWZyYW1lCisgICAgICBjb25zdCBbaWZyYW1lU2hvd1By
b21pc2VdID0gYXdhaXQgYWN0aXZhdGVUaGVuKAorICAgICAgICAoKSA9PiB7CisgICAgICAgICAg
Ly8gaWZyYW1lIHNldHMgImlzIHNob3dpbmcgYm9vbGVhbiIKKyAgICAgICAgICByZXR1cm4gW2lm
cmFtZVJlcXVlc3Quc2hvdygpXTsKKyAgICAgICAgfQorICAgICAgKTsKKworICAgICAgY29uc3Qg
W3dpbmRvd1Nob3dQcm9taXNlXSA9IGF3YWl0IGFjdGl2YXRlVGhlbigKKyAgICAgICAgKCkgPT4g
ewogICAgICAgICAgIC8vIFRoZSB0b3AgbGV2ZWwgd2luZG93IG5vdyB0cmllcyB0byBzaG93KCkg
dGhlIHBheW1lbnQgcmVxdWVzdC4KLSAgICAgICAgICByZXR1cm4gW2lmcmFtZVJlcXVlc3Quc2hv
dygpLCB3aW5kb3dSZXF1ZXN0LnNob3coKV07CisgICAgICAgICAgcmV0dXJuIFt3aW5kb3dSZXF1
ZXN0LnNob3coKV07CiAgICAgICAgIH0KICAgICAgICk7CiAKQEAgLTEzMCw3ICsxNDEsNyBAQAog
ICAgICAgICB0LAogICAgICAgICAnQWJvcnRFcnJvcicsCiAgICAgICAgIHdpbmRvd1Nob3dQcm9t
aXNlLAotICAgICAgICAnaWZyYW1lIGlzIGFscmVhZHkgc2hvd2luZyBhIHBheW1lbnQgcmVxdWVz
dC4nLAorICAgICAgICAnaWZyYW1lIGlzIGFscmVhZHkgc2hvd2luZyBhIHBheW1lbnQgcmVxdWVz
dCcsCiAgICAgICApOwogCiAgICAgICAvLyBDbGVhbnVwCkBAIC0xNTQsOSArMTY1LDE1IEBACiAg
ICAgICAvLyBXZSBmaXJzdCBzaG93IGEgcGF5bWVudCByZXF1ZXN0IHZpYSB0aGUgdGhlIHRvcCBs
ZXZlbCBicm93c2luZyBjb250ZXh0LAogICAgICAgLy8gd2luZG93UmVxdWVzdC5zaG93KCkgc2V0
cyAiaXMgc2hvd2luZyBib29sZWFuIiB0byB0cnVlLiBUaGVuIHdlIHRyeSB0bwogICAgICAgLy8g
c2hvdyBhIHBheW1lbnQgcmVxdWVzdCBpbiB0aGUgaWZyYW1lLCB3aGljaCBzaG91bGQgcmVqZWN0
LgotICAgICAgY29uc3QgW3dpbmRvd1Nob3dQcm9taXNlLCBpZnJhbWVTaG93UHJvbWlzZV0gPSBh
d2FpdCBhY3RpdmF0ZVRoZW4oCi0gICAgICAgIGFzeW5jICgpID0+IHsKLSAgICAgICAgICByZXR1
cm4gW3dpbmRvd1JlcXVlc3Quc2hvdygpLCBpZnJhbWVSZXF1ZXN0LnNob3coKV07CisgICAgICBj
b25zdCBbd2luZG93U2hvd1Byb21pc2VdID0gYXdhaXQgYWN0aXZhdGVUaGVuKAorICAgICAgICAo
KSA9PiB7CisgICAgICAgICAgcmV0dXJuIFt3aW5kb3dSZXF1ZXN0LnNob3coKV07CisgICAgICAg
IH0KKyAgICAgICk7CisKKyAgICAgIGNvbnN0IFtpZnJhbWVTaG93UHJvbWlzZV0gPSBhd2FpdCBh
Y3RpdmF0ZVRoZW4oCisgICAgICAgICgpID0+IHsKKyAgICAgICAgICByZXR1cm4gW2lmcmFtZVJl
cXVlc3Quc2hvdygpXTsKICAgICAgICAgfQogICAgICAgKTsKIApAQCAtMTg4LDE1ICsyMDUsMTUg
QEAKICAgICAgIC8vIEdldCB0aGUgc2hvd1Byb21pc2UgZm9yIGVhY2ggYnJvd3NpbmcgY29udGV4
dC4gRG9pbmcgdGhpcyBpbiBhIHNlcGFyYXRlCiAgICAgICAvLyB0ZXN0X2RyaXZlci5ibGVzcygp
IGlzIGltcG9ydGFudCBiZWNhdXNlIHRoZSB1c2VyIGdlc3R1cmUgYnJpbmdzCiAgICAgICAvLyB8
d2luZG93fCB0byB0aGUgZm9yZWdyb3VuZCwgc28gdGhhdCB0aGUgcGF5bWVudCBzaGVldCBjYW4g
c2hvdy4KLSAgICAgIGNvbnN0IFsKLSAgICAgICAgd2luZG93U2hvd1Byb21pc2UsCi0gICAgICAg
IGlmcmFtZVNob3dQcm9taXNlLAotICAgICAgXSA9IGF3YWl0IGFjdGl2YXRlVGhlbigKKyAgICAg
IGNvbnN0IFt3aW5kb3dTaG93UHJvbWlzZV0gPSBhd2FpdCBhY3RpdmF0ZVRoZW4oCisgICAgICAg
ICgpID0+IHsKKyAgICAgICAgICByZXR1cm4gW3dpbmRvd1JlcXVlc3Quc2hvdygpXTsKKyAgICAg
ICAgfQorICAgICAgKTsKKworICAgICAgY29uc3QgWyBpZnJhbWVTaG93UHJvbWlzZSBdID0gYXdh
aXQgYWN0aXZhdGVUaGVuKAogICAgICAgICBhc3luYyAoKSA9PiB7Ci0gICAgICAgICAgcmV0dXJu
IFsKLSAgICAgICAgICAgIHdpbmRvd1JlcXVlc3Quc2hvdygpLAotICAgICAgICAgICAgaWZyYW1l
UmVxdWVzdC5zaG93KCksCi0gICAgICAgICAgXTsKKyAgICAgICAgICByZXR1cm4gW2lmcmFtZVJl
cXVlc3Quc2hvdygpXTsKICAgICAgICAgfQogICAgICAgKTsKIApAQCAtMjI3LDE1ICsyNDQsMTQg
QEAKICAgICAgIC8vIEdldCB0aGUgc2hvd1Byb21pc2UgZm9yIGVhY2ggYnJvd3NpbmcgY29udGV4
dC4gRG9pbmcgdGhpcyBpbiBhIHNlcGFyYXRlCiAgICAgICAvLyB0ZXN0X2RyaXZlci5ibGVzcygp
IGlzIGltcG9ydGFudCBiZWNhdXNlIHRoZSB1c2VyIGdlc3R1cmUgYnJpbmdzCiAgICAgICAvLyB8
d2luZG93fCB0byB0aGUgZm9yZWdyb3VuZCwgc28gdGhhdCB0aGUgcGF5bWVudCBzaGVldCBjYW4g
c2hvdy4KLSAgICAgIGNvbnN0IFsKLSAgICAgICAgaWZyYW1lU2hvd1Byb21pc2UsCi0gICAgICAg
IHdpbmRvd1Nob3dQcm9taXNlLAotICAgICAgXSA9IGF3YWl0IGFjdGl2YXRlVGhlbigKLSAgICAg
ICAgYXN5bmMgKCkgPT4gewotICAgICAgICAgIHJldHVybiBbCi0gICAgICAgICAgICBpZnJhbWVS
ZXF1ZXN0LnNob3coKSwKLSAgICAgICAgICAgIHdpbmRvd1JlcXVlc3Quc2hvdygpLAotICAgICAg
ICAgIF07CisgICAgICBjb25zdCBbaWZyYW1lU2hvd1Byb21pc2VdID0gYXdhaXQgYWN0aXZhdGVU
aGVuKAorICAgICAgICAoKSA9PiB7CisgICAgICAgICAgcmV0dXJuIFtpZnJhbWVSZXF1ZXN0LnNo
b3coKV07CisgICAgICAgIH0KKyAgICAgICk7CisgICAgICBjb25zdCBbd2luZG93U2hvd1Byb21p
c2VdID0gYXdhaXQgYWN0aXZhdGVUaGVuKAorICAgICAgICAoKSA9PiB7CisgICAgICAgICAgcmV0
dXJuIFt3aW5kb3dSZXF1ZXN0LnNob3coKV07CiAgICAgICAgIH0KICAgICAgICk7CiAKZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcGF5bWVudHJlcXVlc3QvcGF5bWVudC1yZXF1
ZXN0LXNob3ctbWV0aG9kLmh0dHBzLmh0bWwgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3BheW1l
bnRyZXF1ZXN0L3BheW1lbnQtcmVxdWVzdC1zaG93LW1ldGhvZC5odHRwcy5odG1sCmluZGV4IDY0
ZTUyYzY5ZmUxN2QzZmYxN2Q2ZTlkYWI4MzJkNzE4NTE5MDllMTMuLjQzMmEwOWZlNGM2ODM4NDFi
ZDhhYTVhYTM5MTkwMDU0NDQyMDZjYTUgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2h0dHAvdGVz
dHMvcGF5bWVudHJlcXVlc3QvcGF5bWVudC1yZXF1ZXN0LXNob3ctbWV0aG9kLmh0dHBzLmh0bWwK
KysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9wYXltZW50cmVxdWVzdC9wYXltZW50LXJlcXVl
c3Qtc2hvdy1tZXRob2QuaHR0cHMuaHRtbApAQCAtNDYsNyArNDYsNyBAQCB0ZXN0KCgpID0+IHsK
IHVzZXJfYWN0aXZhdGlvbl90ZXN0KGFzeW5jIHQgPT4gewogICBjb25zdCByZXF1ZXN0ID0gbmV3
IFBheW1lbnRSZXF1ZXN0KGRlZmF1bHRNZXRob2RzLCBkZWZhdWx0RGV0YWlscyk7CiAgIGNvbnN0
IGFjY2VwdFByb21pc2UgPSByZXF1ZXN0LnNob3coKTsgLy8gU2V0cyBzdGF0ZSB0byAiaW50ZXJh
Y3RpdmUiCi0gIGF3YWl0IHByb21pc2VfcmVqZWN0cyh0LCAiSW52YWxpZFN0YXRlRXJyb3IiLCBy
ZXF1ZXN0LnNob3coKSk7CisgIGF3YWl0IHByb21pc2VfcmVqZWN0cyh0LCAiU2VjdXJpdHlFcnJv
ciIsIHJlcXVlc3Quc2hvdygpKTsKICAgYXdhaXQgcmVxdWVzdC5hYm9ydCgpOwogICBhd2FpdCBw
cm9taXNlX3JlamVjdHModCwgIkFib3J0RXJyb3IiLCBhY2NlcHRQcm9taXNlKTsKIH0sIGBUaHJv
d3MgaWYgdGhlIHByb21pc2UgW1tzdGF0ZV1dIGlzIG5vdCAiY3JlYXRlZCJgKTsKQEAgLTU2LDcg
KzU2LDcgQEAgdXNlcl9hY3RpdmF0aW9uX3Rlc3QoYXN5bmMgdCA9PiB7CiAgIGNvbnN0IHJlcXVl
c3QyID0gbmV3IFBheW1lbnRSZXF1ZXN0KGRlZmF1bHRNZXRob2RzLCBkZWZhdWx0RGV0YWlscyk7
CiAgIGNvbnN0IGFjY2VwdFByb21pc2UxID0gcmVxdWVzdDEuc2hvdygpOwogICBjb25zdCBhY2Nl
cHRQcm9taXNlMiA9IHJlcXVlc3QyLnNob3coKTsKLSAgYXdhaXQgcHJvbWlzZV9yZWplY3RzKHQs
ICJBYm9ydEVycm9yIiwgYWNjZXB0UHJvbWlzZTIpOworICBhd2FpdCBwcm9taXNlX3JlamVjdHMo
dCwgIlNlY3VyaXR5RXJyb3IiLCBhY2NlcHRQcm9taXNlMik7CiAgIGF3YWl0IHJlcXVlc3QxLmFi
b3J0KCk7CiAgIGF3YWl0IHByb21pc2VfcmVqZWN0cyh0LCAiQWJvcnRFcnJvciIsIGFjY2VwdFBy
b21pc2UxKTsKIH0sIGBJZiB0aGUgdXNlciBhZ2VudCdzICJwYXltZW50IHJlcXVlc3QgaXMgc2hv
d2luZyIgYm9vbGVhbiBpcyB0cnVlLCB0aGVuIHJldHVybiBhIHByb21pc2UgcmVqZWN0ZWQgd2l0
aCBhbiAiQWJvcnRFcnJvciIgRE9NRXhjZXB0aW9uLmApOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9wYXltZW50LXJlcXVlc3QvcGF5bWVu
dC1pcy1zaG93aW5nLmh0dHBzLmh0bWwgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL3BheW1lbnQtcmVxdWVzdC9wYXltZW50LWlzLXNob3dpbmcuaHR0cHMuaHRt
bAppbmRleCBmZWQ2ZWFmNmQ5ZmFkYTExNDQ2YjMyY2FhYmEwN2I1ZGUyZDg4YjBlLi4zNGI5YWU4
MmI2NTMwZTM3MjMwNDhlMzgzOTM2ODcwOTFiNGZiYmQ3IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3BheW1lbnQtcmVxdWVzdC9wYXltZW50
LWlzLXNob3dpbmcuaHR0cHMuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL3BheW1lbnQtcmVxdWVzdC9wYXltZW50LWlzLXNob3dpbmcuaHR0cHMu
aHRtbApAQCAtNCw3ICs0LDcgQEAKICAgcmVsPSJoZWxwIgogICBocmVmPSJodHRwczovL3czYy5n
aXRodWIuaW8vYnJvd3Nlci1wYXltZW50LWFwaS8jZGZuLXBheW1lbnQtcmVxdWVzdC1pcy1zaG93
aW5nIgogLz4KLTxtZXRhIG5hbWU9InRpbWVvdXQiIGNvbnRlbnQ9ImxvbmciPgorPG1ldGEgbmFt
ZT0idGltZW91dCIgY29udGVudD0ibG9uZyIgLz4KIDxzY3JpcHQgc3JjPSIvcmVzb3VyY2VzL3Rl
c3RoYXJuZXNzLmpzIj48L3NjcmlwdD4KIDxzY3JpcHQgc3JjPSIvcmVzb3VyY2VzL3Rlc3RoYXJu
ZXNzcmVwb3J0LmpzIj48L3NjcmlwdD4KIDxzY3JpcHQgc3JjPSIvcmVzb3VyY2VzL3Rlc3Rkcml2
ZXIuanMiPjwvc2NyaXB0PgpAQCAtMjIsNyArMjIsNyBAQAogICAgICAgICBzdXBwb3J0ZWROZXR3
b3JrczogWyJ2aXNhIl0sCiAgICAgICB9LAogICAgIH07Ci0gICAgY29uc3QgbWV0aG9kcyA9IFt7
c3VwcG9ydGVkTWV0aG9kczogImJhc2ljLWNhcmQifSwgYXBwbGVQYXlNZXRob2RdOworICAgIGNv
bnN0IG1ldGhvZHMgPSBbeyBzdXBwb3J0ZWRNZXRob2RzOiAiYmFzaWMtY2FyZCIgfSwgYXBwbGVQ
YXlNZXRob2RdOwogICAgIGNvbnN0IGRldGFpbHMgPSB7CiAgICAgICB0b3RhbDogewogICAgICAg
ICBsYWJlbDogIlRvdGFsIiwKQEAgLTQ0LDQ1ICs0NCw0MCBAQAogICAgICAgaWZyYW1lLmFsbG93
ID0gInBheW1lbnQiOwogICAgICAgaWZyYW1lLnNyYyA9IHNyYzsKICAgICAgIGRvY3VtZW50LmJv
ZHkuYXBwZW5kQ2hpbGQoaWZyYW1lKTsKLSAgICAgIGF3YWl0IG5ldyBQcm9taXNlKHJlc29sdmUg
PT4gewotICAgICAgICBpZnJhbWUuYWRkRXZlbnRMaXN0ZW5lcigibG9hZCIsIHJlc29sdmUsIHtv
bmNlOiB0cnVlfSk7CisgICAgICBhd2FpdCBuZXcgUHJvbWlzZSgocmVzb2x2ZSkgPT4geworICAg
ICAgICBpZnJhbWUuYWRkRXZlbnRMaXN0ZW5lcigibG9hZCIsIHJlc29sdmUsIHsgb25jZTogdHJ1
ZSB9KTsKICAgICAgIH0pOwogICAgICAgcmV0dXJuIGlmcmFtZTsKICAgICB9CiAKLSAgICAvKioK
LSAgICAgKiBDcmVhdGVzIGEgcG9wdXAgd2luZG93LiBUaGUgY2FsbGVyIG11c3QgYmUgdHJpZ2dl
cmVkIHdpdGggYSB1c2VyIGdlc3R1cmUuCi0gICAgICoKLSAgICAgKiBAcGFyYW0ge1N0cmluZ30g
c3JjIE9wdGlvbmFsIHJlc291cmNlIFVSTCB0byBsb2FkLgotICAgICAqIEByZXR1cm5zIHtQcm9t
aXNlfSBSZXNvbHZlcyB3aGVuIHRoZSBzcmMgbG9hZHMuCi0gICAgICovCi0gICAgYXN5bmMgZnVu
Y3Rpb24gbG9hZFBvcHVwSW5zaWRlVXNlckdlc3R1cmUoc3JjID0gImJsYW5rLmh0bWwiKSB7Ci0g
ICAgICBjb25zdCBwb3B1cFdpbmRvdyA9IHdpbmRvdy5vcGVuKHNyYywgIiIsICJ3aWR0aD00MDAs
aGVpZ2h0PTQwMCIpOwotICAgICAgYXdhaXQgbmV3IFByb21pc2UocmVzb2x2ZSA9PiB7Ci0gICAg
ICAgIHBvcHVwV2luZG93LmFkZEV2ZW50TGlzdGVuZXIoImxvYWQiLCByZXNvbHZlLCB7b25jZTog
dHJ1ZX0pOwotICAgICAgfSk7Ci0gICAgICBwb3B1cFdpbmRvdy5mb2N1cygpOwotICAgICAgcmV0
dXJuIHBvcHVwV2luZG93OworICAgIGZ1bmN0aW9uIGdldFNob3dQcm9taXNlRnJvbUNvbnRleHQo
cGF5bWVudFJlcXVlc3QsIGNvbnRleHQgPSB0aGlzKSB7CisgICAgICByZXR1cm4gdGVzdF9kcml2
ZXIuYmxlc3MoCisgICAgICAgICJwYXltZW50IHJlcXVlc3Qgc2hvdygpIiwKKyAgICAgICAgKCkg
PT4geworICAgICAgICAgIHJldHVybiBbcGF5bWVudFJlcXVlc3Quc2hvdygpXTsKKyAgICAgICAg
fSwKKyAgICAgICAgY29udGV4dAorICAgICAgKTsKICAgICB9CiAKLSAgICBwcm9taXNlX3Rlc3Qo
YXN5bmMgdCA9PiB7CisgICAgcHJvbWlzZV90ZXN0KGFzeW5jICh0KSA9PiB7CiAgICAgICBjb25z
dCByZXF1ZXN0MSA9IG5ldyBQYXltZW50UmVxdWVzdChtZXRob2RzLCBkZXRhaWxzKTsKICAgICAg
IGNvbnN0IHJlcXVlc3QyID0gbmV3IFBheW1lbnRSZXF1ZXN0KG1ldGhvZHMsIGRldGFpbHMpOwog
CiAgICAgICAvLyBTZXRzIHRoZSAicGF5bWVudC1yZWxldmFudCBicm93c2luZyBjb250ZXh0J3Mg
cGF5bWVudCByZXF1ZXN0IGlzCiAgICAgICAvLyBzaG93aW5nIGJvb2xlYW4iIHRvIHRydWUgYW5k
IHRoZW4gdHJ5IHRvIHNob3cgYSBzZWNvbmQgcGF5bWVudCBzaGVldCBpbgogICAgICAgLy8gdGhl
IHNhbWUgd2luZG93LiBUaGUgc2Vjb25kIHNob3coKSBzaG91bGQgcmVqZWN0LgotICAgICAgY29u
c3QgW3Nob3dQcm9taXNlMSwgc2hvd1Byb21pc2UyXSA9IGF3YWl0IHRlc3RfZHJpdmVyLmJsZXNz
KAotICAgICAgICAidGVzdGluZyBvbmUgcGF5bWVudCBzaGVldCBwZXIgd2luZG93IiwKLSAgICAg
ICAgKCkgPT4gewotICAgICAgICAgIHJldHVybiBbcmVxdWVzdDEuc2hvdygpLCByZXF1ZXN0Mi5z
aG93KCldOwotICAgICAgICB9LAotICAgICAgKTsKKyAgICAgIGF3YWl0IHRlc3RfZHJpdmVyLmJs
ZXNzKCJwYXltZW50IHJlcXVlc3Qgc2hvdygpIik7CisgICAgICBjb25zdCBzaG93UHJvbWlzZTEg
PSByZXF1ZXN0MS5zaG93KCk7CisKKyAgICAgIGF3YWl0IHRlc3RfZHJpdmVyLmJsZXNzKCJwYXlt
ZW50IHJlcXVlc3Qgc2hvdygpIik7CisgICAgICBjb25zdCBzaG93UHJvbWlzZTIgPSByZXF1ZXN0
Mi5zaG93KCk7CisKICAgICAgIGF3YWl0IHByb21pc2VfcmVqZWN0c19kb20oCiAgICAgICAgIHQs
CiAgICAgICAgICJBYm9ydEVycm9yIiwKICAgICAgICAgc2hvd1Byb21pc2UyLAotICAgICAgICAi
QXR0ZW1wdGluZyB0byBzaG93IGEgc2Vjb25kIHBheW1lbnQgcmVxdWVzdCBtdXN0IHJlamVjdC4i
LAorICAgICAgICAiQXR0ZW1wdGluZyB0byBzaG93IGEgc2Vjb25kIHBheW1lbnQgcmVxdWVzdCBt
dXN0IHJlamVjdC4iCiAgICAgICApOwogCiAgICAgICBhd2FpdCByZXF1ZXN0MS5hYm9ydCgpOwpA
QCAtOTAsNyArODUsNyBAQAogICAgICAgICB0LAogICAgICAgICAiQWJvcnRFcnJvciIsCiAgICAg
ICAgIHNob3dQcm9taXNlMSwKLSAgICAgICAgInJlcXVlc3QxIHdhcyBhYm9ydGVkIHZpYSAuYWJv
cnQoKSIsCisgICAgICAgICJyZXF1ZXN0MSB3YXMgYWJvcnRlZCB2aWEgLmFib3J0KCkiCiAgICAg
ICApOwogCiAgICAgICAvLyBGaW5hbGx5LCByZXF1ZXN0MiBzaG91bGQgaGF2ZSBiZWVuICJjbG9z
ZWQiLCBzbyB0cnlpbmcgdG8gc2hvdwpAQCAtMTAxLDQwICs5Niw0MCBAQAogICAgICAgICB0LAog
ICAgICAgICAiSW52YWxpZFN0YXRlRXJyb3IiLAogICAgICAgICByZWplY3RlZFByb21pc2UsCi0g
ICAgICAgICJBdHRlbXB0aW5nIHRvIHNob3cgYSBzZWNvbmQgcGF5bWVudCByZXF1ZXN0IG11c3Qg
cmVqZWN0LiIsCisgICAgICAgICJBdHRlbXB0aW5nIHRvIHNob3cgYSBzZWNvbmQgcGF5bWVudCBy
ZXF1ZXN0IG11c3QgcmVqZWN0LiIKICAgICAgICk7CiAgICAgICAvLyBGaW5hbGx5LCB3ZSBjb25m
aXJtIHRoYXQgcmVxdWVzdDIncyByZXR1cm5lZCBwcm9taXNlcyBhcmUgdW5pcXVlLgogICAgICAg
YXNzZXJ0X25vdF9lcXVhbHMoCiAgICAgICAgIHNob3dQcm9taXNlMiwKICAgICAgICAgcmVqZWN0
ZWRQcm9taXNlLAotICAgICAgICAiUmV0dXJuZWQgUHJvbWlzZXMgYmUgdW5pcXVlIiwKKyAgICAg
ICAgIlJldHVybmVkIFByb21pc2VzIGJlIHVuaXF1ZSIKICAgICAgICk7CiAgICAgfSwgIlRoZSB0
b3AgYnJvd3NpbmcgY29udGV4dCBjYW4gb25seSBzaG93IG9uZSBwYXltZW50IHNoZWV0IGF0IGEg
dGltZS4iKTsKIAotICAgIHByb21pc2VfdGVzdChhc3luYyB0ID0+IHsKKyAgICBwcm9taXNlX3Rl
c3QoYXN5bmMgKHQpID0+IHsKICAgICAgIGNvbnN0IGlmcmFtZSA9IGF3YWl0IGF0dGFjaElmcmFt
ZSgpOwogICAgICAgY29uc3QgaWZyYW1lV2luZG93ID0gaWZyYW1lLmNvbnRlbnRXaW5kb3c7CiAK
ICAgICAgIC8vIFBheW1lbnQgcmVxdWVzdHMKLSAgICAgIGNvbnN0IGlmcmFtZVJlcXVlc3QgPSBu
ZXcgaWZyYW1lV2luZG93LlBheW1lbnRSZXF1ZXN0KG1ldGhvZHMsIGRldGFpbHMpOwogICAgICAg
Y29uc3Qgd2luZG93UmVxdWVzdCA9IG5ldyB3aW5kb3cuUGF5bWVudFJlcXVlc3QobWV0aG9kcywg
ZGV0YWlscyk7CisgICAgICBjb25zdCBpZnJhbWVSZXF1ZXN0ID0gbmV3IGlmcmFtZVdpbmRvdy5Q
YXltZW50UmVxdWVzdChtZXRob2RzLCBkZXRhaWxzKTsKIAogICAgICAgLy8gTGV0J3MgZ2V0IHNv
bWUgYmxlc3NlZCBzaG93UHJvbWlzZXMKLSAgICAgIGNvbnN0IFtzaG93UHJvbWlzZV0gPSBhd2Fp
dCB0ZXN0X2RyaXZlci5ibGVzcygKLSAgICAgICAgInRlc3RpbmcgdG9wIHdpbmRvdyBzaG93KCkg
YmxvY2tlZCBieSBwYXltZW50IHNoZWV0IGluIGlmcmFtZSIsCi0gICAgICAgICgpID0+IHsKLSAg
ICAgICAgICAvLyBpZnJhbWUgc2V0cyAiaXMgc2hvd2luZyBib29sZWFuIiwgaWdub3JlIHRoZSBy
ZXR1cm5lZCBwcm9taXNlLgotICAgICAgICAgIGlmcmFtZVJlcXVlc3Quc2hvdygpOwotICAgICAg
ICAgIC8vIFRoZSB0b3AgbGV2ZWwgd2luZG93IG5vdyB0cmllcyB0byBzaG93KCkgdGhlIHBheW1l
bnQgcmVxdWVzdC4KLSAgICAgICAgICByZXR1cm4gW3dpbmRvd1JlcXVlc3Quc2hvdygpXTsKLSAg
ICAgICAgfSwKKyAgICAgIC8vIGlmcmFtZSBzZXRzICJpcyBzaG93aW5nIGJvb2xlYW4iLCBpZ25v
cmUgdGhlIHJldHVybmVkIHByb21pc2UuCisgICAgICBjb25zdCBbaWZyYW1lUHJvbWlzZV0gPSBh
d2FpdCBnZXRTaG93UHJvbWlzZUZyb21Db250ZXh0KAorICAgICAgICBpZnJhbWVSZXF1ZXN0LAor
ICAgICAgICBpZnJhbWVXaW5kb3cKICAgICAgICk7CiAKKyAgICAgIC8vIFRoZSB0b3AgbGV2ZWwg
d2luZG93IG5vdyB0cmllcyB0byBzaG93KCkgdGhlIHBheW1lbnQgcmVxdWVzdC4KKyAgICAgIGF3
YWl0IHRlc3RfZHJpdmVyLmJsZXNzKCJwYXltZW50IHJlcXVlc3Qgc2hvdygpIik7CisgICAgICBj
b25zdCBzaG93UHJvbWlzZSA9IHdpbmRvd1JlcXVlc3Quc2hvdygpOworCiAgICAgICBhd2FpdCBw
cm9taXNlX3JlamVjdHNfZG9tKAogICAgICAgICB0LAogICAgICAgICAiQWJvcnRFcnJvciIsCiAg
ICAgICAgIHNob3dQcm9taXNlLAotICAgICAgICAiaWZyYW1lIGlzIGFscmVhZHkgc2hvd2luZyBh
IHBheW1lbnQgcmVxdWVzdC4iLAorICAgICAgICAiaWZyYW1lIGlzIGFscmVhZHkgc2hvd2luZyBh
IHBheW1lbnQgcmVxdWVzdC4iCiAgICAgICApOwogCiAgICAgICAvLyBDbGVhbnVwCkBAIC0xNDIs
MzYxICsxMzcsMzQgQEAKICAgICAgIGlmcmFtZS5yZW1vdmUoKTsKICAgICB9LCAiSWYgYW4gaWZy
YW1lIHNob3dzIGEgcGF5bWVudCByZXF1ZXN0LCB0aGUgdG9wLWxldmVsIGJyb3dzaW5nIGNvbnRl
eHQgY2FuJ3QgYWxzbyBzaG93IG9uZS4iKTsKIAotICAgIHByb21pc2VfdGVzdChhc3luYyB0ID0+
IHsKKyAgICBwcm9taXNlX3Rlc3QoYXN5bmMgKHQpID0+IHsKICAgICAgIGNvbnN0IGlmcmFtZSA9
IGF3YWl0IGF0dGFjaElmcmFtZSgpOwogICAgICAgY29uc3QgaWZyYW1lV2luZG93ID0gaWZyYW1l
LmNvbnRlbnRXaW5kb3c7Ci0KLSAgICAgIC8vIFBheW1lbnQgcmVxdWVzdHMKICAgICAgIGNvbnN0
IGlmcmFtZVJlcXVlc3QgPSBuZXcgaWZyYW1lV2luZG93LlBheW1lbnRSZXF1ZXN0KG1ldGhvZHMs
IGRldGFpbHMpOwotICAgICAgY29uc3Qgd2luZG93UmVxdWVzdCA9IG5ldyB3aW5kb3cuUGF5bWVu
dFJlcXVlc3QobWV0aG9kcywgZGV0YWlscyk7Ci0KLSAgICAgIC8vIFdlIGZpcnN0IHNob3cgYSBw
YXltZW50IHJlcXVlc3QgdmlhIHRoZSB0aGUgdG9wIGxldmVsIGJyb3dzaW5nIGNvbnRleHQsCi0g
ICAgICAvLyB3aW5kb3dSZXF1ZXN0LnNob3coKSBzZXRzICJpcyBzaG93aW5nIGJvb2xlYW4iIHRv
IHRydWUuIFRoZW4gd2UgdHJ5IHRvCi0gICAgICAvLyBzaG93IGEgcGF5bWVudCByZXF1ZXN0IGlu
IHRoZSBpZnJhbWUsIHdoaWNoIHNob3VsZCByZWplY3QuCi0gICAgICBjb25zdCBbd2luZG93U2hv
d1Byb21pc2UsIGlmcmFtZVNob3dQcm9taXNlXSA9IGF3YWl0IHRlc3RfZHJpdmVyLmJsZXNzKAot
ICAgICAgICAidGVzdGluZyBpZnJhbWUgc2hvdygpIGJsb2NrZWQgYnkgcGF5bWVudCBzaGVldCBp
biB0b3Agd2luZG93IiwKLSAgICAgICAgKCkgPT4gewotICAgICAgICAgIHJldHVybiBbd2luZG93
UmVxdWVzdC5zaG93KCksIGlmcmFtZVJlcXVlc3Quc2hvdygpXTsKLSAgICAgICAgfSwKLSAgICAg
ICk7Ci0KLSAgICAgIGF3YWl0IHByb21pc2VfcmVqZWN0c19kb20oCi0gICAgICAgIHQsCi0gICAg
ICAgICJBYm9ydEVycm9yIiwKLSAgICAgICAgaWZyYW1lU2hvd1Byb21pc2UsCi0gICAgICAgICJU
aGUgdG9wIHdpbmRvdyBpcyBhbHJlYWR5IHNob3dpbmcgYSBwYXltZW50IHJlcXVlc3QuIiwKKyAg
ICAgIGNvbnN0IFtpZnJhbWVTaG93UHJvbWlzZV0gPSBhd2FpdCBnZXRTaG93UHJvbWlzZUZyb21D
b250ZXh0KAorICAgICAgICBpZnJhbWVSZXF1ZXN0LAorICAgICAgICBpZnJhbWVXaW5kb3cKICAg
ICAgICk7CiAKLSAgICAgIC8vIENsZWFudXAKLSAgICAgIGF3YWl0IHdpbmRvd1JlcXVlc3QuYWJv
cnQoKTsKLSAgICAgIGF3YWl0IHByb21pc2VfcmVqZWN0c19kb20oCi0gICAgICAgIHQsCi0gICAg
ICAgICJBYm9ydEVycm9yIiwKLSAgICAgICAgd2luZG93U2hvd1Byb21pc2UsCi0gICAgICAgICJU
aGUgd2luZG93IHBheW1lbnQgcmVxdWVzdCBzaG91bGQgYmUgYWJvcnRlZCBieSB0ZXN0LiIsCi0g
ICAgICAgICk7Ci0gICAgICBpZnJhbWUucmVtb3ZlKCk7Ci0gICAgfSwgIkFuIGlmcmFtZSBjYW5u
b3Qgc2hvdyBhIHBheW1lbnQgcmVxdWVzdCBpZiB0aGUgdG9wLWxldmVsIHdpbmRvdyBpcyBhbHJl
YWR5IHNob3dpbmcgb25lLiIpOwotCi0gICAgcHJvbWlzZV90ZXN0KGFzeW5jIHQgPT4gewotICAg
ICAgLy8gQ3JlYXRlIGEgUGF5bWVudFJldXFlc3QgaW4gdG9wLWxldmVsIHdpbmRvdy4KLSAgICAg
IGNvbnN0IHdpbmRvd1JlcXVlc3QgPSBuZXcgd2luZG93LlBheW1lbnRSZXF1ZXN0KG1ldGhvZHMs
IGRldGFpbHMpOwotCi0gICAgICAvLyBVc2UgYSBzaW5nbGUgdXNlciBnZXN0dXJlIHRvIG9wZW4g
YSBwb3B1cCB3aW5kb3cgd2l0aCBhIFBheW1lbnRSZXF1ZXN0LgotICAgICAgLy8gVGhlbiB0cmln
Z2VyIHNob3coKSBmaXJzdCBvbiB8cG9wdXBSZXF1ZXN0fCB0aGVuIG9uIHx3aW5kb3dSZXF1ZXN0
fC4KLSAgICAgIC8vIFRoZSBsYXR0ZXIgc2hvdWxkIHJlamVjdC4KLSAgICAgIGNvbnN0IFsKLSAg
ICAgICAgcG9wdXBXaW5kb3csCi0gICAgICAgIHBvcHVwUmVxdWVzdCwKLSAgICAgICAgcG9wdXBT
aG93UHJvbWlzZSwKLSAgICAgICAgd2luZG93U2hvd1Byb21pc2UsCi0gICAgICBdID0gYXdhaXQg
dGVzdF9kcml2ZXIuYmxlc3MoCi0gICAgICAgICJ0ZXN0aW5nIHRvcC1sZXZlbCBzaG93KCkgYmxv
Y2tlZCBieSBwYXltZW50IHNoZWV0IGluIHBvcHVwIiwKLSAgICAgICAgYXN5bmMgKCkgPT4gewot
ICAgICAgICAgIGNvbnN0IHBvcHVwV2luZG93ID0gYXdhaXQgbG9hZFBvcHVwSW5zaWRlVXNlckdl
c3R1cmUoKTsKLSAgICAgICAgICBjb25zdCBwb3B1cFJlcXVlc3QgPSBuZXcgcG9wdXBXaW5kb3cu
UGF5bWVudFJlcXVlc3QobWV0aG9kcywgZGV0YWlscyk7Ci0gICAgICAgICAgY29uc3QgcG9wdXBT
aG93UHJvbWlzZSA9IHBvcHVwUmVxdWVzdC5zaG93KCk7Ci0gICAgICAgICAgY29uc3Qgd2luZG93
U2hvd1Byb21pc2UgPSB3aW5kb3dSZXF1ZXN0LnNob3coKTsKLSAgICAgICAgICByZXR1cm4gWwot
ICAgICAgICAgICAgcG9wdXBXaW5kb3csCi0gICAgICAgICAgICBwb3B1cFJlcXVlc3QsCi0gICAg
ICAgICAgICBwb3B1cFNob3dQcm9taXNlLAotICAgICAgICAgICAgd2luZG93U2hvd1Byb21pc2Us
Ci0gICAgICAgICAgXTsKLSAgICAgICAgfSwKLSAgICAgICk7Ci0KLSAgICAgIGF3YWl0IHByb21p
c2VfcmVqZWN0c19kb20oCi0gICAgICAgIHQsCi0gICAgICAgICJBYm9ydEVycm9yIiwKLSAgICAg
ICAgd2luZG93U2hvd1Byb21pc2UsCi0gICAgICAgICJFeHBlY3RlZCB3aW5kb3cncyBzaG93UHJv
bWlzZSB0byByZWplY3QsIHJlcXVlc3QgaXMgYWxyZWFkeSBzaG93aW5nIiwKLSAgICAgICk7Ci0K
LSAgICAgIGF3YWl0IHBvcHVwUmVxdWVzdC5hYm9ydCgpOwotICAgICAgYXdhaXQgcHJvbWlzZV9y
ZWplY3RzX2RvbSgKLSAgICAgICAgdCwKLSAgICAgICAgIkFib3J0RXJyb3IiLAotICAgICAgICBw
b3B1cFNob3dQcm9taXNlLAotICAgICAgICAiRXhwZWN0ZWQgcG9wdXBTaG93UHJvbWlzZSB0byBi
ZSBhYm9ydGVkIGJ5IHRlc3QuIiwKLSAgICAgICk7Ci0gICAgICBwb3B1cFdpbmRvdy5jbG9zZSgp
OwotICAgIH0sICJVc2luZyBhIHBvcHVwIHdpbmRvdyBwcmV2ZW50cyB0aGUgdG9wLWJyb3dzaW5n
IGNvbnRleHQgZnJvbSBzaG93aW5nIGEgcGF5bWVudCByZXF1ZXN0Iik7Ci0KLSAgICBwcm9taXNl
X3Rlc3QoYXN5bmMgdCA9PiB7Ci0gICAgICBjb25zdCBpZnJhbWUgPSBhd2FpdCBhdHRhY2hJZnJh
bWUoKTsKLSAgICAgIGNvbnN0IGlmcmFtZVdpbmRvdyA9IGlmcmFtZS5jb250ZW50V2luZG93Owot
Ci0gICAgICAvLyBDcmVhdGUgcmVxdWVzdHMKLSAgICAgIGNvbnN0IHdpbmRvd1JlcXVlc3QgPSBu
ZXcgd2luZG93LlBheW1lbnRSZXF1ZXN0KG1ldGhvZHMsIGRldGFpbHMpOwotICAgICAgY29uc3Qg
aWZyYW1lUmVxdWVzdCA9IG5ldyBpZnJhbWVXaW5kb3cuUGF5bWVudFJlcXVlc3QobWV0aG9kcywg
ZGV0YWlscyk7Ci0KLSAgICAgIC8vIE9wZW4gYSBwb3B1cCB3aW5kb3cKLSAgICAgIGNvbnN0IFtw
b3B1cFdpbmRvdywgcG9wdXBSZXF1ZXN0XSA9Ci0gICAgICBhd2FpdCB0ZXN0X2RyaXZlci5ibGVz
cygKLSAgICAgICAgIm9wZW4gcG9wdXAgdG8gdGVzdCBtdWx0aXBsZSBjb250ZXh0IGFuZCB3aW5k
b3cgY2FsbHMgc2hvdygpIGZpcnN0IiwKLSAgICAgICAgYXN5bmMgKCkgPT4gewotICAgICAgICAg
IGNvbnN0IHBvcHVwV2luZG93ID0gYXdhaXQgbG9hZFBvcHVwSW5zaWRlVXNlckdlc3R1cmUoKTsK
LSAgICAgICAgICBjb25zdCBwb3B1cFJlcXVlc3QgPSBuZXcgcG9wdXBXaW5kb3cuUGF5bWVudFJl
cXVlc3QobWV0aG9kcywgZGV0YWlscyk7Ci0gICAgICAgICAgcmV0dXJuIFtwb3B1cFdpbmRvdywg
cG9wdXBSZXF1ZXN0XTsKLSAgICAgICAgfSwKLSAgICAgICk7Ci0KLSAgICAgIC8vIEdldCB0aGUg
c2hvd1Byb21pc2UgZm9yIGVhY2ggYnJvd3NpbmcgY29udGV4dC4gRG9pbmcgdGhpcyBpbiBhIHNl
cGFyYXRlCi0gICAgICAvLyB0ZXN0X2RyaXZlci5ibGVzcygpIGlzIGltcG9ydGFudCBiZWNhdXNl
IHRoZSB1c2VyIGdlc3R1cmUgYnJpbmdzCi0gICAgICAvLyB8d2luZG93fCB0byB0aGUgZm9yZWdy
b3VuZCwgc28gdGhhdCB0aGUgcGF5bWVudCBzaGVldCBjYW4gc2hvdy4KLSAgICAgIGNvbnN0IFsK
LSAgICAgICAgd2luZG93U2hvd1Byb21pc2UsCi0gICAgICAgIHBvcHVwU2hvd1Byb21pc2UsCi0g
ICAgICAgIGlmcmFtZVNob3dQcm9taXNlLAotICAgICAgXSA9IGF3YWl0IHRlc3RfZHJpdmVyLmJs
ZXNzKAotICAgICAgICAidGVzdCBtdWx0aXBsZSBuZXN0ZWQgYnJvd3NpbmcgY29udGV4dCIsCi0g
ICAgICAgICgpID0+IHsKLSAgICAgICAgICByZXR1cm4gWwotICAgICAgICAgICAgd2luZG93UmVx
dWVzdC5zaG93KCksCi0gICAgICAgICAgICBwb3B1cFJlcXVlc3Quc2hvdygpLAotICAgICAgICAg
ICAgaWZyYW1lUmVxdWVzdC5zaG93KCksCi0gICAgICAgICAgXTsKLSAgICAgICAgfSwKLSAgICAg
ICk7Ci0gICAgICAvLyBwb3B1cFJlcXVlc3QgYW5kIGlmcmFtZVJlcXVlc3Qgd2lsbCBib3RoIHJl
amVjdAotICAgICAgYXdhaXQgcHJvbWlzZV9yZWplY3RzX2RvbSgKLSAgICAgICAgdCwKLSAgICAg
ICAgIkFib3J0RXJyb3IiLAotICAgICAgICBwb3B1cFNob3dQcm9taXNlLAotICAgICAgICAiRXhw
ZWN0ZWQgcG9wdXBTaG93UHJvbWlzZSB0byByZWplY3QsIHJlcXVlc3QgaXMgYWxyZWFkeSBzaG93
aW5nLiIsCi0gICAgICApOwotCi0gICAgICBhd2FpdCBwcm9taXNlX3JlamVjdHNfZG9tKAotICAg
ICAgICB0LAotICAgICAgICAiQWJvcnRFcnJvciIsCi0gICAgICAgIGlmcmFtZVNob3dQcm9taXNl
LAotICAgICAgICAiRXhwZWN0ZWQgaWZyYW1lU2hvd1Byb21pc2UgdG8gcmVqZWN0LCByZXF1ZXN0
IGlzIGFscmVhZHkgc2hvd2luZy4iLAotICAgICAgKTsKLQotICAgICAgYXdhaXQgd2luZG93UmVx
dWVzdC5hYm9ydCgpOwotICAgICAgYXdhaXQgcHJvbWlzZV9yZWplY3RzX2RvbSgKLSAgICAgICAg
dCwKLSAgICAgICAgIkFib3J0RXJyb3IiLAotICAgICAgICB3aW5kb3dTaG93UHJvbWlzZSwKLSAg
ICAgICAgIkV4cGVjdCB3aW5kb3cgcHJvbWlzZSB0byBiZSBhYm9ydGVkIGJ5IHRlc3QuIgotICAg
ICAgKTsKLSAgICAgIHBvcHVwV2luZG93LmNsb3NlKCk7Ci0gICAgICBpZnJhbWUucmVtb3ZlKCk7
Ci0gICAgfSwgIkdpdmVuIG11bHRpcGxlIG5lc3RlZCBicm93c2luZyBjb250ZXh0cywgYW5kIHdp
bmRvdyBjYWxscyBzaG93KCkgZmlyc3QsIG90aGVyIG5lc3RlZCBicm93c2luZyBjb250ZXh0cyBj
YW4ndCBzaG93IGEgcmVxdWVzdC4iKTsKLQotICAgIHByb21pc2VfdGVzdChhc3luYyB0ID0+IHsK
LSAgICAgIGNvbnN0IGlmcmFtZSA9IGF3YWl0IGF0dGFjaElmcmFtZSgpOwotICAgICAgY29uc3Qg
aWZyYW1lV2luZG93ID0gaWZyYW1lLmNvbnRlbnRXaW5kb3c7Ci0KLSAgICAgIC8vIENyZWF0ZSBy
ZXF1ZXN0cwotICAgICAgY29uc3Qgd2luZG93UmVxdWVzdCA9IG5ldyB3aW5kb3cuUGF5bWVudFJl
cXVlc3QobWV0aG9kcywgZGV0YWlscyk7Ci0gICAgICBjb25zdCBpZnJhbWVSZXF1ZXN0ID0gbmV3
IGlmcmFtZVdpbmRvdy5QYXltZW50UmVxdWVzdChtZXRob2RzLCBkZXRhaWxzKTsKLQotICAgICAg
Ly8gT3BlbiBhIHBvcHVwIHdpbmRvdwotICAgICAgY29uc3QgWwotICAgICAgICBwb3B1cFdpbmRv
dywKLSAgICAgICAgcG9wdXBSZXF1ZXN0LAotICAgICAgICBwb3B1cFNob3dQcm9taXNlLAotICAg
ICAgICB3aW5kb3dTaG93UHJvbWlzZSwKLSAgICAgICAgaWZyYW1lU2hvd1Byb21pc2UKLSAgICAg
IF0gPSBhd2FpdCB0ZXN0X2RyaXZlci5ibGVzcygKLSAgICAgICAgInRlc3QgbXVsdGlwbGUgYnJv
d3NpbmcgY29udGV4dCBhbmQgaWZyYW1lIGNhbGxzIHNob3coKSBmaXJzdCIsCi0gICAgICAgIGFz
eW5jICgpID0+IHsKLSAgICAgICAgICBjb25zdCBwb3B1cFdpbmRvdyA9IGF3YWl0IGxvYWRQb3B1
cEluc2lkZVVzZXJHZXN0dXJlKCk7Ci0gICAgICAgICAgY29uc3QgcG9wdXBSZXF1ZXN0ID0gbmV3
IHBvcHVwV2luZG93LlBheW1lbnRSZXF1ZXN0KG1ldGhvZHMsIGRldGFpbHMpOwotICAgICAgICAg
IGNvbnN0IHBvcHVwU2hvd1Byb21pc2UgPSBwb3B1cFJlcXVlc3Quc2hvdygpOwotICAgICAgICAg
IGNvbnN0IHdpbmRvd1Nob3dQcm9taXNlID0gd2luZG93UmVxdWVzdC5zaG93KCk7Ci0gICAgICAg
ICAgY29uc3QgaWZyYW1lU2hvd1Byb21pc2UgPSBpZnJhbWVSZXF1ZXN0LnNob3coKTsKLSAgICAg
ICAgICByZXR1cm4gW3BvcHVwV2luZG93LAotICAgICAgICAgICAgICAgICAgcG9wdXBSZXF1ZXN0
LAotICAgICAgICAgICAgICAgICAgcG9wdXBTaG93UHJvbWlzZSwKLSAgICAgICAgICAgICAgICAg
IHdpbmRvd1Nob3dQcm9taXNlLAotICAgICAgICAgICAgICAgICAgaWZyYW1lU2hvd1Byb21pc2Vd
OworICAgICAgLy8gV2UgbmF2aWdhdGUgYXdheSwgY2F1c2luZyB0aGUgcGF5bWVudCBzaGVldCB0
byBjbG9zZQorICAgICAgLy8gYW5kIHRoZSByZXF1ZXN0IGlzIHNob3dpbmcgYm9vbGVhbiB0byBi
ZWNvbWUgZmFsc2UuCisgICAgICBhd2FpdCBuZXcgUHJvbWlzZSgocmVzb2x2ZSkgPT4geworICAg
ICAgICBpZnJhbWUub25sb2FkID0gcmVzb2x2ZTsKKyAgICAgICAgaWZyYW1lLnNyYyA9ICJibGFu
ay5odG1sP3Rlc3Q9MTIzIjsKICAgICAgIH0pOwogCi0gICAgICAvLyB3aW5kb3dTaG93UHJvbWlz
ZSBhbmQgaWZyYW1lUmVxdWVzdCB3aWxsIGJvdGggcmVqZWN0Ci0gICAgICBhd2FpdCBwcm9taXNl
X3JlamVjdHNfZG9tKAotICAgICAgICB0LAotICAgICAgICAiQWJvcnRFcnJvciIsCi0gICAgICAg
IHdpbmRvd1Nob3dQcm9taXNlLAotICAgICAgICAiRXhwZWN0ZWQgd2luZG93U2hvd1Byb21pc2Ug
dG8gcmVqZWN0LCB0aGUgcG9wdXAgaXMgc2hvd2luZyBhIHBheW1lbnQgcmVxdWVzdC4iLAotICAg
ICAgKTsKLQotICAgICAgYXdhaXQgcHJvbWlzZV9yZWplY3RzX2RvbSgKLSAgICAgICAgdCwKLSAg
ICAgICAgIkFib3J0RXJyb3IiLAotICAgICAgICBpZnJhbWVTaG93UHJvbWlzZSwKLSAgICAgICAg
IkV4cGVjdGVkIGlmcmFtZVNob3dQcm9taXNlIHRvIHJlamVjdCwgdGhlIHBvcHVwIGlzIHNob3dp
bmcgYSBwYXltZW50IHJlcXVlc3QuIiwKLSAgICAgICk7Ci0KLSAgICAgIGF3YWl0IHBvcHVwUmVx
dWVzdC5hYm9ydCgpOwotICAgICAgYXdhaXQgcHJvbWlzZV9yZWplY3RzX2RvbSgKLSAgICAgICAg
dCwKLSAgICAgICAgIkFib3J0RXJyb3IiLAotICAgICAgICBwb3B1cFNob3dQcm9taXNlLAotICAg
ICAgICAiRXhwZWN0ZWQgcG9wdXBTaG93UHJvbWlzZSB0byBiZSBhYm9ydGVkIGJ5IHRlc3QuIiwK
LSAgICAgICk7Ci0gICAgICBwb3B1cFdpbmRvdy5jbG9zZSgpOwogICAgICAgaWZyYW1lLnJlbW92
ZSgpOwotICAgIH0sICJHaXZlbiBtdWx0aXBsZSBuZXN0ZWQgYnJvd3NpbmcgY29udGV4dHMsIGFu
ZCBwb3B1cCBjYWxscyBzaG93KCkgZmlyc3QsIG90aGVyIG5lc3RlZCBicm93c2luZyBjb250ZXh0
cyBjYW4ndCBzaG93IGEgcmVxdWVzdC4iKTsKLQotICAgIHByb21pc2VfdGVzdChhc3luYyB0ID0+
IHsKLSAgICAgIGNvbnN0IGlmcmFtZSA9IGF3YWl0IGF0dGFjaElmcmFtZSgpOwotICAgICAgY29u
c3QgaWZyYW1lV2luZG93ID0gaWZyYW1lLmNvbnRlbnRXaW5kb3c7Ci0KLSAgICAgIC8vIENyZWF0
ZSByZXF1ZXN0cwotICAgICAgY29uc3Qgd2luZG93UmVxdWVzdCA9IG5ldyB3aW5kb3cuUGF5bWVu
dFJlcXVlc3QobWV0aG9kcywgZGV0YWlscyk7Ci0gICAgICBjb25zdCBpZnJhbWVSZXF1ZXN0ID0g
bmV3IGlmcmFtZVdpbmRvdy5QYXltZW50UmVxdWVzdChtZXRob2RzLCBkZXRhaWxzKTsKLQotICAg
ICAgY29uc3QgW3BvcHVwV2luZG93LCBwb3B1cFJlcXVlc3RdID0gYXdhaXQgdGVzdF9kcml2ZXIu
Ymxlc3MoCi0gICAgICAgICJvcGVuIHBvcHVwIHRvIHRlc3QgbXVsdGlwbGUgY29udGV4dCBhbmQg
aWZyYW1lIGNhbGxzIHNob3coKSBmaXJzdCIsCi0gICAgICAgIGFzeW5jICgpID0+IHsKLSAgICAg
ICAgICBjb25zdCB3ID0gYXdhaXQgbG9hZFBvcHVwSW5zaWRlVXNlckdlc3R1cmUoKTsKLSAgICAg
ICAgICBjb25zdCByID0gbmV3IHcuUGF5bWVudFJlcXVlc3QobWV0aG9kcywgZGV0YWlscyk7Ci0g
ICAgICAgICAgcmV0dXJuIFt3LCByXTsKLSAgICAgICAgfSwKLSAgICAgICk7Ci0KLSAgICAgIC8v
IEdldCB0aGUgc2hvd1Byb21pc2UgZm9yIGVhY2ggYnJvd3NpbmcgY29udGV4dC4gRG9pbmcgdGhp
cyBpbiBhIHNlcGFyYXRlCi0gICAgICAvLyB0ZXN0X2RyaXZlci5ibGVzcygpIGlzIGltcG9ydGFu
dCBiZWNhdXNlIHRoZSB1c2VyIGdlc3R1cmUgYnJpbmdzCi0gICAgICAvLyB8d2luZG93fCB0byB0
aGUgZm9yZWdyb3VuZCwgc28gdGhhdCB0aGUgcGF5bWVudCBzaGVldCBjYW4gc2hvdy4KLSAgICAg
IGNvbnN0IFsKLSAgICAgICAgaWZyYW1lU2hvd1Byb21pc2UsCi0gICAgICAgIHBvcHVwU2hvd1By
b21pc2UsCi0gICAgICAgIHdpbmRvd1Nob3dQcm9taXNlLAotICAgICAgXSA9IGF3YWl0IHRlc3Rf
ZHJpdmVyLmJsZXNzKAotICAgICAgICAidGVzdCBtdWx0aXBsZSBicm93c2luZyBjb250ZXh0IGFu
ZCBpZnJhbWUgY2FsbHMgc2hvdygpIGZpcnN0IiwKLSAgICAgICAgYXN5bmMgKCkgPT4gewotICAg
ICAgICAgIHJldHVybiBbCi0gICAgICAgICAgICBpZnJhbWVSZXF1ZXN0LnNob3coKSwKLSAgICAg
ICAgICAgIHBvcHVwUmVxdWVzdC5zaG93KCksCi0gICAgICAgICAgICB3aW5kb3dSZXF1ZXN0LnNo
b3coKSwKLSAgICAgICAgICBdOwotICAgICAgICB9LAotICAgICAgKTsKLQotICAgICAgLy8gd2lu
ZG93U2hvd1Byb21pc2UgYW5kIGlmcmFtZVJlcXVlc3Qgd2lsbCBib3RoIHJlamVjdAotICAgICAg
YXdhaXQgcHJvbWlzZV9yZWplY3RzX2RvbSgKLSAgICAgICAgdCwKLSAgICAgICAgIkFib3J0RXJy
b3IiLAotICAgICAgICB3aW5kb3dTaG93UHJvbWlzZSwKLSAgICAgICAgIkV4cGVjdGVkIHdpbmRv
d1Nob3dQcm9taXNlIHRvIHJlamVjdCwgdGhlIHBvcHVwIGlzIHNob3dpbmcgYSBwYXltZW50IHJl
cXVlc3QuIiwKLSAgICAgICk7CiAKKyAgICAgIC8vIE5vdyB3ZSBzaG91bGQgYmUgb2sgdG8gc3Bp
biB1cCBhIG5ldyBwYXltZW50IHJlcXVlc3QKKyAgICAgIGNvbnN0IHJlcXVlc3QgPSBuZXcgd2lu
ZG93LlBheW1lbnRSZXF1ZXN0KG1ldGhvZHMsIGRldGFpbHMpOworICAgICAgY29uc3QgW3Nob3dQ
cm9taXNlXSA9IGF3YWl0IGdldFNob3dQcm9taXNlRnJvbUNvbnRleHQocmVxdWVzdCk7CisgICAg
ICBhd2FpdCByZXF1ZXN0LmFib3J0KCk7CiAgICAgICBhd2FpdCBwcm9taXNlX3JlamVjdHNfZG9t
KAogICAgICAgICB0LAogICAgICAgICAiQWJvcnRFcnJvciIsCi0gICAgICAgIHBvcHVwU2hvd1By
b21pc2UsCi0gICAgICAgICJFeHBlY3RlZCBwb3B1cFNob3dQcm9taXNlIHRvIHJlamVjdCwgdGhl
IHBvcHVwIGlzIHNob3dpbmcgYSBwYXltZW50IHJlcXVlc3QuIiwKLSAgICAgICk7Ci0KLSAgICAg
IGF3YWl0IGlmcmFtZVJlcXVlc3QuYWJvcnQoKTsKLSAgICAgIGF3YWl0IHByb21pc2VfcmVqZWN0
c19kb20oCi0gICAgICAgIHQsCi0gICAgICAgICJBYm9ydEVycm9yIiwKLSAgICAgICAgaWZyYW1l
U2hvd1Byb21pc2UsCi0gICAgICAgICJFeHBlY3RlZCBpZnJhbWVTaG93UHJvbWlzZSB0byBiZSBh
Ym9ydGVkIGJ5IHRlc3QuIgotICAgICAgKTsKLSAgICAgIHBvcHVwV2luZG93LmNsb3NlKCk7Ci0g
ICAgICBpZnJhbWUucmVtb3ZlKCk7Ci0gICAgfSwgIkdpdmVuIG11bHRpcGxlIG5lc3RlZCBicm93
c2luZyBjb250ZXh0cywgYW5kIGFuIGlmcmFtZSBjYWxscyBzaG93KCkgZmlyc3QsIG90aGVyIG5l
c3RlZCBicm93c2luZyBjb250ZXh0cyBjYW4ndCBzaG93IGEgcmVxdWVzdC4iKTsKLQotICAgIHBy
b21pc2VfdGVzdChhc3luYyB0ID0+IHsKLSAgICAgIGNvbnN0IGlmcmFtZSA9IGF3YWl0IGF0dGFj
aElmcmFtZSgpOwotICAgICAgY29uc3QgaWZyYW1lV2luZG93ID0gaWZyYW1lLmNvbnRlbnRXaW5k
b3c7Ci0gICAgICBjb25zdCBpZnJhbWVSZXF1ZXN0ID0gbmV3IGlmcmFtZVdpbmRvdy5QYXltZW50
UmVxdWVzdChtZXRob2RzLCBkZXRhaWxzKTsKLSAgICAgIGNvbnN0IGlmcmFtZVNob3dQcm9taXNl
ID0gdGVzdF9kcml2ZXIuYmxlc3MoCi0gICAgICAgICJ0ZXN0IG5hdmlnYXRpbmcgaWZyYW1lIGFm
dGVyIHNob3coKSIsCi0gICAgICAgICgpID0+IGlmcmFtZVJlcXVlc3Quc2hvdygpLAotICAgICAg
KTsKLQotICAgICAgLy8gV2UgbmF2aWdhdGUgYXdheSwgY2F1c2luZyB0aGUgcGF5bWVudCBzaGVl
dCB0byBjbG9zZQotICAgICAgLy8gYW5kIHRoZSByZXF1ZXN0IGlzIHNob3dpbmcgYm9vbGVhbiB0
byBiZWNvbWUgZmFsc2UuCi0gICAgICBpZnJhbWUuc3JjID0gImJsYW5rLmh0bWw/YWJjPTEyMyI7
Ci0gICAgICBhd2FpdCBuZXcgUHJvbWlzZShyZXNvbHZlID0+IChpZnJhbWUub25sb2FkID0gcmVz
b2x2ZSkpOwotICAgICAgYXdhaXQgcHJvbWlzZV9yZWplY3RzX2RvbSgKLSAgICAgICAgdCwKLSAg
ICAgICAgIkFib3J0RXJyb3IiLAotICAgICAgICBpZnJhbWVTaG93UHJvbWlzZSwKLSAgICAgICAg
Ik5hdmlnYXRpbmcgaWZyYW1lIGF3YXkgbXVzdCBjYXVzZSB0aGUgaWZyYW1lU2hvd1Byb21pc2Ug
dG8gcmVqZWN0LiIsCisgICAgICAgIHNob3dQcm9taXNlLAorICAgICAgICAiTm9ybWFsIGFib3J0
LiIKICAgICAgICk7Ci0gICAgICBpZnJhbWUucmVtb3ZlKCk7Ci0KLSAgICAgIC8vIE5vdyB3ZSBz
aG91bGQgYmUgb2sgdG8gc3BpbiB1cCBhIG5ldyBwYXltZW50IHJlcXVlc3QKLSAgICAgIGNvbnN0
IHJlcXVlc3QgPSBuZXcgd2luZG93LlBheW1lbnRSZXF1ZXN0KG1ldGhvZHMsIGRldGFpbHMpOwot
ICAgICAgY29uc3QgW3Nob3dQcm9taXNlXSA9IGF3YWl0IHRlc3RfZHJpdmVyLmJsZXNzKAotICAg
ICAgICAgICJzdGFydCBhIG5ldyBwYXltZW50IHJlcXVlc3QiLAotICAgICAgICAgICgpID0+IHsK
LSAgICAgICAgICAgIHJldHVybiBbcmVxdWVzdC5zaG93KCldOwotICAgICAgICAgIH0pOwotCi0g
ICAgICAvLyBJZiBhIHBheW1lbnQgc2hlZXQgZmFpbHMgdG8gc2hvdywgaXQgc2hvdWxkIHJlamVj
dCBpbW1lZGlhdGVseS4gSWYgaXQKLSAgICAgIC8vIGhhc24ndCByZWplY3RlZCBpbiAxIHNlY29u
ZCwgdGhlbiB0aGUgdGVzdCBoYXMgcGFzc2VkLgotICAgICAgdC5zdGVwX3RpbWVvdXQoYXN5bmMg
KCkgPT4gewotICAgICAgICAvLyBXZSdyZSBkb25lLiBDbGVhbiB1cC4KLSAgICAgICAgYXdhaXQg
cmVxdWVzdC5hYm9ydCgpOwotICAgICAgICB0LmRvbmUoKTsKLSAgICAgIH0pOwotCi0gICAgICAv
LyBJZiB0aGUgbmF2aWdhdGlvbiBpbiBpZnJhbWUgZmFpbGVkIHRvIGNsb3NlIHRoZSBvcmlnaW5h
bCBwYXltZW50IHNoZWV0Ci0gICAgICAvLyB0aGVyZSwgfHNob3dQcm9taXNlfCBzaG91bGQgcmVq
ZWN0IGltbWVkaWF0ZWx5IGFuZCB0aGlzIGluZGljYXRlcyBhCi0gICAgICAvLyBmYWlsdXJlIG9m
IHRoaXMgdGVzdC4KLSAgICAgIGF3YWl0IHNob3dQcm9taXNlLnRoZW4oKCkgPT4gewotICAgICAg
ICBhc3NlcnRfdHJ1ZShmYWxzZSwKLSAgICAgICAgICAiU2Vjb25kIHBheW1lbnQgc2hlZXQgc2hv
dWxkIGJlIHBlbmRpbmcgYnV0IGlzIHJlc29sdmVkLiIpOwotICAgICAgfSkKLSAgICAgIC5jYXRj
aChlID0+IHsKLSAgICAgICAgYXNzZXJ0X3RydWUoZmFsc2UsCi0gICAgICAgICAgIlNlY29uZCBw
YXltZW50IHNoZWV0IHNob3VsZCBiZSBwZW5kaW5nIGJ1dCBpcyByZWplY3RlZC4iICsgZS5tZXNz
YWdlKTsKLSAgICAgIH0pOwogICAgIH0sICJOYXZpZ2F0aW5nIGFuIGlmcmFtZSBhcyBhIG5lc3Rl
ZCBicm93c2luZyBjb250ZXh0IHNldHMgJ3BheW1lbnQgcmVxdWVzdCBpcyBzaG93aW5nIGJvb2xl
YW4nIHRvIGZhbHNlLiIpOwotCi0gICAgcHJvbWlzZV90ZXN0KGFzeW5jIHQgPT4gewotICAgICAg
Y29uc3QgW3BvcHVwV2luZG93LCBwb3B1cFJlcXVlc3QsIHBvcHVwU2hvd1Byb21pc2VdID0KLSAg
ICAgICAgYXdhaXQgdGVzdF9kcml2ZXIuYmxlc3MoCi0gICAgICAgICAgInRyaWdnZXIgcGF5bWVu
dCBpbiBhIHBvcHVwIHdpbmRvdyIsCi0gICAgICAgICAgYXN5bmMgKCkgPT4gewotICAgICAgICAg
ICAgY29uc3QgcG9wdXBXaW5kb3cgPSBhd2FpdCBsb2FkUG9wdXBJbnNpZGVVc2VyR2VzdHVyZSgp
OwotICAgICAgICAgICAgY29uc3QgcG9wdXBSZXF1ZXN0ID0gbmV3IHBvcHVwV2luZG93LlBheW1l
bnRSZXF1ZXN0KG1ldGhvZHMsIGRldGFpbHMpOwotICAgICAgICAgICAgcmV0dXJuIFtwb3B1cFdp
bmRvdywgcG9wdXBSZXF1ZXN0LCBwb3B1cFJlcXVlc3Quc2hvdygpXTsKLSAgICAgICAgICB9KTsK
LQotICAgICAgLy8gV2UgbmF2aWdhdGUgYXdheSwgY2F1c2luZyB0aGUgcGF5bWVudCBzaGVldCB0
byBjbG9zZQotICAgICAgLy8gYW5kIHRoZSByZXF1ZXN0IGlzIHNob3dpbmcgYm9vbGVhbiB0byBi
ZWNvbWUgZmFsc2UuCi0gICAgICBwb3B1cFdpbmRvdy5sb2NhdGlvbiA9ICJibGFuay5odG1sP2Fi
Yz0xMjMiOwotICAgICAgYXdhaXQgbmV3IFByb21pc2UocmVzb2x2ZSA9PiAocG9wdXBXaW5kb3cu
b25sb2FkID0gcmVzb2x2ZSkpOwotCi0gICAgICAvLyBEb24ndCB3YWl0IGZvciB8cG9wdXBTaG93
UHJvbWlzZXwgdG8gcmVqZWN0IGJlY2F1c2UgaXQgbWF5IG5ldmVyIGRvCi0gICAgICAvLyAoc2Vl
IGh0dHBzOi8vZ2l0aHViLmNvbS93M2MvcGF5bWVudC1yZXF1ZXN0L2lzc3Vlcy84NzIpLiBJbnN0
ZWFkLCB0cnkKLSAgICAgIC8vIHRvIHNwaW4gdXAgYSBuZXcgcGF5bWVudCByZXF1ZXN0IGFuZCBt
YWtlIHN1cmUgaXQgc3VjY2VlZHMuCi0gICAgICBjb25zdCByZXF1ZXN0ID0gbmV3IHdpbmRvdy5Q
YXltZW50UmVxdWVzdChtZXRob2RzLCBkZXRhaWxzKTsKLSAgICAgIGNvbnN0IFtzaG93UHJvbWlz
ZV0gPSBhd2FpdCB0ZXN0X2RyaXZlci5ibGVzcygKLSAgICAgICAgInRyaWdnZXIgcGF5bWVudCBp
biBtYWluIHdpbmRvdyIsCi0gICAgICAgICgpID0+IHsKLSAgICAgICAgICByZXR1cm4gW3JlcXVl
c3Quc2hvdygpXTsKLSAgICAgICAgfSk7Ci0KLSAgICAgIC8vIElmIGEgcGF5bWVudCBzaGVldCBm
YWlscyB0byBzaG93LCBpdCBzaG91bGQgcmVqZWN0IGltbWVkaWF0ZWx5LiBJZiBpdAotICAgICAg
Ly8gaGFzbid0IHJlamVjdGVkIGluIDEgc2Vjb25kLCB0aGVuIHRoZSB0ZXN0IGhhcyBwYXNzZWQu
Ci0gICAgICB0LnN0ZXBfdGltZW91dChhc3luYyAoKSA9PiB7Ci0gICAgICAgIC8vIFdlJ3JlIGRv
bmUuIENsZWFuIHVwLgotICAgICAgICBwb3B1cFdpbmRvdy5jbG9zZSgpOwotICAgICAgICBhd2Fp
dCByZXF1ZXN0LmFib3J0KCk7Ci0gICAgICAgIHQuZG9uZSgpOwotICAgICAgfSwgMTAwMCk7Ci0K
LSAgICAgIC8vIElmIHRoZSBuYXZpZ2F0aW9uIGluIHBvcHVwIHdpbmRvdyBmYWlsZWQgdG8gY2xv
c2UgdGhlIG9yaWdpbmFsIHBheW1lbnQKLSAgICAgIC8vIHNoZWV0IHRoZXJlLCB8c2hvd1Byb21p
c2V8IHNob3VsZCByZWplY3QgaW1tZWRpYXRlbHkgYW5kIHRoaXMgaW5kaWNhdGVzCi0gICAgICAv
LyBhIGZhaWx1cmUgb2YgdGhpcyB0ZXN0LgotICAgICAgYXdhaXQgc2hvd1Byb21pc2UudGhlbigo
KSA9PiB7Ci0gICAgICAgIGFzc2VydF90cnVlKGZhbHNlLAotICAgICAgICAgICJTZWNvbmQgcGF5
bWVudCBzaGVldCBzaG91bGQgYmUgcGVuZGluZyBidXQgaXMgcmVzb2x2ZWQuIik7Ci0gICAgICB9
KQotICAgICAgLmNhdGNoKGUgPT4gewotICAgICAgICBhc3NlcnRfdHJ1ZShmYWxzZSwKLSAgICAg
ICAgICAiU2Vjb25kIHBheW1lbnQgc2hlZXQgc2hvdWxkIGJlIHBlbmRpbmcgYnV0IGlzIHJlamVj
dGVkLiIpOwotICAgICAgfSk7Ci0gICAgfSwgIk5hdmlnYXRpbmcgYSBwb3B1cCBhcyBhIG5lc3Rl
ZCBicm93c2luZyBjb250ZXh0IHNldHMgJ3BheW1lbnQgcmVxdWVzdCBpcyBzaG93aW5nIGJvb2xl
YW4nIHRvIGZhbHNlLiIpOwogICA8L3NjcmlwdD4KIDwvYm9keT4KZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvcGF5bWVudC1yZXF1ZXN0L3Bh
eW1lbnQtcmVxdWVzdC1jYW5tYWtlcGF5bWVudC1tZXRob2QuaHR0cHMtZXhwZWN0ZWQudHh0IGIv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9wYXltZW50LXJlcXVl
c3QvcGF5bWVudC1yZXF1ZXN0LWNhbm1ha2VwYXltZW50LW1ldGhvZC5odHRwcy1leHBlY3RlZC50
eHQKaW5kZXggYjY4NGQ3Nzg2NWFhZDQ3Zjg1ZjEzMjljMzUyYTljZDcxMDYzZGI5Zi4uNTY2MTgy
ZjFjM2E4MGRmY2Y4OGNkMTI0YjFlZWVkOWU4OGIxYmNjNyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9wYXltZW50LXJlcXVlc3QvcGF5bWVu
dC1yZXF1ZXN0LWNhbm1ha2VwYXltZW50LW1ldGhvZC5odHRwcy1leHBlY3RlZC50eHQKKysrIGIv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9wYXltZW50LXJlcXVl
c3QvcGF5bWVudC1yZXF1ZXN0LWNhbm1ha2VwYXltZW50LW1ldGhvZC5odHRwcy1leHBlY3RlZC50
eHQKQEAgLTQsNiArNCw2IEBAIFBBU1MgSWYgcGF5bWVudCBtZXRob2QgaWRlbnRpZmllciBhcmUg
c3VwcG9ydGVkLCByZXNvbHZlIHByb21pc2Ugd2l0aCB0cnVlLgogUEFTUyBJZiByZXF1ZXN0Lltb
c3RhdGVdXSBpcyAiY3JlYXRlZCIsIHRoZW4gcmV0dXJuIGEgcHJvbWlzZSB0aGF0IHJlc29sdmVz
IHRvIHRydWUgZm9yIGtub3duIG1ldGhvZC4KIFBBU1MgQWxsIG1ldGhvZHMgYXJlIHVuc3VwcG9y
dGVkCiBQQVNTIE1peCBvZiBzdXBwb3J0ZWQgYW5kIHVuc3VwcG9ydGVkIG1ldGhvZHMsIGF0IGxl
YXN0IG9uZSBtZXRob2QgaXMgc3VwcG9ydGVkLgotRkFJTCBJZiByZXF1ZXN0Lltbc3RhdGVdXSBp
cyAiaW50ZXJhY3RpdmUiLCB0aGVuIHJldHVybiBhIHByb21pc2UgcmVqZWN0ZWQgd2l0aCBhbiAi
SW52YWxpZFN0YXRlRXJyb3IiIERPTUV4Y2VwdGlvbi4gYXNzZXJ0X3VucmVhY2hlZDogU2hvdWxk
IGhhdmUgcmVqZWN0ZWQ6IHVuZGVmaW5lZCBSZWFjaGVkIHVucmVhY2hhYmxlIGNvZGUKLUZBSUwg
SWYgcmVxdWVzdC5bW3N0YXRlXV0gaXMgImNsb3NlZCIsIHRoZW4gcmV0dXJuIGEgcHJvbWlzZSBy
ZWplY3RlZCB3aXRoIGFuICJJbnZhbGlkU3RhdGVFcnJvciIgRE9NRXhjZXB0aW9uLiBwcm9taXNl
X3Rlc3Q6IFVuaGFuZGxlZCByZWplY3Rpb24gd2l0aCB2YWx1ZTogb2JqZWN0ICJJbnZhbGlkU3Rh
dGVFcnJvcjogVGhlIG9iamVjdCBpcyBpbiBhbiBpbnZhbGlkIHN0YXRlLiIKK1BBU1MgSWYgcmVx
dWVzdC5bW3N0YXRlXV0gaXMgImludGVyYWN0aXZlIiwgdGhlbiByZXR1cm4gYSBwcm9taXNlIHJl
amVjdGVkIHdpdGggYW4gIkludmFsaWRTdGF0ZUVycm9yIiBET01FeGNlcHRpb24uCitQQVNTIElm
IHJlcXVlc3QuW1tzdGF0ZV1dIGlzICJjbG9zZWQiLCB0aGVuIHJldHVybiBhIHByb21pc2UgcmVq
ZWN0ZWQgd2l0aCBhbiAiSW52YWxpZFN0YXRlRXJyb3IiIERPTUV4Y2VwdGlvbi4KIApkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9wYXltZW50
LXJlcXVlc3QvcGF5bWVudC1yZXF1ZXN0LWhhc2Vucm9sbGVkaW5zdHJ1bWVudC1tZXRob2QudGVu
dGF0aXZlLmh0dHBzLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvcGF5bWVudC1yZXF1ZXN0L3BheW1lbnQtcmVxdWVzdC1oYXNlbnJvbGxl
ZGluc3RydW1lbnQtbWV0aG9kLnRlbnRhdGl2ZS5odHRwcy1leHBlY3RlZC50eHQKaW5kZXggODFh
ZjZiMTcwNjVhM2ZlYjcwNzM5NjVhMTM5YTRlMzIyM2Y4NTA0OC4uNTM5MWE1YjNiNzg3YTc3YzVk
ZDMxN2JmNjI5YTljY2Q1NmY2Zjk5MiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9wYXltZW50LXJlcXVlc3QvcGF5bWVudC1yZXF1ZXN0LWhh
c2Vucm9sbGVkaW5zdHJ1bWVudC1tZXRob2QudGVudGF0aXZlLmh0dHBzLWV4cGVjdGVkLnR4dAor
KysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3BheW1lbnQt
cmVxdWVzdC9wYXltZW50LXJlcXVlc3QtaGFzZW5yb2xsZWRpbnN0cnVtZW50LW1ldGhvZC50ZW50
YXRpdmUuaHR0cHMtZXhwZWN0ZWQudHh0CkBAIC0yLDUgKzIsNSBAQCBJZiB5b3UgZmluZCBhIGJ1
Z2d5IHRlc3QsIHBsZWFzZSBmaWxlIGEgYnVnIGFuZCB0YWcgb25lIG9mIHRoZSBzdWdnZXN0ZWQg
cmV2aWV3ZQogCiBGQUlMIGhhc0Vucm9sbGVkSW5zdHJ1bWVudCgpIHJlc29sdmVzIHRvIGZhbHNl
IGZvciB1bnN1cHBvcnRlZCBwYXltZW50IG1ldGhvZHMuIHByb21pc2VfdGVzdDogVW5oYW5kbGVk
IHJlamVjdGlvbiB3aXRoIHZhbHVlOiBvYmplY3QgIlR5cGVFcnJvcjogcmVxdWVzdC5oYXNFbnJv
bGxlZEluc3RydW1lbnQgaXMgbm90IGEgZnVuY3Rpb24uIChJbiAncmVxdWVzdC5oYXNFbnJvbGxl
ZEluc3RydW1lbnQoKScsICdyZXF1ZXN0Lmhhc0Vucm9sbGVkSW5zdHJ1bWVudCcgaXMgdW5kZWZp
bmVkKSIKIEZBSUwgSWYgcmVxdWVzdC5bW3N0YXRlXV0gaXMgImludGVyYWN0aXZlIiwgdGhlbiBy
ZXR1cm4gYSBwcm9taXNlIHJlamVjdGVkIHdpdGggYW4gIkludmFsaWRTdGF0ZUVycm9yIiBET01F
eGNlcHRpb24uIHByb21pc2VfdGVzdDogVW5oYW5kbGVkIHJlamVjdGlvbiB3aXRoIHZhbHVlOiBv
YmplY3QgIlR5cGVFcnJvcjogcmVxdWVzdC5oYXNFbnJvbGxlZEluc3RydW1lbnQgaXMgbm90IGEg
ZnVuY3Rpb24uIChJbiAncmVxdWVzdC5oYXNFbnJvbGxlZEluc3RydW1lbnQoKScsICdyZXF1ZXN0
Lmhhc0Vucm9sbGVkSW5zdHJ1bWVudCcgaXMgdW5kZWZpbmVkKSIKLUZBSUwgSWYgcmVxdWVzdC5b
W3N0YXRlXV0gaXMgImNsb3NlZCIsIHRoZW4gcmV0dXJuIGEgcHJvbWlzZSByZWplY3RlZCB3aXRo
IGFuICJJbnZhbGlkU3RhdGVFcnJvciIgRE9NRXhjZXB0aW9uLiBwcm9taXNlX3Rlc3Q6IFVuaGFu
ZGxlZCByZWplY3Rpb24gd2l0aCB2YWx1ZTogb2JqZWN0ICJJbnZhbGlkU3RhdGVFcnJvcjogVGhl
IG9iamVjdCBpcyBpbiBhbiBpbnZhbGlkIHN0YXRlLiIKK0ZBSUwgSWYgcmVxdWVzdC5bW3N0YXRl
XV0gaXMgImNsb3NlZCIsIHRoZW4gcmV0dXJuIGEgcHJvbWlzZSByZWplY3RlZCB3aXRoIGFuICJJ
bnZhbGlkU3RhdGVFcnJvciIgRE9NRXhjZXB0aW9uLiBwcm9taXNlX3JlamVjdHNfZG9tOiBmdW5j
dGlvbiAiZnVuY3Rpb24gKCkgeyB0aHJvdyBlIH0iIHRocmV3IG9iamVjdCAiTm90U3VwcG9ydGVk
RXJyb3I6IFRoZSBvcGVyYXRpb24gaXMgbm90IHN1cHBvcnRlZC4iIHRoYXQgaXMgbm90IGEgRE9N
RXhjZXB0aW9uIEFib3J0RXJyb3I6IHByb3BlcnR5ICJjb2RlIiBpcyBlcXVhbCB0byA5LCBleHBl
Y3RlZCAyMAogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3BheW1lbnQtcmVxdWVzdC9wYXltZW50LXJlcXVlc3Qtc2hvdy1tZXRob2QuaHR0
cHMtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy9wYXltZW50LXJlcXVlc3QvcGF5bWVudC1yZXF1ZXN0LXNob3ctbWV0aG9kLmh0dHBzLWV4
cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5iODEwNDZiOGVjM2I1OGRhY2ViM2RiMTBiMjIyNDIwNzk2
NzBlNjVlCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy9wYXltZW50LXJlcXVlc3QvcGF5bWVudC1yZXF1ZXN0LXNob3ctbWV0aG9k
Lmh0dHBzLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDggQEAKK0lmIHlvdSBmaW5kIGEgYnVnZ3kg
dGVzdCwgcGxlYXNlIGZpbGUgYSBidWcgYW5kIHRhZyBvbmUgb2YgdGhlIHN1Z2dlc3RlZCByZXZp
ZXdlcnMuCisKK1BBU1MgQ2FsbGluZyBzaG93KCkgd2l0aG91dCBiZWluZyB0cmlnZ2VyZWQgYnkg
dXNlciBpbnRlcmFjdGlvbiB0aHJvd3MKK0ZBSUwgVGhyb3dzIGlmIHRoZSBwcm9taXNlIFtbc3Rh
dGVdXSBpcyBub3QgJ2NyZWF0ZWQnLiBwcm9taXNlX3JlamVjdHNfZG9tOiBmdW5jdGlvbiAiZnVu
Y3Rpb24gKCkgeyB0aHJvdyBlIH0iIHRocmV3IG9iamVjdCAiU2VjdXJpdHlFcnJvcjogc2hvdygp
IG11c3QgYmUgdHJpZ2dlcmVkIGJ5IHVzZXIgYWN0aXZhdGlvbi4iIHRoYXQgaXMgbm90IGEgRE9N
RXhjZXB0aW9uIEludmFsaWRTdGF0ZUVycm9yOiBwcm9wZXJ0eSAiY29kZSIgaXMgZXF1YWwgdG8g
MTgsIGV4cGVjdGVkIDExCitGQUlMIElmIHRoZSB1c2VyIGFnZW50J3MgInBheW1lbnQgcmVxdWVz
dCBpcyBzaG93aW5nIiBib29sZWFuIGlzIHRydWUsIHRoZW4gcmV0dXJuIGEgcHJvbWlzZSByZWpl
Y3RlZCB3aXRoIGFuICJBYm9ydEVycm9yIiBET01FeGNlcHRpb24uIHByb21pc2VfdGVzdDogVW5o
YW5kbGVkIHJlamVjdGlvbiB3aXRoIHZhbHVlOiBvYmplY3QgIkludmFsaWRTdGF0ZUVycm9yOiBU
aGUgb2JqZWN0IGlzIGluIGFuIGludmFsaWQgc3RhdGUuIgorRkFJTCBJZiBwYXltZW50IG1ldGhv
ZCBjb25zdWx0YXRpb24gcHJvZHVjZXMgbm8gc3VwcG9ydGVkIG1ldGhvZCBvZiBwYXltZW50LCB0
aGVuIHJldHVybiBhIHByb21pc2UgcmVqZWN0ZWQgd2l0aCBhICJOb3RTdXBwb3J0ZWRFcnJvciIg
RE9NRXhjZXB0aW9uLiBwcm9taXNlX3JlamVjdHNfZG9tOiBmdW5jdGlvbiAiZnVuY3Rpb24gKCkg
eyB0aHJvdyBlIH0iIHRocmV3IG9iamVjdCAiQWJvcnRFcnJvcjogVGhlIG9wZXJhdGlvbiB3YXMg
YWJvcnRlZC4iIHRoYXQgaXMgbm90IGEgRE9NRXhjZXB0aW9uIE5vdFN1cHBvcnRlZEVycm9yOiBw
cm9wZXJ0eSAiY29kZSIgaXMgZXF1YWwgdG8gMjAsIGV4cGVjdGVkIDkKK0ZBSUwgQ2FsbGluZyBz
aG93KCkgbXVsdGlwbGUgdGltZXMgYWx3YXlzIHJldHVybnMgYSBuZXcgcHJvbWlzZS4gcHJvbWlz
ZV90ZXN0OiBVbmhhbmRsZWQgcmVqZWN0aW9uIHdpdGggdmFsdWU6IG9iamVjdCAiSW52YWxpZFN0
YXRlRXJyb3I6IFRoZSBvYmplY3QgaXMgaW4gYW4gaW52YWxpZCBzdGF0ZS4iCisKZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvcGF5bWVudC1y
ZXF1ZXN0L3BheW1lbnQtcmVxdWVzdC1zaG93LW1ldGhvZC5odHRwcy5odG1sIGIvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9wYXltZW50LXJlcXVlc3QvcGF5bWVu
dC1yZXF1ZXN0LXNob3ctbWV0aG9kLmh0dHBzLmh0bWwKaW5kZXggOTc4ODcyMWFhMzU0NzJkNDc5
OWE0NDIzOTIzMDY2MDc0NzVhZmFlMC4uMjI3Nzk3NDU2MzkyNjc3OTc0Mjc3N2U5YjE5MzVhZTZj
ODk0Yjg5YyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy9wYXltZW50LXJlcXVlc3QvcGF5bWVudC1yZXF1ZXN0LXNob3ctbWV0aG9kLmh0dHBz
Lmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9w
YXltZW50LXJlcXVlc3QvcGF5bWVudC1yZXF1ZXN0LXNob3ctbWV0aG9kLmh0dHBzLmh0bWwKQEAg
LTQ2LDIyICs0NiwyMCBAQCBwcm9taXNlX3Rlc3QoYXN5bmMgKHQpID0+IHsKICAgICByZXF1ZXN0
LmFib3J0KCk7CiAgIH0sIDIwMDApOwogCi0gIGF3YWl0IHByb21pc2VfcmVqZWN0c19kb20odCwg
Ik5vdEFsbG93ZWRFcnJvciIsIGFjY2VwdFByb21pc2UpOworICBhd2FpdCBwcm9taXNlX3JlamVj
dHNfZG9tKHQsICJTZWN1cml0eUVycm9yIiwgYWNjZXB0UHJvbWlzZSk7CiB9LCBgQ2FsbGluZyBz
aG93KCkgd2l0aG91dCBiZWluZyB0cmlnZ2VyZWQgYnkgdXNlciBpbnRlcmFjdGlvbiB0aHJvd3Ng
KTsKIAogcHJvbWlzZV90ZXN0KGFzeW5jICh0KSA9PiB7CiAgIGNvbnN0IHJlcXVlc3QgPSBuZXcg
UGF5bWVudFJlcXVlc3QoZGVmYXVsdE1ldGhvZHMsIGRlZmF1bHREZXRhaWxzKTsKLSAgYXdhaXQg
dGVzdF9kcml2ZXIuYmxlc3MoCi0gICAgInRlc3Q6IHRocm93cyBpZiB0aGUgcHJvbWlzZSBbW3N0
YXRlXV0gaXMgbm90ICdjcmVhdGVkJyIKLSAgKTsKKyAgYXdhaXQgcHJvbWlzZV9yZWplY3RzX2Rv
bSh0LCAiU2VjdXJpdHlFcnJvciIsIHJlcXVlc3Quc2hvdygpKTsKKworICBhd2FpdCB0ZXN0X2Ry
aXZlci5ibGVzcygpOwogICBjb25zdCBhY2NlcHRQcm9taXNlID0gcmVxdWVzdC5zaG93KCk7IC8v
IFNldHMgc3RhdGUgdG8gImludGVyYWN0aXZlIgotICAvLyBObyB1c2VyIGFjdGl2YXRpb24uLi4K
LSAgYXdhaXQgcHJvbWlzZV9yZWplY3RzX2RvbSh0LCAiTm90QWxsb3dlZEVycm9yIiwgcmVxdWVz
dC5zaG93KCkpOwogCi0gIC8vIEdldCB1c2VyIGFjdGl2YXRpb24KLSAgYXdhaXQgdGVzdF9kcml2
ZXIuYmxlc3MoCi0gICAgInRlc3Q6IHRocm93cyBpZiB0aGUgcHJvbWlzZSBbW3N0YXRlXV0gaXMg
bm90ICdjcmVhdGVkJyIKLSAgKTsKKyAgYXdhaXQgcHJvbWlzZV9yZWplY3RzX2RvbSh0LCAiSW52
YWxpZFN0YXRlRXJyb3IiLCByZXF1ZXN0LnNob3coKSk7CisKKyAgLy8gV2l0aCB1c2VyIGFjdGl2
YXRpb24sIGJ1dCBhbHJlYWR5IHNob3dpbmcgdGhlIHNoZWV0Li4uCisgIGF3YWl0IHRlc3RfZHJp
dmVyLmJsZXNzKCk7CiAgIGF3YWl0IHByb21pc2VfcmVqZWN0c19kb20odCwgIkludmFsaWRTdGF0
ZUVycm9yIiwgcmVxdWVzdC5zaG93KCkpOwogCiAgIGF3YWl0IHJlcXVlc3QuYWJvcnQoKTsKQEAg
LTcwLDE2ICs2OCwxNSBAQCBwcm9taXNlX3Rlc3QoYXN5bmMgKHQpID0+IHsKIAogcHJvbWlzZV90
ZXN0KGFzeW5jICh0KSA9PiB7CiAgIGNvbnN0IHJlcXVlc3QxID0gbmV3IFBheW1lbnRSZXF1ZXN0
KGRlZmF1bHRNZXRob2RzLCBkZWZhdWx0RGV0YWlscyk7Ci0gIGNvbnN0IHJlcXVlc3QyID0gbmV3
IFBheW1lbnRSZXF1ZXN0KGRlZmF1bHRNZXRob2RzLCBkZWZhdWx0RGV0YWlscyk7Ci0KLSAgYXdh
aXQgdGVzdF9kcml2ZXIuYmxlc3MoInBheW1lbnQgcmVxdWVzdCIpOworICBhd2FpdCB0ZXN0X2Ry
aXZlci5ibGVzcygpOwogICBjb25zdCBhY2NlcHRQcm9taXNlMSA9IHJlcXVlc3QxLnNob3coKTsK
IAogICAvLyBVc2VyIGFjdGl2YXRpb24gY29uc3VtZWQsIHNvLi4uCi0gIGF3YWl0IHByb21pc2Vf
cmVqZWN0c19kb20odCwgIk5vdEFsbG93ZWRFcnJvciIsIHJlcXVlc3QyLnNob3coKSk7CisgIGNv
bnN0IHJlcXVlc3QyID0gbmV3IFBheW1lbnRSZXF1ZXN0KGRlZmF1bHRNZXRob2RzLCBkZWZhdWx0
RGV0YWlscyk7CisgIGF3YWl0IHByb21pc2VfcmVqZWN0c19kb20odCwgIlNlY3VyaXR5RXJyb3Ii
LCByZXF1ZXN0Mi5zaG93KCkpOwogCiAgIC8vIFBheW1lbnQgcmVxdWVzdCBhbHJlYWR5IHNob3dp
bmcsIHNvLi4uCi0gIGF3YWl0IHRlc3RfZHJpdmVyLmJsZXNzKCJwYXltZW50IHJlcXVlc3QiKTsK
KyAgYXdhaXQgdGVzdF9kcml2ZXIuYmxlc3MoKTsKICAgYXdhaXQgcHJvbWlzZV9yZWplY3RzX2Rv
bSh0LCAiQWJvcnRFcnJvciIsIHJlcXVlc3QyLnNob3coKSk7CiAKICAgYXdhaXQgcmVxdWVzdDEu
YWJvcnQoKTsKQEAgLTkxLDI3ICs4OCwyNyBAQCBwcm9taXNlX3Rlc3QoYXN5bmMgKHQpID0+IHsK
ICAgICBbeyBzdXBwb3J0ZWRNZXRob2RzOiAidGhpcy1pcy1ub3Qtc3VwcG9ydGVkIiB9XSwKICAg
ICBkZWZhdWx0RGV0YWlscwogICApOwotICBhd2FpdCB0ZXN0X2RyaXZlci5ibGVzcyhgdGVzdDog
cmVqZWN0IHByb21pc2Ugd2l0aCAiTm90U3VwcG9ydGVkRXJyb3IiYCk7CisgIGF3YWl0IHRlc3Rf
ZHJpdmVyLmJsZXNzKCk7CiAgIGNvbnN0IGFjY2VwdFByb21pc2UgPSByZXF1ZXN0LnNob3coKTsK
ICAgYXdhaXQgcHJvbWlzZV9yZWplY3RzX2RvbSh0LCAiTm90U3VwcG9ydGVkRXJyb3IiLCBhY2Nl
cHRQcm9taXNlKTsKIH0sIGBJZiBwYXltZW50IG1ldGhvZCBjb25zdWx0YXRpb24gcHJvZHVjZXMg
bm8gc3VwcG9ydGVkIG1ldGhvZCBvZiBwYXltZW50LCB0aGVuIHJldHVybiBhIHByb21pc2UgcmVq
ZWN0ZWQgd2l0aCBhICJOb3RTdXBwb3J0ZWRFcnJvciIgRE9NRXhjZXB0aW9uLmApOwogCiBwcm9t
aXNlX3Rlc3QoYXN5bmMgKHQpID0+IHsKICAgY29uc3QgcmVxdWVzdCA9IG5ldyBQYXltZW50UmVx
dWVzdChkZWZhdWx0TWV0aG9kcywgZGVmYXVsdERldGFpbHMpOwotICBhd2FpdCB0ZXN0X2RyaXZl
ci5ibGVzcygiY2FsbCBzaG93KCkiKTsKKyAgYXdhaXQgdGVzdF9kcml2ZXIuYmxlc3MoKTsKICAg
Y29uc3QgcDEgPSByZXF1ZXN0LnNob3coKTsKLSAgYXdhaXQgdGVzdF9kcml2ZXIuYmxlc3MoImNh
bGwgc2hvdygpIik7CisgIGF3YWl0IHRlc3RfZHJpdmVyLmJsZXNzKCk7CiAgIGNvbnN0IHAyID0g
cmVxdWVzdC5zaG93KCk7Ci0gIGF3YWl0IHRlc3RfZHJpdmVyLmJsZXNzKCJjYWxsIHNob3coKSIp
OworICBhd2FpdCB0ZXN0X2RyaXZlci5ibGVzcygpOwogICBjb25zdCBwMyA9IHJlcXVlc3Quc2hv
dygpOworICBhd2FpdCByZXF1ZXN0LmFib3J0KCk7CisKICAgY29uc3QgcHJvbWlzZXMgPSBuZXcg
U2V0KFtwMSwgcDIsIHAzXSk7CiAgIGFzc2VydF9lcXVhbHMocHJvbWlzZXMuc2l6ZSwgMywgIk11
c3QgaGF2ZSB0aHJlZSB1bmlxdWUgb2JqZWN0cyIpOwogCisgIGF3YWl0IHByb21pc2VfcmVqZWN0
c19kb20odCwgIkFib3J0RXJyb3IiLCBwMSk7CiAgIGF3YWl0IHByb21pc2VfcmVqZWN0c19kb20o
dCwgIkludmFsaWRTdGF0ZUVycm9yIiwgcDIpOwogICBhd2FpdCBwcm9taXNlX3JlamVjdHNfZG9t
KHQsICJJbnZhbGlkU3RhdGVFcnJvciIsIHAzKTsKLQotICBhd2FpdCByZXF1ZXN0LmFib3J0KCk7
Ci0gIGF3YWl0IHByb21pc2VfcmVqZWN0c19kb20odCwgIkFib3J0RXJyb3IiLCBwMSk7CiB9LCAi
Q2FsbGluZyBzaG93KCkgbXVsdGlwbGUgdGltZXMgYWx3YXlzIHJldHVybnMgYSBuZXcgcHJvbWlz
ZS4iKTsKIDwvc2NyaXB0PgogPHNtYWxsPgpAQCAtMTIwLDUgKzExNyw2IEBAIHByb21pc2VfdGVz
dChhc3luYyAodCkgPT4gewogICB0YWcgb25lIG9mIHRoZQogICA8YQogICAgIGhyZWY9Imh0dHBz
Oi8vZ2l0aHViLmNvbS93ZWItcGxhdGZvcm0tdGVzdHMvd3B0L2Jsb2IvbWFzdGVyL3BheW1lbnQt
cmVxdWVzdC9NRVRBLnltbCIKLSAgICA+c3VnZ2VzdGVkIHJldmlld2VyczwvYT4uCisgICAgPnN1
Z2dlc3RlZCByZXZpZXdlcnM8L2EKKyAgPi4KIDwvc21hbGw+CmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3BheW1lbnQtcmVxdWVzdC9yZWpl
Y3RzX2lmX25vdF9hY3RpdmUuaHR0cHMuaHRtbCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvcGF5bWVudC1yZXF1ZXN0L3JlamVjdHNfaWZfbm90X2FjdGl2ZS5o
dHRwcy5odG1sCmluZGV4IDg5YzM0MDdlM2QwYmM1ZWJhZmMzYzdjMGQwMDE1MDk5MTI1MWExMzIu
Ljg0ZjI5OWRiOWJlMWRhNGQ4OTRkZDMyZGIyMmNlMmZjZDY3M2NhZmIgMTAwNjQ0Ci0tLSBhL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvcGF5bWVudC1yZXF1ZXN0
L3JlamVjdHNfaWZfbm90X2FjdGl2ZS5odHRwcy5odG1sCisrKyBiL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvcGF5bWVudC1yZXF1ZXN0L3JlamVjdHNfaWZfbm90
X2FjdGl2ZS5odHRwcy5odG1sCkBAIC0xLDcgKzEsNyBAQAogPCFET0NUWVBFIGh0bWw+Ci08bWV0
YSBjaGFyc2V0PXV0Zi04PgorPG1ldGEgY2hhcnNldD0idXRmLTgiIC8+CiA8dGl0bGU+UGF5bWVu
dFJlcXVlc3Qgc2hvdygpIHJlamVjdHMgaWYgZG9jIGlzIG5vdCBmdWxseSBhY3RpdmU8L3RpdGxl
PgotPGxpbmsgcmVsPSJoZWxwIiBocmVmPSJodHRwczovL3czYy5naXRodWIuaW8vcGF5bWVudC1y
ZXF1ZXN0LyNzaG93LW1ldGhvZCI+Cis8bGluayByZWw9ImhlbHAiIGhyZWY9Imh0dHBzOi8vdzNj
LmdpdGh1Yi5pby9wYXltZW50LXJlcXVlc3QvI3Nob3ctbWV0aG9kIiAvPgogPHNjcmlwdCBzcmM9
Ii9yZXNvdXJjZXMvdGVzdGhhcm5lc3MuanMiPjwvc2NyaXB0PgogPHNjcmlwdCBzcmM9Ii9yZXNv
dXJjZXMvdGVzdGhhcm5lc3NyZXBvcnQuanMiPjwvc2NyaXB0PgogPHNjcmlwdCBzcmM9Ii9yZXNv
dXJjZXMvdGVzdGRyaXZlci5qcyI+PC9zY3JpcHQ+CkBAIC0xNiw3ICsxNiw3IEBAIGNvbnN0IGFw
cGxlUGF5ID0gT2JqZWN0LmZyZWV6ZSh7CiAgICAgY291bnRyeUNvZGU6ICJVUyIsCiAgICAgbWVy
Y2hhbnRDYXBhYmlsaXRpZXM6IFsic3VwcG9ydHMzRFMiXSwKICAgICBzdXBwb3J0ZWROZXR3b3Jr
czogWyJ2aXNhIl0sCi0gIH0KKyAgfSwKIH0pOwogY29uc3QgdmFsaWRNZXRob2QgPSBPYmplY3Qu
ZnJlZXplKHsKICAgc3VwcG9ydGVkTWV0aG9kczogImJhc2ljLWNhcmQiLApAQCAtMzQsNjQgKzM0
LDU2IEBAIGNvbnN0IHZhbGlkRGV0YWlscyA9IE9iamVjdC5mcmVlemUoewogICB0b3RhbDogdmFs
aWRUb3RhbCwKIH0pOwogCi1mdW5jdGlvbiBnZXRMb2FkZWRQYXltZW50UmVxdWVzdChpZnJhbWUs
IHVybCkgewotICByZXR1cm4gbmV3IFByb21pc2UocmVzb2x2ZSA9PiB7Ci0gICAgaWZyYW1lLmFk
ZEV2ZW50TGlzdGVuZXIoCi0gICAgICAibG9hZCIsCi0gICAgICAoKSA9PiB7Ci0gICAgICAgIGNv
bnN0IHsgUGF5bWVudFJlcXVlc3QgfSA9IGlmcmFtZS5jb250ZW50V2luZG93OwotICAgICAgICBj
b25zdCByZXF1ZXN0ID0gbmV3IFBheW1lbnRSZXF1ZXN0KHZhbGlkTWV0aG9kcywgdmFsaWREZXRh
aWxzKTsKLSAgICAgICAgcmVzb2x2ZShyZXF1ZXN0KTsKLSAgICAgIH0sCi0gICAgICB7IG9uY2U6
IHRydWUgfQotICAgICk7Cithc3luYyBmdW5jdGlvbiBnZXRMb2FkZWRQYXltZW50UmVxdWVzdChp
ZnJhbWUsIHVybCkgeworICBhd2FpdCBuZXcgUHJvbWlzZSgocmVzb2x2ZSkgPT4geworICAgIGlm
cmFtZS5hZGRFdmVudExpc3RlbmVyKCJsb2FkIiwgcmVzb2x2ZSwgeyBvbmNlOiB0cnVlIH0pOwog
ICAgIGlmcmFtZS5zcmMgPSB1cmw7CiAgIH0pOworICBjb25zdCB7IFBheW1lbnRSZXF1ZXN0IH0g
PSBpZnJhbWUuY29udGVudFdpbmRvdzsKKyAgY29uc3QgcmVxdWVzdCA9IG5ldyBQYXltZW50UmVx
dWVzdCh2YWxpZE1ldGhvZHMsIHZhbGlkRGV0YWlscyk7CisgIHJldHVybiByZXF1ZXN0OwogfQog
Ci1wcm9taXNlX3Rlc3QoYXN5bmMgdCA9PiB7Citwcm9taXNlX3Rlc3QoYXN5bmMgKHQpID0+IHsK
ICAgY29uc3QgaWZyYW1lID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiaWZyYW1lIik7Ci0gIGlm
cmFtZS5hbGxvdyA9ICJwYXltZW50IjsKICAgZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZChpZnJh
bWUpOwogICAvLyBNYWtlIGEgcmVxdWVzdCBpbiB0aGUgaWZyYW1lLgogICBjb25zdCByZXF1ZXN0
ID0gYXdhaXQgZ2V0TG9hZGVkUGF5bWVudFJlcXVlc3QoCiAgICAgaWZyYW1lLAotICAgICIvcGF5
bWVudC1yZXF1ZXN0L3Jlc291cmNlcy9wYWdlMS5odG1sIgorICAgICJyZXNvdXJjZXMvcGFnZTEu
aHRtbCIKICAgKTsKLSAgY29uc3QgW3Nob3dQcm9taXNlXSA9IGF3YWl0IHRlc3RfZHJpdmVyLmJs
ZXNzKCJzaG93IHBheW1lbnQgcmVxdWVzdCIsICgpID0+IHsKLSAgICByZXR1cm4gW3JlcXVlc3Qu
c2hvdygpXTsKLSAgfSk7Ci0gIC8vIE5hdmlnYXRlIHRoZSBpZnJhbWUgdG8gYSBuZXcgbG9jYXRp
b24uIFdhaXQgZm9yIHRoZSBsb2FkIGV2ZW50IHRvIGZpcmUuCi0gIGF3YWl0IG5ldyBQcm9taXNl
KHJlc29sdmUgPT4gewotICAgIGlmcmFtZS5hZGRFdmVudExpc3RlbmVyKCJsb2FkIiwgcmVzb2x2
ZSk7Ci0gICAgaWZyYW1lLnNyYyA9ICIvcGF5bWVudC1yZXF1ZXN0L3Jlc291cmNlcy9wYWdlMi5o
dG1sIjsKLSAgICAvLyBBbiBpbXBsZW1lbnRhdGlvbiBtYXkgb3B0aW9uYWxseSByZWplY3QgfHNo
b3dQcm9taXNlfC4KLSAgICBzaG93UHJvbWlzZS5jYXRjaChlID0+IHt9KTsKLSAgfSk7CisgIGF3
YWl0IHRlc3RfZHJpdmVyLmJsZXNzKCJzaG93IHBheW1lbnQgcmVxdWVzdCIpOworICBjb25zdCBz
aG93UHJvbWlzZSA9IHJlcXVlc3Quc2hvdygpOworICBjb25zdCBmaXJzdEN0b3IgPSBpZnJhbWUu
Y29udGVudFdpbmRvdy5ET01FeGNlcHRpb247CiAKLSAgLy8gVGhlIG5hdmlnYXRvbiBzaG91bGQg
aGF2ZSBkaXNtaXNzZWQgdGhlIHByZXZpb3VzIHBheW1lbnQgcmVxdWVzdCBzbyBpdAotICAvLyBz
aG91bGQgYmUgcG9zc2libGUgdG8gc2hvdyBhbm90aGVyIG9uZSBub3cuCi0gIGNvbnN0IHJlcXVl
c3QyID0gbmV3IGlmcmFtZS5jb250ZW50V2luZG93LlBheW1lbnRSZXF1ZXN0KAotICAgIHZhbGlk
TWV0aG9kcywgdmFsaWREZXRhaWxzKTsKLSAgY29uc3QgW3Nob3dQcm9taXNlMl0gPSBhd2FpdCB0
ZXN0X2RyaXZlci5ibGVzcygKLSAgICAic2hvdyAybmQgcGF5bWVudCByZXF1ZXN0IiwgKCkgPT4g
ewotICAgICAgcmV0dXJuIFtyZXF1ZXN0Mi5zaG93KCldOwotICAgIH0pOworICAvLyBOYXZpZ2F0
ZSB0aGUgaWZyYW1lIHRvIGEgbmV3IGxvY2F0aW9uLiBXYWl0IGZvciB0aGUgbG9hZCBldmVudCB0
byBmaXJlLgorICBjb25zdCByZXF1ZXN0MiA9IGF3YWl0IGdldExvYWRlZFBheW1lbnRSZXF1ZXN0
KAorICAgIGlmcmFtZSwKKyAgICAicmVzb3VyY2VzL3BhZ2UyLmh0bWwiCisgICk7CiAKLSAgLy8g
U3RvcCB0aGUgdGVzdCBpbiAxIHNlY29uZCBpZiBpdCBoYXMgbm90IHJlamVjdGVkLCB3aGljaCBt
ZWFucyB0aGF0IGEKLSAgLy8gcGF5bWVudCBzaGVldCBpcyBzdWNjZXNzZnVsbHkgc2hvd24uCi0g
IHQuc3RlcF90aW1lb3V0KGFzeW5jICgpID0+IHsKLSAgICAvLyBXZSBhcmUgZG9uZSwgc28gY2xl
YW4gdXAuCi0gICAgaWZyYW1lLnJlbW92ZSgpOwotICAgIHQuZG9uZSgpOwotICB9LCAxMDAwKTsK
KyAgYXdhaXQgcHJvbWlzZV9yZWplY3RzX2RvbSgKKyAgICB0LAorICAgICJBYm9ydEVycm9yIiwK
KyAgICBmaXJzdEN0b3IsCisgICAgc2hvd1Byb21pc2UsCisgICAgIlNob3cgcHJvbWlzZSBzaG91
bGQgYWJvcnQuIgorICApOwogCi0gIC8vIFRoaXMgc2hvdWxkIG5ldmVyIHNldHRsZSBiZWNhdXNl
IHRoZSBwYXltZW50IHNoZWV0IHNob3VsZCBiZSBwZW5kaW5nLgotICBhd2FpdCBzaG93UHJvbWlz
ZTIudGhlbigoKSA9PiB7Ci0gICAgYXNzZXJ0X3RydWUoZmFsc2UsICJTZWNvbmQgcGF5bWVudCBz
aG91bGQgYmUgcGVuZGluZyBidXQgaXMgcmVzb2x2ZWQuIik7Ci0gIH0pCi0gIC5jYXRjaChlID0+
IHsKLSAgICBhc3NlcnRfdHJ1ZShmYWxzZSwgIlNlY29uZCBwYXltZW50IHNob3VsZCBiZSBwZW5k
aW5nIGJ1dCBpcyByZWplY3RlZC4iKTsKLSAgfSk7CisgIC8vIFRoZSBuYXZpZ2F0aW9uIGRpc21p
c3NlcyB0aGUgcHJldmlvdXMgcGF5bWVudCByZXF1ZXN0IHNvIGl0CisgIC8vIG5vdyBwb3NzaWJs
ZSB0byBzaG93IGFub3RoZXIgb25lLgorICBhd2FpdCB0ZXN0X2RyaXZlci5ibGVzcygic2hvdyAy
bmQgcGF5bWVudCByZXF1ZXN0Iik7CisgIGNvbnN0IHNob3dQcm9taXNlMiA9IHJlcXVlc3QyLnNo
b3coKTsKKyAgY29uc3Qgc2Vjb25kQ3RvciA9IGlmcmFtZS5jb250ZW50V2luZG93LkRPTUV4Y2Vw
dGlvbjsKKyAgLy8gbm8gbG9uZ2VyIGZ1bGx5IGFjdGl2ZQorICBpZnJhbWUucmVtb3ZlKCk7Cisg
IGF3YWl0IHByb21pc2VfcmVqZWN0c19kb20oCisgICAgdCwKKyAgICAiQWJvcnRFcnJvciIsCisg
ICAgc2Vjb25kQ3RvciwKKyAgICBzaG93UHJvbWlzZTIsCisgICAgIlNob3cgcHJvbWlzZSBzaG91
bGQgYWJvcnQuIgorICApOwogfSwgIklmIGEgcGF5bWVudCByZXF1ZXN0IGlzIHNob3dpbmcsIGJ1
dCBpdHMgZG9jdW1lbnQgaXMgbmF2aWdhdGVkIGF3YXkgKHNvIG5vIGxvbmdlciBmdWxseSBhY3Rp
dmUpLCB0aGUgcGF5bWVudCBzaGVldCBpcyBkaXNtaXNzZWQuIik7CiA8L3NjcmlwdD4KKzwvYm9k
eT4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvcGF5bWVudC1yZXF1ZXN0L3Nob3ctbWV0aG9kLW9wdGlvbmFsLXByb21pc2UtcmVqZWN0cy5o
dHRwcy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL3BheW1lbnQtcmVxdWVzdC9zaG93LW1ldGhvZC1vcHRpb25hbC1wcm9taXNlLXJlamVj
dHMuaHR0cHMtZXhwZWN0ZWQudHh0CmluZGV4IDgwZWQyZmU3Zjg3N2QxM2UzYjM4MDdkYzlmNzcw
YTIyOTEyZGM4ODAuLmFlZTk2MzZiYTMwMGM0Mjk4ZDRhMGJmNDZkMzgyM2ExZTM1MmI0NzYgMTAw
NjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvcGF5
bWVudC1yZXF1ZXN0L3Nob3ctbWV0aG9kLW9wdGlvbmFsLXByb21pc2UtcmVqZWN0cy5odHRwcy1l
eHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy9wYXltZW50LXJlcXVlc3Qvc2hvdy1tZXRob2Qtb3B0aW9uYWwtcHJvbWlzZS1yZWplY3Rz
Lmh0dHBzLWV4cGVjdGVkLnR4dApAQCAtMSwzMCArMSwxMiBAQAogCi1GQUlMIFJlamVjdGlvbiBv
ZiBkZXRhaWxzUHJvbWlzZSBtdXN0IGFib3J0IHRoZSB1cGRhdGUgd2l0aCBhbiAnQWJvcnRFcnJv
cicgRE9NRXhjZXB0aW9uLiBwcm9taXNlX3JlamVjdHNfZG9tOiBiYWREZXRhaWxzIG11c3QgY2F1
c2UgYWNjZXB0UHJvbWlzZSB0byByZWplY3Qgd2l0aCBleHBlY3RlZEVycm9yIGZ1bmN0aW9uICJm
dW5jdGlvbiAoKSB7IHRocm93IGUgfSIgdGhyZXcgb2JqZWN0ICJTZWN1cml0eUVycm9yOiBzaG93
KCkgbXVzdCBiZSB0cmlnZ2VyZWQgYnkgdXNlciBhY3RpdmF0aW9uLiIgdGhhdCBpcyBub3QgYSBE
T01FeGNlcHRpb24gQWJvcnRFcnJvcjogcHJvcGVydHkgImNvZGUiIGlzIGVxdWFsIHRvIDE4LCBl
eHBlY3RlZCAyMAotRkFJTCBUb3RhbCBpbiB0aGUgdXBkYXRlIGlzIGEgc3RyaW5nLCBzbyBjb252
ZXJ0aW5nIHRvIElETCBtdXN0IGFib3J0IHRoZSB1cGRhdGUgd2l0aCBhIFR5cGVFcnJvci4gcHJv
bWlzZV9yZWplY3RzX2pzOiBiYWREZXRhaWxzIG11c3QgY2F1c2UgYWNjZXB0UHJvbWlzZSB0byBy
ZWplY3Qgd2l0aCBleHBlY3RlZEVycm9yIGZ1bmN0aW9uICJmdW5jdGlvbiAoKSB7IHRocm93IGUg
fSIgdGhyZXcgb2JqZWN0ICJTZWN1cml0eUVycm9yOiBzaG93KCkgbXVzdCBiZSB0cmlnZ2VyZWQg
YnkgdXNlciBhY3RpdmF0aW9uLiIgKCJTZWN1cml0eUVycm9yIikgZXhwZWN0ZWQgaW5zdGFuY2Ug
b2YgZnVuY3Rpb24gImZ1bmN0aW9uIFR5cGVFcnJvcigpIHsKLSAgICBbbmF0aXZlIGNvZGVdCi19
IiAoIlR5cGVFcnJvciIpCi1GQUlMIFRvdGFsIGlzIHJlY3Vyc2l2ZSwgc28gY29udmVydGluZyB0
byBJREwgbXVzdCBhYm9ydCB0aGUgdXBkYXRlIHdpdGggYSBUeXBlRXJyb3IuIHByb21pc2VfcmVq
ZWN0c19qczogYmFkRGV0YWlscyBtdXN0IGNhdXNlIGFjY2VwdFByb21pc2UgdG8gcmVqZWN0IHdp
dGggZXhwZWN0ZWRFcnJvciBmdW5jdGlvbiAiZnVuY3Rpb24gKCkgeyB0aHJvdyBlIH0iIHRocmV3
IG9iamVjdCAiU2VjdXJpdHlFcnJvcjogc2hvdygpIG11c3QgYmUgdHJpZ2dlcmVkIGJ5IHVzZXIg
YWN0aXZhdGlvbi4iICgiU2VjdXJpdHlFcnJvciIpIGV4cGVjdGVkIGluc3RhbmNlIG9mIGZ1bmN0
aW9uICJmdW5jdGlvbiBUeXBlRXJyb3IoKSB7Ci0gICAgW25hdGl2ZSBjb2RlXQotfSIgKCJUeXBl
RXJyb3IiKQotRkFJTCBVcGRhdGluZyB3aXRoIGEgbmVnYXRpdmUgdG90YWwgcmVzdWx0cyBpbiBh
IFR5cGVFcnJvci4gcHJvbWlzZV9yZWplY3RzX2pzOiBiYWREZXRhaWxzIG11c3QgY2F1c2UgYWNj
ZXB0UHJvbWlzZSB0byByZWplY3Qgd2l0aCBleHBlY3RlZEVycm9yIGZ1bmN0aW9uICJmdW5jdGlv
biAoKSB7IHRocm93IGUgfSIgdGhyZXcgb2JqZWN0ICJTZWN1cml0eUVycm9yOiBzaG93KCkgbXVz
dCBiZSB0cmlnZ2VyZWQgYnkgdXNlciBhY3RpdmF0aW9uLiIgKCJTZWN1cml0eUVycm9yIikgZXhw
ZWN0ZWQgaW5zdGFuY2Ugb2YgZnVuY3Rpb24gImZ1bmN0aW9uIFR5cGVFcnJvcigpIHsKLSAgICBb
bmF0aXZlIGNvZGVdCi19IiAoIlR5cGVFcnJvciIpCi1GQUlMIFVwZGF0aW5nIHdpdGggYSBkaXNw
bGF5SXRlbSB3aXRoIGFuIGludmFsaWQgY3VycmVuY3kgcmVzdWx0cyBpbiBSYW5nZUVycm9yLiBw
cm9taXNlX3JlamVjdHNfanM6IGJhZERldGFpbHMgbXVzdCBjYXVzZSBhY2NlcHRQcm9taXNlIHRv
IHJlamVjdCB3aXRoIGV4cGVjdGVkRXJyb3IgZnVuY3Rpb24gImZ1bmN0aW9uICgpIHsgdGhyb3cg
ZSB9IiB0aHJldyBvYmplY3QgIlNlY3VyaXR5RXJyb3I6IHNob3coKSBtdXN0IGJlIHRyaWdnZXJl
ZCBieSB1c2VyIGFjdGl2YXRpb24uIiAoIlNlY3VyaXR5RXJyb3IiKSBleHBlY3RlZCBpbnN0YW5j
ZSBvZiBmdW5jdGlvbiAiZnVuY3Rpb24gUmFuZ2VFcnJvcigpIHsKLSAgICBbbmF0aXZlIGNvZGVd
Ci19IiAoIlJhbmdlRXJyb3IiKQotRkFJTCBVcGRhdGluZyB3aXRoIGR1cGxpY2F0ZSBzaGlwcGlu
Z09wdGlvbnMgKHNhbWUgSURzKSByZXN1bHRzIGluIGEgVHlwZUVycm9yLiBwcm9taXNlX3JlamVj
dHNfanM6IGJhZERldGFpbHMgbXVzdCBjYXVzZSBhY2NlcHRQcm9taXNlIHRvIHJlamVjdCB3aXRo
IGV4cGVjdGVkRXJyb3IgZnVuY3Rpb24gImZ1bmN0aW9uICgpIHsgdGhyb3cgZSB9IiB0aHJldyBv
YmplY3QgIlNlY3VyaXR5RXJyb3I6IHNob3coKSBtdXN0IGJlIHRyaWdnZXJlZCBieSB1c2VyIGFj
dGl2YXRpb24uIiAoIlNlY3VyaXR5RXJyb3IiKSBleHBlY3RlZCBpbnN0YW5jZSBvZiBmdW5jdGlv
biAiZnVuY3Rpb24gVHlwZUVycm9yKCkgewotICAgIFtuYXRpdmUgY29kZV0KLX0iICgiVHlwZUVy
cm9yIikKLUZBSUwgVXBkYXRpbmcgd2l0aCBhIHNoaXBwaW5nT3B0aW9uIHdpdGggYW4gaW52YWxp
ZCBjdXJyZW5jeSB2YWx1ZSByZXN1bHRzIGluIGEgUmFuZ0Vycm9yLiBwcm9taXNlX3JlamVjdHNf
anM6IGJhZERldGFpbHMgbXVzdCBjYXVzZSBhY2NlcHRQcm9taXNlIHRvIHJlamVjdCB3aXRoIGV4
cGVjdGVkRXJyb3IgZnVuY3Rpb24gImZ1bmN0aW9uICgpIHsgdGhyb3cgZSB9IiB0aHJldyBvYmpl
Y3QgIlNlY3VyaXR5RXJyb3I6IHNob3coKSBtdXN0IGJlIHRyaWdnZXJlZCBieSB1c2VyIGFjdGl2
YXRpb24uIiAoIlNlY3VyaXR5RXJyb3IiKSBleHBlY3RlZCBpbnN0YW5jZSBvZiBmdW5jdGlvbiAi
ZnVuY3Rpb24gUmFuZ2VFcnJvcigpIHsKLSAgICBbbmF0aXZlIGNvZGVdCi19IiAoIlJhbmdlRXJy
b3IiKQotRkFJTCBNdXN0IHRocm93IGEgUmFuZ2VFcnJvciB3aGVuIGEgbW9kaWZpZXIncyB0b3Rh
bCBpdGVtIGhhcyBhbiBpbnZhbGlkIGN1cnJlbmN5LiBwcm9taXNlX3JlamVjdHNfanM6IGJhZERl
dGFpbHMgbXVzdCBjYXVzZSBhY2NlcHRQcm9taXNlIHRvIHJlamVjdCB3aXRoIGV4cGVjdGVkRXJy
b3IgZnVuY3Rpb24gImZ1bmN0aW9uICgpIHsgdGhyb3cgZSB9IiB0aHJldyBvYmplY3QgIlNlY3Vy
aXR5RXJyb3I6IHNob3coKSBtdXN0IGJlIHRyaWdnZXJlZCBieSB1c2VyIGFjdGl2YXRpb24uIiAo
IlNlY3VyaXR5RXJyb3IiKSBleHBlY3RlZCBpbnN0YW5jZSBvZiBmdW5jdGlvbiAiZnVuY3Rpb24g
UmFuZ2VFcnJvcigpIHsKLSAgICBbbmF0aXZlIGNvZGVdCi19IiAoIlJhbmdlRXJyb3IiKQotRkFJ
TCBNdXN0IHRocm93IGEgUmFuZ2VFcnJvciB3aGVuIGEgbW9kaWZpZXIgZGlzcGxheSBpdGVtIGhh
cyBhbiBpbnZhbGlkIGN1cnJlbmN5LiBwcm9taXNlX3JlamVjdHNfanM6IGJhZERldGFpbHMgbXVz
dCBjYXVzZSBhY2NlcHRQcm9taXNlIHRvIHJlamVjdCB3aXRoIGV4cGVjdGVkRXJyb3IgZnVuY3Rp
b24gImZ1bmN0aW9uICgpIHsgdGhyb3cgZSB9IiB0aHJldyBvYmplY3QgIlNlY3VyaXR5RXJyb3I6
IHNob3coKSBtdXN0IGJlIHRyaWdnZXJlZCBieSB1c2VyIGFjdGl2YXRpb24uIiAoIlNlY3VyaXR5
RXJyb3IiKSBleHBlY3RlZCBpbnN0YW5jZSBvZiBmdW5jdGlvbiAiZnVuY3Rpb24gUmFuZ2VFcnJv
cigpIHsKLSAgICBbbmF0aXZlIGNvZGVdCi19IiAoIlJhbmdlRXJyb3IiKQotRkFJTCBNdXN0IHRo
cm93IGFzIE1vZGlmaWVyIGhhcyBhIHJlY3Vyc2l2ZSBkaWN0aW9uYXJ5LiBwcm9taXNlX3JlamVj
dHNfanM6IGJhZERldGFpbHMgbXVzdCBjYXVzZSBhY2NlcHRQcm9taXNlIHRvIHJlamVjdCB3aXRo
IGV4cGVjdGVkRXJyb3IgZnVuY3Rpb24gImZ1bmN0aW9uICgpIHsgdGhyb3cgZSB9IiB0aHJldyBv
YmplY3QgIlNlY3VyaXR5RXJyb3I6IHNob3coKSBtdXN0IGJlIHRyaWdnZXJlZCBieSB1c2VyIGFj
dGl2YXRpb24uIiAoIlNlY3VyaXR5RXJyb3IiKSBleHBlY3RlZCBpbnN0YW5jZSBvZiBmdW5jdGlv
biAiZnVuY3Rpb24gVHlwZUVycm9yKCkgewotICAgIFtuYXRpdmUgY29kZV0KLX0iICgiVHlwZUVy
cm9yIikKK1BBU1MgUmVqZWN0aW9uIG9mIGRldGFpbHNQcm9taXNlIG11c3QgYWJvcnQgdGhlIHVw
ZGF0ZSB3aXRoIGFuICdBYm9ydEVycm9yJyBET01FeGNlcHRpb24uCitQQVNTIFRvdGFsIGluIHRo
ZSB1cGRhdGUgaXMgYSBzdHJpbmcsIHNvIGNvbnZlcnRpbmcgdG8gSURMIG11c3QgYWJvcnQgdGhl
IHVwZGF0ZSB3aXRoIGEgVHlwZUVycm9yLgorUEFTUyBUb3RhbCBpcyByZWN1cnNpdmUsIHNvIGNv
bnZlcnRpbmcgdG8gSURMIG11c3QgYWJvcnQgdGhlIHVwZGF0ZSB3aXRoIGEgVHlwZUVycm9yLgor
UEFTUyBVcGRhdGluZyB3aXRoIGEgbmVnYXRpdmUgdG90YWwgcmVzdWx0cyBpbiBhIFR5cGVFcnJv
ci4KK1BBU1MgVXBkYXRpbmcgd2l0aCBhIGRpc3BsYXlJdGVtIHdpdGggYW4gaW52YWxpZCBjdXJy
ZW5jeSByZXN1bHRzIGluIFJhbmdlRXJyb3IuCitQQVNTIFVwZGF0aW5nIHdpdGggZHVwbGljYXRl
IHNoaXBwaW5nT3B0aW9ucyAoc2FtZSBJRHMpIHJlc3VsdHMgaW4gYSBUeXBlRXJyb3IuCitQQVNT
IFVwZGF0aW5nIHdpdGggYSBzaGlwcGluZ09wdGlvbiB3aXRoIGFuIGludmFsaWQgY3VycmVuY3kg
dmFsdWUgcmVzdWx0cyBpbiBhIFJhbmdFcnJvci4KK1BBU1MgTXVzdCB0aHJvdyBhIFJhbmdlRXJy
b3Igd2hlbiBhIG1vZGlmaWVyJ3MgdG90YWwgaXRlbSBoYXMgYW4gaW52YWxpZCBjdXJyZW5jeS4K
K1BBU1MgTXVzdCB0aHJvdyBhIFJhbmdlRXJyb3Igd2hlbiBhIG1vZGlmaWVyIGRpc3BsYXkgaXRl
bSBoYXMgYW4gaW52YWxpZCBjdXJyZW5jeS4KK1BBU1MgTXVzdCB0aHJvdyBhcyBNb2RpZmllciBo
YXMgYSByZWN1cnNpdmUgZGljdGlvbmFyeS4KIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxh
dGZvcm0vaW9zLXdrMi9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3BheW1lbnQtcmVx
dWVzdC9zaG93LW1ldGhvZC1vcHRpb25hbC1wcm9taXNlLXJlamVjdHMuaHR0cHMtZXhwZWN0ZWQu
dHh0IGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vaW9zLXdrMi9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3BheW1lbnQtcmVxdWVzdC9zaG93LW1ldGhvZC1vcHRpb25hbC1wcm9taXNlLXJl
amVjdHMuaHR0cHMtZXhwZWN0ZWQudHh0CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA4
MGVkMmZlN2Y4NzdkMTNlM2IzODA3ZGM5Zjc3MGEyMjkxMmRjODgwLi4wMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL3BsYXRmb3JtL2lvcy13
azIvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9wYXltZW50LXJlcXVlc3Qvc2hvdy1t
ZXRob2Qtb3B0aW9uYWwtcHJvbWlzZS1yZWplY3RzLmh0dHBzLWV4cGVjdGVkLnR4dAorKysgL2Rl
di9udWxsCkBAIC0xLDMwICswLDAgQEAKLQotRkFJTCBSZWplY3Rpb24gb2YgZGV0YWlsc1Byb21p
c2UgbXVzdCBhYm9ydCB0aGUgdXBkYXRlIHdpdGggYW4gJ0Fib3J0RXJyb3InIERPTUV4Y2VwdGlv
bi4gcHJvbWlzZV9yZWplY3RzX2RvbTogYmFkRGV0YWlscyBtdXN0IGNhdXNlIGFjY2VwdFByb21p
c2UgdG8gcmVqZWN0IHdpdGggZXhwZWN0ZWRFcnJvciBmdW5jdGlvbiAiZnVuY3Rpb24gKCkgeyB0
aHJvdyBlIH0iIHRocmV3IG9iamVjdCAiU2VjdXJpdHlFcnJvcjogc2hvdygpIG11c3QgYmUgdHJp
Z2dlcmVkIGJ5IHVzZXIgYWN0aXZhdGlvbi4iIHRoYXQgaXMgbm90IGEgRE9NRXhjZXB0aW9uIEFi
b3J0RXJyb3I6IHByb3BlcnR5ICJjb2RlIiBpcyBlcXVhbCB0byAxOCwgZXhwZWN0ZWQgMjAKLUZB
SUwgVG90YWwgaW4gdGhlIHVwZGF0ZSBpcyBhIHN0cmluZywgc28gY29udmVydGluZyB0byBJREwg
bXVzdCBhYm9ydCB0aGUgdXBkYXRlIHdpdGggYSBUeXBlRXJyb3IuIHByb21pc2VfcmVqZWN0c19q
czogYmFkRGV0YWlscyBtdXN0IGNhdXNlIGFjY2VwdFByb21pc2UgdG8gcmVqZWN0IHdpdGggZXhw
ZWN0ZWRFcnJvciBmdW5jdGlvbiAiZnVuY3Rpb24gKCkgeyB0aHJvdyBlIH0iIHRocmV3IG9iamVj
dCAiU2VjdXJpdHlFcnJvcjogc2hvdygpIG11c3QgYmUgdHJpZ2dlcmVkIGJ5IHVzZXIgYWN0aXZh
dGlvbi4iICgiU2VjdXJpdHlFcnJvciIpIGV4cGVjdGVkIGluc3RhbmNlIG9mIGZ1bmN0aW9uICJm
dW5jdGlvbiBUeXBlRXJyb3IoKSB7Ci0gICAgW25hdGl2ZSBjb2RlXQotfSIgKCJUeXBlRXJyb3Ii
KQotRkFJTCBUb3RhbCBpcyByZWN1cnNpdmUsIHNvIGNvbnZlcnRpbmcgdG8gSURMIG11c3QgYWJv
cnQgdGhlIHVwZGF0ZSB3aXRoIGEgVHlwZUVycm9yLiBwcm9taXNlX3JlamVjdHNfanM6IGJhZERl
dGFpbHMgbXVzdCBjYXVzZSBhY2NlcHRQcm9taXNlIHRvIHJlamVjdCB3aXRoIGV4cGVjdGVkRXJy
b3IgZnVuY3Rpb24gImZ1bmN0aW9uICgpIHsgdGhyb3cgZSB9IiB0aHJldyBvYmplY3QgIlNlY3Vy
aXR5RXJyb3I6IHNob3coKSBtdXN0IGJlIHRyaWdnZXJlZCBieSB1c2VyIGFjdGl2YXRpb24uIiAo
IlNlY3VyaXR5RXJyb3IiKSBleHBlY3RlZCBpbnN0YW5jZSBvZiBmdW5jdGlvbiAiZnVuY3Rpb24g
VHlwZUVycm9yKCkgewotICAgIFtuYXRpdmUgY29kZV0KLX0iICgiVHlwZUVycm9yIikKLUZBSUwg
VXBkYXRpbmcgd2l0aCBhIG5lZ2F0aXZlIHRvdGFsIHJlc3VsdHMgaW4gYSBUeXBlRXJyb3IuIHBy
b21pc2VfcmVqZWN0c19qczogYmFkRGV0YWlscyBtdXN0IGNhdXNlIGFjY2VwdFByb21pc2UgdG8g
cmVqZWN0IHdpdGggZXhwZWN0ZWRFcnJvciBmdW5jdGlvbiAiZnVuY3Rpb24gKCkgeyB0aHJvdyBl
IH0iIHRocmV3IG9iamVjdCAiU2VjdXJpdHlFcnJvcjogc2hvdygpIG11c3QgYmUgdHJpZ2dlcmVk
IGJ5IHVzZXIgYWN0aXZhdGlvbi4iICgiU2VjdXJpdHlFcnJvciIpIGV4cGVjdGVkIGluc3RhbmNl
IG9mIGZ1bmN0aW9uICJmdW5jdGlvbiBUeXBlRXJyb3IoKSB7Ci0gICAgW25hdGl2ZSBjb2RlXQot
fSIgKCJUeXBlRXJyb3IiKQotRkFJTCBVcGRhdGluZyB3aXRoIGEgZGlzcGxheUl0ZW0gd2l0aCBh
biBpbnZhbGlkIGN1cnJlbmN5IHJlc3VsdHMgaW4gUmFuZ2VFcnJvci4gcHJvbWlzZV9yZWplY3Rz
X2pzOiBiYWREZXRhaWxzIG11c3QgY2F1c2UgYWNjZXB0UHJvbWlzZSB0byByZWplY3Qgd2l0aCBl
eHBlY3RlZEVycm9yIGZ1bmN0aW9uICJmdW5jdGlvbiAoKSB7IHRocm93IGUgfSIgdGhyZXcgb2Jq
ZWN0ICJTZWN1cml0eUVycm9yOiBzaG93KCkgbXVzdCBiZSB0cmlnZ2VyZWQgYnkgdXNlciBhY3Rp
dmF0aW9uLiIgKCJTZWN1cml0eUVycm9yIikgZXhwZWN0ZWQgaW5zdGFuY2Ugb2YgZnVuY3Rpb24g
ImZ1bmN0aW9uIFJhbmdlRXJyb3IoKSB7Ci0gICAgW25hdGl2ZSBjb2RlXQotfSIgKCJSYW5nZUVy
cm9yIikKLUZBSUwgVXBkYXRpbmcgd2l0aCBkdXBsaWNhdGUgc2hpcHBpbmdPcHRpb25zIChzYW1l
IElEcykgcmVzdWx0cyBpbiBhIFR5cGVFcnJvci4gcHJvbWlzZV9yZWplY3RzX2pzOiBiYWREZXRh
aWxzIG11c3QgY2F1c2UgYWNjZXB0UHJvbWlzZSB0byByZWplY3Qgd2l0aCBleHBlY3RlZEVycm9y
IGZ1bmN0aW9uICJmdW5jdGlvbiAoKSB7IHRocm93IGUgfSIgdGhyZXcgb2JqZWN0ICJTZWN1cml0
eUVycm9yOiBzaG93KCkgbXVzdCBiZSB0cmlnZ2VyZWQgYnkgdXNlciBhY3RpdmF0aW9uLiIgKCJT
ZWN1cml0eUVycm9yIikgZXhwZWN0ZWQgaW5zdGFuY2Ugb2YgZnVuY3Rpb24gImZ1bmN0aW9uIFR5
cGVFcnJvcigpIHsKLSAgICBbbmF0aXZlIGNvZGVdCi19IiAoIlR5cGVFcnJvciIpCi1GQUlMIFVw
ZGF0aW5nIHdpdGggYSBzaGlwcGluZ09wdGlvbiB3aXRoIGFuIGludmFsaWQgY3VycmVuY3kgdmFs
dWUgcmVzdWx0cyBpbiBhIFJhbmdFcnJvci4gcHJvbWlzZV9yZWplY3RzX2pzOiBiYWREZXRhaWxz
IG11c3QgY2F1c2UgYWNjZXB0UHJvbWlzZSB0byByZWplY3Qgd2l0aCBleHBlY3RlZEVycm9yIGZ1
bmN0aW9uICJmdW5jdGlvbiAoKSB7IHRocm93IGUgfSIgdGhyZXcgb2JqZWN0ICJTZWN1cml0eUVy
cm9yOiBzaG93KCkgbXVzdCBiZSB0cmlnZ2VyZWQgYnkgdXNlciBhY3RpdmF0aW9uLiIgKCJTZWN1
cml0eUVycm9yIikgZXhwZWN0ZWQgaW5zdGFuY2Ugb2YgZnVuY3Rpb24gImZ1bmN0aW9uIFJhbmdl
RXJyb3IoKSB7Ci0gICAgW25hdGl2ZSBjb2RlXQotfSIgKCJSYW5nZUVycm9yIikKLUZBSUwgTXVz
dCB0aHJvdyBhIFJhbmdlRXJyb3Igd2hlbiBhIG1vZGlmaWVyJ3MgdG90YWwgaXRlbSBoYXMgYW4g
aW52YWxpZCBjdXJyZW5jeS4gcHJvbWlzZV9yZWplY3RzX2pzOiBiYWREZXRhaWxzIG11c3QgY2F1
c2UgYWNjZXB0UHJvbWlzZSB0byByZWplY3Qgd2l0aCBleHBlY3RlZEVycm9yIGZ1bmN0aW9uICJm
dW5jdGlvbiAoKSB7IHRocm93IGUgfSIgdGhyZXcgb2JqZWN0ICJTZWN1cml0eUVycm9yOiBzaG93
KCkgbXVzdCBiZSB0cmlnZ2VyZWQgYnkgdXNlciBhY3RpdmF0aW9uLiIgKCJTZWN1cml0eUVycm9y
IikgZXhwZWN0ZWQgaW5zdGFuY2Ugb2YgZnVuY3Rpb24gImZ1bmN0aW9uIFJhbmdlRXJyb3IoKSB7
Ci0gICAgW25hdGl2ZSBjb2RlXQotfSIgKCJSYW5nZUVycm9yIikKLUZBSUwgTXVzdCB0aHJvdyBh
IFJhbmdlRXJyb3Igd2hlbiBhIG1vZGlmaWVyIGRpc3BsYXkgaXRlbSBoYXMgYW4gaW52YWxpZCBj
dXJyZW5jeS4gcHJvbWlzZV9yZWplY3RzX2pzOiBiYWREZXRhaWxzIG11c3QgY2F1c2UgYWNjZXB0
UHJvbWlzZSB0byByZWplY3Qgd2l0aCBleHBlY3RlZEVycm9yIGZ1bmN0aW9uICJmdW5jdGlvbiAo
KSB7IHRocm93IGUgfSIgdGhyZXcgb2JqZWN0ICJTZWN1cml0eUVycm9yOiBzaG93KCkgbXVzdCBi
ZSB0cmlnZ2VyZWQgYnkgdXNlciBhY3RpdmF0aW9uLiIgKCJTZWN1cml0eUVycm9yIikgZXhwZWN0
ZWQgaW5zdGFuY2Ugb2YgZnVuY3Rpb24gImZ1bmN0aW9uIFJhbmdlRXJyb3IoKSB7Ci0gICAgW25h
dGl2ZSBjb2RlXQotfSIgKCJSYW5nZUVycm9yIikKLUZBSUwgTXVzdCB0aHJvdyBhcyBNb2RpZmll
ciBoYXMgYSByZWN1cnNpdmUgZGljdGlvbmFyeS4gcHJvbWlzZV9yZWplY3RzX2pzOiBiYWREZXRh
aWxzIG11c3QgY2F1c2UgYWNjZXB0UHJvbWlzZSB0byByZWplY3Qgd2l0aCBleHBlY3RlZEVycm9y
IGZ1bmN0aW9uICJmdW5jdGlvbiAoKSB7IHRocm93IGUgfSIgdGhyZXcgb2JqZWN0ICJTZWN1cml0
eUVycm9yOiBzaG93KCkgbXVzdCBiZSB0cmlnZ2VyZWQgYnkgdXNlciBhY3RpdmF0aW9uLiIgKCJT
ZWN1cml0eUVycm9yIikgZXhwZWN0ZWQgaW5zdGFuY2Ugb2YgZnVuY3Rpb24gImZ1bmN0aW9uIFR5
cGVFcnJvcigpIHsKLSAgICBbbmF0aXZlIGNvZGVdCi19IiAoIlR5cGVFcnJvciIpCi0K
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>436477</attachid>
            <date>2021-08-26 00:35:05 -0700</date>
            <delta_ts>2021-08-31 02:37:52 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-217365-20210826173503.patch</filename>
            <type>text/plain</type>
            <size>53380</size>
            <attacher name="Marcos Caceres">marcos</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjgxNjAyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNjUyOGFjN2M2NGJlYzQ0
NjMzMjZhNGIzYTYzYjlkNGQ2YzcwODk0OS4uN2FlNDcwZTljMzg1MzVjMjI0YmQ2MDQ3NWJkOTJi
YTc2Zjc2OTJmNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE1IEBACisyMDIxLTA4LTI1ICBNYXJj
b3MgQ2FjZXJlcyAgPG1hcmNvc0BtYXJjb3NjLmNvbT4KKworICAgICAgICBbUGF5bWVudCBSZXF1
ZXN0XSBDYWxsaW5nIFBheW1lbnRSZXF1ZXN0J3Mgc2hvdygpIHNob3VsZCBjb25zdW1lIHVzZXIg
YWN0aXZhdGlvbgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9MjE3MzY1CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgWW91ZW5uIEZhYmxldC4KKworICAgICAg
ICBUZXN0ZWQgYnkgZXhpc3RpbmcgV1BUIHRlc3RzLgorCisgICAgICAgICogTW9kdWxlcy9wYXlt
ZW50cmVxdWVzdC9QYXltZW50UmVxdWVzdC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpQYXltZW50
UmVxdWVzdDo6c2hvdyk6CisKIDIwMjEtMDgtMjUgIEVyaWMgQ2FybHNvbiAgPGVyaWMuY2FybHNv
bkBhcHBsZS5jb20+CiAKICAgICAgICAgW0dQVVBdIFJlbW90ZUF1ZGlvU2Vzc2lvbiBkb2Vzbid0
IGltcGxlbWVudCBiZWdpbi9lbmRJbnRlcnJ1cHRpb24KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvcGF5bWVudHJlcXVlc3QvUGF5bWVudFJlcXVlc3QuY3BwIGIvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy9wYXltZW50cmVxdWVzdC9QYXltZW50UmVxdWVzdC5jcHAKaW5kZXggYTQx
ZmEwODY0MjRiNTY4MTI2NjQ1NDQzNDc5YWVhZjljNjk3M2Y0Zi4uODQxNDI4YTI1NjNkMTRlZTZj
ZTRkY2Q1YTJkMDIxMDczZjBkODYyYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy9wYXltZW50cmVxdWVzdC9QYXltZW50UmVxdWVzdC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy9wYXltZW50cmVxdWVzdC9QYXltZW50UmVxdWVzdC5jcHAKQEAgLTM2Myw3ICszNjMs
NyBAQCBQYXltZW50UmVxdWVzdDo6flBheW1lbnRSZXF1ZXN0KCkKICAgICBBU1NFUlQoIW1fYWN0
aXZlUGF5bWVudEhhbmRsZXIpOwogfQogCi0vLyBodHRwczovL3d3dy53My5vcmcvVFIvcGF5bWVu
dC1yZXF1ZXN0LyNzaG93KCktbWV0aG9kCisvLyBodHRwczovL3d3dy53My5vcmcvVFIvcGF5bWVu
dC1yZXF1ZXN0LyNzaG93LW1ldGhvZAogdm9pZCBQYXltZW50UmVxdWVzdDo6c2hvdyhEb2N1bWVu
dCYgZG9jdW1lbnQsIFJlZlB0cjxET01Qcm9taXNlPiYmIGRldGFpbHNQcm9taXNlLCBTaG93UHJv
bWlzZSYmIHByb21pc2UpCiB7CiAgICAgaWYgKCFkb2N1bWVudC5mcmFtZSgpKSB7CkBAIC0zNzEs
NyArMzcxLDggQEAgdm9pZCBQYXltZW50UmVxdWVzdDo6c2hvdyhEb2N1bWVudCYgZG9jdW1lbnQs
IFJlZlB0cjxET01Qcm9taXNlPiYmIGRldGFpbHNQcm9taXMKICAgICAgICAgcmV0dXJuOwogICAg
IH0KIAotICAgIGlmICghVXNlckdlc3R1cmVJbmRpY2F0b3I6OnByb2Nlc3NpbmdVc2VyR2VzdHVy
ZSgpKSB7CisgICAgYXV0byogd2luZG93ID0gZG9jdW1lbnQuZnJhbWUoKS0+d2luZG93KCk7Cisg
ICAgaWYgKCF3aW5kb3cgfHwgIXdpbmRvdy0+Y29uc3VtZVRyYW5zaWVudEFjdGl2YXRpb24oKSkg
ewogICAgICAgICBwcm9taXNlLnJlamVjdChFeGNlcHRpb24geyBTZWN1cml0eUVycm9yLCAic2hv
dygpIG11c3QgYmUgdHJpZ2dlcmVkIGJ5IHVzZXIgYWN0aXZhdGlvbi4iIH0pOwogICAgICAgICBy
ZXR1cm47CiAgICAgfQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nIGIvTGF5b3V0
VGVzdHMvQ2hhbmdlTG9nCmluZGV4IDRmMDlkMTlkNzYzZGJjNWFhZmFhNzc3YjViOWY3NjFkZWYw
MmZhYjkuLjE0M2I5ODJmMzA1MjA3NjhiMTJiZjcyNzg2NmQ0MzM1YzVmNmYxMTIgMTAwNjQ0Ci0t
LSBhL0xheW91dFRlc3RzL0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKQEAg
LTEsMyArMSwxNCBAQAorMjAyMS0wOC0yNSAgTWFyY29zIENhY2VyZXMgIDxtYXJjb3NAbWFyY29z
Yy5jb20+CisKKyAgICAgICAgW1BheW1lbnQgUmVxdWVzdF0gQ2FsbGluZyBQYXltZW50UmVxdWVz
dCdzIHNob3coKSBzaG91bGQgY29uc3VtZSB1c2VyIGFjdGl2YXRpb24KKyAgICAgICAgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIxNzM2NQorCisgICAgICAgIFJldmll
d2VkIGJ5IFlvdWVubiBGYWJsZXQuCisKKyAgICAgICAgKiBodHRwL3Rlc3RzL3BheW1lbnRyZXF1
ZXN0L3BheW1lbnQtaXMtc2hvd2luZy5odHRwcy5odG1sOgorICAgICAgICAqIGh0dHAvdGVzdHMv
cGF5bWVudHJlcXVlc3QvcGF5bWVudC1yZXF1ZXN0LXNob3ctbWV0aG9kLmh0dHBzLmh0bWw6Cisg
ICAgICAgICogcGxhdGZvcm0vaW9zLXdrMi9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L3BheW1lbnQtcmVxdWVzdC9zaG93LW1ldGhvZC1vcHRpb25hbC1wcm9taXNlLXJlamVjdHMuaHR0
cHMtZXhwZWN0ZWQudHh0OiBSZW1vdmVkLgorCiAyMDIxLTA4LTI1ICBUcnVpdHQgU2F2ZWxsICA8
dHNhdmVsbEBhcHBsZS5jb20+CiAKICAgICAgICAgMjUgd2Via2l0IGltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvY3NzLyBsYXlvdXQgdGVzdHMgZmFpbGluZyB3aXRoIGJsYWNrIGJhcnMK
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9DaGFuZ2VMb2cgYi9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2MvQ2hhbmdlTG9nCmluZGV4IDhhNjY1MGY4ODI4NDk5ODAyYTlkMjBl
ZmU2OWI1NDMzN2I2NDRiOGYuLjliZTRhODU3MDZkY2QyOGQzZTM2MjljOGMxMzgzODQyMWVhMDU3
ODcgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9DaGFuZ2VMb2cKKysrIGIv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIwIEBACisyMDIx
LTA4LTI1ICBNYXJjb3MgQ2FjZXJlcyAgPG1hcmNvc0BtYXJjb3NjLmNvbT4KKworICAgICAgICBb
UGF5bWVudCBSZXF1ZXN0XSBDYWxsaW5nIFBheW1lbnRSZXF1ZXN0J3Mgc2hvdygpIHNob3VsZCBj
b25zdW1lIHVzZXIgYWN0aXZhdGlvbgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9MjE3MzY1CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgWW91ZW5uIEZhYmxl
dC4KKworICAgICAgICBSZS1pbXBvcnQgcGF5bWVudC1yZXF1ZXN0IHRlc3RzIGZyb20gV1BUIGMw
NDUzZWExNWJlNjNmYzY5N2JkYmMxNDFhYTY4MzdhMTAyMGIxMTQuCisKKyAgICAgICAgKiB3ZWIt
cGxhdGZvcm0tdGVzdHMvcGF5bWVudC1yZXF1ZXN0L3BheW1lbnQtaXMtc2hvd2luZy5odHRwcy5o
dG1sOgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy9wYXltZW50LXJlcXVlc3QvcGF5bWVu
dC1yZXF1ZXN0LWNhbm1ha2VwYXltZW50LW1ldGhvZC5odHRwcy1leHBlY3RlZC50eHQ6CisgICAg
ICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL3BheW1lbnQtcmVxdWVzdC9wYXltZW50LXJlcXVlc3Qt
aGFzZW5yb2xsZWRpbnN0cnVtZW50LW1ldGhvZC50ZW50YXRpdmUuaHR0cHMtZXhwZWN0ZWQudHh0
OgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy9wYXltZW50LXJlcXVlc3QvcGF5bWVudC1y
ZXF1ZXN0LXNob3ctbWV0aG9kLmh0dHBzLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICog
d2ViLXBsYXRmb3JtLXRlc3RzL3BheW1lbnQtcmVxdWVzdC9wYXltZW50LXJlcXVlc3Qtc2hvdy1t
ZXRob2QuaHR0cHMuaHRtbDoKKyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvcGF5bWVudC1y
ZXF1ZXN0L3JlamVjdHNfaWZfbm90X2FjdGl2ZS5odHRwcy5odG1sOgorICAgICAgICAqIHdlYi1w
bGF0Zm9ybS10ZXN0cy9wYXltZW50LXJlcXVlc3Qvc2hvdy1tZXRob2Qtb3B0aW9uYWwtcHJvbWlz
ZS1yZWplY3RzLmh0dHBzLWV4cGVjdGVkLnR4dDoKKwogMjAyMS0wOC0yNSAgQ2hyaXMgRHVtZXog
IDxjZHVtZXpAYXBwbGUuY29tPgogCiAgICAgICAgIFtNYWMgd2syXSBpbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL2h0bWwvY3Jvc3Mtb3JpZ2luLWVtYmVkZGVyLXBvbGljeS9yZXBvcnRp
bmctdG8tZnJhbWUtb3duZXIuaHR0cHMuaHRtbCBpcyBhIGZsYWt5IGZhaWx1cmUKZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcGF5bWVudHJlcXVlc3QvcGF5bWVudC1pcy1zaG93
aW5nLmh0dHBzLmh0bWwgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3BheW1lbnRyZXF1ZXN0L3Bh
eW1lbnQtaXMtc2hvd2luZy5odHRwcy5odG1sCmluZGV4IDJlOWEyNGM4MDAyZDM4OGE4YzNjOGZm
OWYxYWQ4NmJkYzgwOWM2OTAuLmE4NGI4YTI0ZGI3ZjNkYTZjMjJjYWUwZjI3MjkxNmNjOGZiMGY5
M2UgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcGF5bWVudHJlcXVlc3QvcGF5
bWVudC1pcy1zaG93aW5nLmh0dHBzLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9w
YXltZW50cmVxdWVzdC9wYXltZW50LWlzLXNob3dpbmcuaHR0cHMuaHRtbApAQCAtNzEsOSArNzEs
MTQgQEAKICAgICAgIC8vIFNldHMgdGhlICJwYXltZW50LXJlbGV2YW50IGJyb3dzaW5nIGNvbnRl
eHQncyBwYXltZW50IHJlcXVlc3QgaXMKICAgICAgIC8vIHNob3dpbmcgYm9vbGVhbiIgdG8gdHJ1
ZSBhbmQgdGhlbiB0cnkgdG8gc2hvdyBhIHNlY29uZCBwYXltZW50IHNoZWV0IGluCiAgICAgICAv
LyB0aGUgc2FtZSB3aW5kb3cuIFRoZSBzZWNvbmQgc2hvdygpIHNob3VsZCByZWplY3QuCi0gICAg
ICBjb25zdCBbc2hvd1Byb21pc2UxLCBzaG93UHJvbWlzZTJdID0gYXdhaXQgYWN0aXZhdGVUaGVu
KAotICAgICAgICBhc3luYyAoKSA9PiB7Ci0gICAgICAgICAgcmV0dXJuIFtyZXF1ZXN0MS5zaG93
KCksIHJlcXVlc3QyLnNob3coKV07CisgICAgICBjb25zdCBbc2hvd1Byb21pc2UxXSA9IGF3YWl0
IGFjdGl2YXRlVGhlbigKKyAgICAgICAgKCkgPT4geworICAgICAgICAgIHJldHVybiBbcmVxdWVz
dDEuc2hvdygpXQorICAgICAgICB9CisgICAgICApOworICAgICAgY29uc3QgW3Nob3dQcm9taXNl
Ml0gPSBhd2FpdCBhY3RpdmF0ZVRoZW4oCisgICAgICAgICgpID0+IHsKKyAgICAgICAgICByZXR1
cm4gW3JlcXVlc3QyLnNob3coKV0KICAgICAgICAgfQogICAgICAgKTsKICAgICAgIGF3YWl0IHBy
b21pc2VfcmVqZWN0cygKQEAgLTExNywxMiArMTIyLDE4IEBACiAgICAgICBjb25zdCBpZnJhbWVS
ZXF1ZXN0ID0gbmV3IGlmcmFtZVdpbmRvdy5QYXltZW50UmVxdWVzdChtZXRob2RzLCBkZXRhaWxz
KTsKICAgICAgIGNvbnN0IHdpbmRvd1JlcXVlc3QgPSBuZXcgd2luZG93LlBheW1lbnRSZXF1ZXN0
KG1ldGhvZHMsIGRldGFpbHMpOwogCi0gICAgICAvLyBMZXQncyBnZXQgc29tZSBibGVzc2VkIHNo
b3dQcm9taXNlcwotICAgICAgY29uc3QgW2lmcmFtZVNob3dQcm9taXNlLCB3aW5kb3dTaG93UHJv
bWlzZV0gPSBhd2FpdCBhY3RpdmF0ZVRoZW4oCi0gICAgICAgIGFzeW5jICgpID0+IHsKLSAgICAg
ICAgICAvLyBpZnJhbWUgc2V0cyAiaXMgc2hvd2luZyBib29sZWFuIiwgaWdub3JlIHRoZSByZXR1
cm5lZCBwcm9taXNlLgorICAgICAgLy8gTGV0J3MgZ2V0IGJsZXNzZWQgcHJvbWlzZSBmb3IgdGhl
IGlmcmFtZQorICAgICAgY29uc3QgW2lmcmFtZVNob3dQcm9taXNlXSA9IGF3YWl0IGFjdGl2YXRl
VGhlbigKKyAgICAgICAgKCkgPT4geworICAgICAgICAgIC8vIGlmcmFtZSBzZXRzICJpcyBzaG93
aW5nIGJvb2xlYW4iCisgICAgICAgICAgcmV0dXJuIFtpZnJhbWVSZXF1ZXN0LnNob3coKV07Cisg
ICAgICAgIH0KKyAgICAgICk7CisKKyAgICAgIGNvbnN0IFt3aW5kb3dTaG93UHJvbWlzZV0gPSBh
d2FpdCBhY3RpdmF0ZVRoZW4oCisgICAgICAgICgpID0+IHsKICAgICAgICAgICAvLyBUaGUgdG9w
IGxldmVsIHdpbmRvdyBub3cgdHJpZXMgdG8gc2hvdygpIHRoZSBwYXltZW50IHJlcXVlc3QuCi0g
ICAgICAgICAgcmV0dXJuIFtpZnJhbWVSZXF1ZXN0LnNob3coKSwgd2luZG93UmVxdWVzdC5zaG93
KCldOworICAgICAgICAgIHJldHVybiBbd2luZG93UmVxdWVzdC5zaG93KCldOwogICAgICAgICB9
CiAgICAgICApOwogCkBAIC0xMzAsNyArMTQxLDcgQEAKICAgICAgICAgdCwKICAgICAgICAgJ0Fi
b3J0RXJyb3InLAogICAgICAgICB3aW5kb3dTaG93UHJvbWlzZSwKLSAgICAgICAgJ2lmcmFtZSBp
cyBhbHJlYWR5IHNob3dpbmcgYSBwYXltZW50IHJlcXVlc3QuJywKKyAgICAgICAgJ2lmcmFtZSBp
cyBhbHJlYWR5IHNob3dpbmcgYSBwYXltZW50IHJlcXVlc3QnLAogICAgICAgKTsKIAogICAgICAg
Ly8gQ2xlYW51cApAQCAtMTU0LDkgKzE2NSwxNSBAQAogICAgICAgLy8gV2UgZmlyc3Qgc2hvdyBh
IHBheW1lbnQgcmVxdWVzdCB2aWEgdGhlIHRoZSB0b3AgbGV2ZWwgYnJvd3NpbmcgY29udGV4dCwK
ICAgICAgIC8vIHdpbmRvd1JlcXVlc3Quc2hvdygpIHNldHMgImlzIHNob3dpbmcgYm9vbGVhbiIg
dG8gdHJ1ZS4gVGhlbiB3ZSB0cnkgdG8KICAgICAgIC8vIHNob3cgYSBwYXltZW50IHJlcXVlc3Qg
aW4gdGhlIGlmcmFtZSwgd2hpY2ggc2hvdWxkIHJlamVjdC4KLSAgICAgIGNvbnN0IFt3aW5kb3dT
aG93UHJvbWlzZSwgaWZyYW1lU2hvd1Byb21pc2VdID0gYXdhaXQgYWN0aXZhdGVUaGVuKAotICAg
ICAgICBhc3luYyAoKSA9PiB7Ci0gICAgICAgICAgcmV0dXJuIFt3aW5kb3dSZXF1ZXN0LnNob3co
KSwgaWZyYW1lUmVxdWVzdC5zaG93KCldOworICAgICAgY29uc3QgW3dpbmRvd1Nob3dQcm9taXNl
XSA9IGF3YWl0IGFjdGl2YXRlVGhlbigKKyAgICAgICAgKCkgPT4geworICAgICAgICAgIHJldHVy
biBbd2luZG93UmVxdWVzdC5zaG93KCldOworICAgICAgICB9CisgICAgICApOworCisgICAgICBj
b25zdCBbaWZyYW1lU2hvd1Byb21pc2VdID0gYXdhaXQgYWN0aXZhdGVUaGVuKAorICAgICAgICAo
KSA9PiB7CisgICAgICAgICAgcmV0dXJuIFtpZnJhbWVSZXF1ZXN0LnNob3coKV07CiAgICAgICAg
IH0KICAgICAgICk7CiAKQEAgLTE4OCwxNSArMjA1LDE1IEBACiAgICAgICAvLyBHZXQgdGhlIHNo
b3dQcm9taXNlIGZvciBlYWNoIGJyb3dzaW5nIGNvbnRleHQuIERvaW5nIHRoaXMgaW4gYSBzZXBh
cmF0ZQogICAgICAgLy8gdGVzdF9kcml2ZXIuYmxlc3MoKSBpcyBpbXBvcnRhbnQgYmVjYXVzZSB0
aGUgdXNlciBnZXN0dXJlIGJyaW5ncwogICAgICAgLy8gfHdpbmRvd3wgdG8gdGhlIGZvcmVncm91
bmQsIHNvIHRoYXQgdGhlIHBheW1lbnQgc2hlZXQgY2FuIHNob3cuCi0gICAgICBjb25zdCBbCi0g
ICAgICAgIHdpbmRvd1Nob3dQcm9taXNlLAotICAgICAgICBpZnJhbWVTaG93UHJvbWlzZSwKLSAg
ICAgIF0gPSBhd2FpdCBhY3RpdmF0ZVRoZW4oCisgICAgICBjb25zdCBbd2luZG93U2hvd1Byb21p
c2VdID0gYXdhaXQgYWN0aXZhdGVUaGVuKAorICAgICAgICAoKSA9PiB7CisgICAgICAgICAgcmV0
dXJuIFt3aW5kb3dSZXF1ZXN0LnNob3coKV07CisgICAgICAgIH0KKyAgICAgICk7CisKKyAgICAg
IGNvbnN0IFsgaWZyYW1lU2hvd1Byb21pc2UgXSA9IGF3YWl0IGFjdGl2YXRlVGhlbigKICAgICAg
ICAgYXN5bmMgKCkgPT4gewotICAgICAgICAgIHJldHVybiBbCi0gICAgICAgICAgICB3aW5kb3dS
ZXF1ZXN0LnNob3coKSwKLSAgICAgICAgICAgIGlmcmFtZVJlcXVlc3Quc2hvdygpLAotICAgICAg
ICAgIF07CisgICAgICAgICAgcmV0dXJuIFtpZnJhbWVSZXF1ZXN0LnNob3coKV07CiAgICAgICAg
IH0KICAgICAgICk7CiAKQEAgLTIyNywxNSArMjQ0LDE0IEBACiAgICAgICAvLyBHZXQgdGhlIHNo
b3dQcm9taXNlIGZvciBlYWNoIGJyb3dzaW5nIGNvbnRleHQuIERvaW5nIHRoaXMgaW4gYSBzZXBh
cmF0ZQogICAgICAgLy8gdGVzdF9kcml2ZXIuYmxlc3MoKSBpcyBpbXBvcnRhbnQgYmVjYXVzZSB0
aGUgdXNlciBnZXN0dXJlIGJyaW5ncwogICAgICAgLy8gfHdpbmRvd3wgdG8gdGhlIGZvcmVncm91
bmQsIHNvIHRoYXQgdGhlIHBheW1lbnQgc2hlZXQgY2FuIHNob3cuCi0gICAgICBjb25zdCBbCi0g
ICAgICAgIGlmcmFtZVNob3dQcm9taXNlLAotICAgICAgICB3aW5kb3dTaG93UHJvbWlzZSwKLSAg
ICAgIF0gPSBhd2FpdCBhY3RpdmF0ZVRoZW4oCi0gICAgICAgIGFzeW5jICgpID0+IHsKLSAgICAg
ICAgICByZXR1cm4gWwotICAgICAgICAgICAgaWZyYW1lUmVxdWVzdC5zaG93KCksCi0gICAgICAg
ICAgICB3aW5kb3dSZXF1ZXN0LnNob3coKSwKLSAgICAgICAgICBdOworICAgICAgY29uc3QgW2lm
cmFtZVNob3dQcm9taXNlXSA9IGF3YWl0IGFjdGl2YXRlVGhlbigKKyAgICAgICAgKCkgPT4gewor
ICAgICAgICAgIHJldHVybiBbaWZyYW1lUmVxdWVzdC5zaG93KCldOworICAgICAgICB9CisgICAg
ICApOworICAgICAgY29uc3QgW3dpbmRvd1Nob3dQcm9taXNlXSA9IGF3YWl0IGFjdGl2YXRlVGhl
bigKKyAgICAgICAgKCkgPT4geworICAgICAgICAgIHJldHVybiBbd2luZG93UmVxdWVzdC5zaG93
KCldOwogICAgICAgICB9CiAgICAgICApOwogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRw
L3Rlc3RzL3BheW1lbnRyZXF1ZXN0L3BheW1lbnQtcmVxdWVzdC1zaG93LW1ldGhvZC5odHRwcy5o
dG1sIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9wYXltZW50cmVxdWVzdC9wYXltZW50LXJlcXVl
c3Qtc2hvdy1tZXRob2QuaHR0cHMuaHRtbAppbmRleCA2NGU1MmM2OWZlMTdkM2ZmMTdkNmU5ZGFi
ODMyZDcxODUxOTA5ZTEzLi40MzJhMDlmZTRjNjgzODQxYmQ4YWE1YWEzOTE5MDA1NDQ0MjA2Y2E1
IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3BheW1lbnRyZXF1ZXN0L3BheW1l
bnQtcmVxdWVzdC1zaG93LW1ldGhvZC5odHRwcy5odG1sCisrKyBiL0xheW91dFRlc3RzL2h0dHAv
dGVzdHMvcGF5bWVudHJlcXVlc3QvcGF5bWVudC1yZXF1ZXN0LXNob3ctbWV0aG9kLmh0dHBzLmh0
bWwKQEAgLTQ2LDcgKzQ2LDcgQEAgdGVzdCgoKSA9PiB7CiB1c2VyX2FjdGl2YXRpb25fdGVzdChh
c3luYyB0ID0+IHsKICAgY29uc3QgcmVxdWVzdCA9IG5ldyBQYXltZW50UmVxdWVzdChkZWZhdWx0
TWV0aG9kcywgZGVmYXVsdERldGFpbHMpOwogICBjb25zdCBhY2NlcHRQcm9taXNlID0gcmVxdWVz
dC5zaG93KCk7IC8vIFNldHMgc3RhdGUgdG8gImludGVyYWN0aXZlIgotICBhd2FpdCBwcm9taXNl
X3JlamVjdHModCwgIkludmFsaWRTdGF0ZUVycm9yIiwgcmVxdWVzdC5zaG93KCkpOworICBhd2Fp
dCBwcm9taXNlX3JlamVjdHModCwgIlNlY3VyaXR5RXJyb3IiLCByZXF1ZXN0LnNob3coKSk7CiAg
IGF3YWl0IHJlcXVlc3QuYWJvcnQoKTsKICAgYXdhaXQgcHJvbWlzZV9yZWplY3RzKHQsICJBYm9y
dEVycm9yIiwgYWNjZXB0UHJvbWlzZSk7CiB9LCBgVGhyb3dzIGlmIHRoZSBwcm9taXNlIFtbc3Rh
dGVdXSBpcyBub3QgImNyZWF0ZWQiYCk7CkBAIC01Niw3ICs1Niw3IEBAIHVzZXJfYWN0aXZhdGlv
bl90ZXN0KGFzeW5jIHQgPT4gewogICBjb25zdCByZXF1ZXN0MiA9IG5ldyBQYXltZW50UmVxdWVz
dChkZWZhdWx0TWV0aG9kcywgZGVmYXVsdERldGFpbHMpOwogICBjb25zdCBhY2NlcHRQcm9taXNl
MSA9IHJlcXVlc3QxLnNob3coKTsKICAgY29uc3QgYWNjZXB0UHJvbWlzZTIgPSByZXF1ZXN0Mi5z
aG93KCk7Ci0gIGF3YWl0IHByb21pc2VfcmVqZWN0cyh0LCAiQWJvcnRFcnJvciIsIGFjY2VwdFBy
b21pc2UyKTsKKyAgYXdhaXQgcHJvbWlzZV9yZWplY3RzKHQsICJTZWN1cml0eUVycm9yIiwgYWNj
ZXB0UHJvbWlzZTIpOwogICBhd2FpdCByZXF1ZXN0MS5hYm9ydCgpOwogICBhd2FpdCBwcm9taXNl
X3JlamVjdHModCwgIkFib3J0RXJyb3IiLCBhY2NlcHRQcm9taXNlMSk7CiB9LCBgSWYgdGhlIHVz
ZXIgYWdlbnQncyAicGF5bWVudCByZXF1ZXN0IGlzIHNob3dpbmciIGJvb2xlYW4gaXMgdHJ1ZSwg
dGhlbiByZXR1cm4gYSBwcm9taXNlIHJlamVjdGVkIHdpdGggYW4gIkFib3J0RXJyb3IiIERPTUV4
Y2VwdGlvbi5gKTsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvcGF5bWVudC1yZXF1ZXN0L3BheW1lbnQtaXMtc2hvd2luZy5odHRwcy5odG1s
IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9wYXltZW50LXJl
cXVlc3QvcGF5bWVudC1pcy1zaG93aW5nLmh0dHBzLmh0bWwKaW5kZXggZmVkNmVhZjZkOWZhZGEx
MTQ0NmIzMmNhYWJhMDdiNWRlMmQ4OGIwZS4uMzRiOWFlODJiNjUzMGUzNzIzMDQ4ZTM4MzkzNjg3
MDkxYjRmYmJkNyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy9wYXltZW50LXJlcXVlc3QvcGF5bWVudC1pcy1zaG93aW5nLmh0dHBzLmh0bWwK
KysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9wYXltZW50
LXJlcXVlc3QvcGF5bWVudC1pcy1zaG93aW5nLmh0dHBzLmh0bWwKQEAgLTQsNyArNCw3IEBACiAg
IHJlbD0iaGVscCIKICAgaHJlZj0iaHR0cHM6Ly93M2MuZ2l0aHViLmlvL2Jyb3dzZXItcGF5bWVu
dC1hcGkvI2Rmbi1wYXltZW50LXJlcXVlc3QtaXMtc2hvd2luZyIKIC8+Ci08bWV0YSBuYW1lPSJ0
aW1lb3V0IiBjb250ZW50PSJsb25nIj4KKzxtZXRhIG5hbWU9InRpbWVvdXQiIGNvbnRlbnQ9Imxv
bmciIC8+CiA8c2NyaXB0IHNyYz0iL3Jlc291cmNlcy90ZXN0aGFybmVzcy5qcyI+PC9zY3JpcHQ+
CiA8c2NyaXB0IHNyYz0iL3Jlc291cmNlcy90ZXN0aGFybmVzc3JlcG9ydC5qcyI+PC9zY3JpcHQ+
CiA8c2NyaXB0IHNyYz0iL3Jlc291cmNlcy90ZXN0ZHJpdmVyLmpzIj48L3NjcmlwdD4KQEAgLTIy
LDcgKzIyLDcgQEAKICAgICAgICAgc3VwcG9ydGVkTmV0d29ya3M6IFsidmlzYSJdLAogICAgICAg
fSwKICAgICB9OwotICAgIGNvbnN0IG1ldGhvZHMgPSBbe3N1cHBvcnRlZE1ldGhvZHM6ICJiYXNp
Yy1jYXJkIn0sIGFwcGxlUGF5TWV0aG9kXTsKKyAgICBjb25zdCBtZXRob2RzID0gW3sgc3VwcG9y
dGVkTWV0aG9kczogImJhc2ljLWNhcmQiIH0sIGFwcGxlUGF5TWV0aG9kXTsKICAgICBjb25zdCBk
ZXRhaWxzID0gewogICAgICAgdG90YWw6IHsKICAgICAgICAgbGFiZWw6ICJUb3RhbCIsCkBAIC00
NCw0NSArNDQsNDAgQEAKICAgICAgIGlmcmFtZS5hbGxvdyA9ICJwYXltZW50IjsKICAgICAgIGlm
cmFtZS5zcmMgPSBzcmM7CiAgICAgICBkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKGlmcmFtZSk7
Ci0gICAgICBhd2FpdCBuZXcgUHJvbWlzZShyZXNvbHZlID0+IHsKLSAgICAgICAgaWZyYW1lLmFk
ZEV2ZW50TGlzdGVuZXIoImxvYWQiLCByZXNvbHZlLCB7b25jZTogdHJ1ZX0pOworICAgICAgYXdh
aXQgbmV3IFByb21pc2UoKHJlc29sdmUpID0+IHsKKyAgICAgICAgaWZyYW1lLmFkZEV2ZW50TGlz
dGVuZXIoImxvYWQiLCByZXNvbHZlLCB7IG9uY2U6IHRydWUgfSk7CiAgICAgICB9KTsKICAgICAg
IHJldHVybiBpZnJhbWU7CiAgICAgfQogCi0gICAgLyoqCi0gICAgICogQ3JlYXRlcyBhIHBvcHVw
IHdpbmRvdy4gVGhlIGNhbGxlciBtdXN0IGJlIHRyaWdnZXJlZCB3aXRoIGEgdXNlciBnZXN0dXJl
LgotICAgICAqCi0gICAgICogQHBhcmFtIHtTdHJpbmd9IHNyYyBPcHRpb25hbCByZXNvdXJjZSBV
UkwgdG8gbG9hZC4KLSAgICAgKiBAcmV0dXJucyB7UHJvbWlzZX0gUmVzb2x2ZXMgd2hlbiB0aGUg
c3JjIGxvYWRzLgotICAgICAqLwotICAgIGFzeW5jIGZ1bmN0aW9uIGxvYWRQb3B1cEluc2lkZVVz
ZXJHZXN0dXJlKHNyYyA9ICJibGFuay5odG1sIikgewotICAgICAgY29uc3QgcG9wdXBXaW5kb3cg
PSB3aW5kb3cub3BlbihzcmMsICIiLCAid2lkdGg9NDAwLGhlaWdodD00MDAiKTsKLSAgICAgIGF3
YWl0IG5ldyBQcm9taXNlKHJlc29sdmUgPT4gewotICAgICAgICBwb3B1cFdpbmRvdy5hZGRFdmVu
dExpc3RlbmVyKCJsb2FkIiwgcmVzb2x2ZSwge29uY2U6IHRydWV9KTsKLSAgICAgIH0pOwotICAg
ICAgcG9wdXBXaW5kb3cuZm9jdXMoKTsKLSAgICAgIHJldHVybiBwb3B1cFdpbmRvdzsKKyAgICBm
dW5jdGlvbiBnZXRTaG93UHJvbWlzZUZyb21Db250ZXh0KHBheW1lbnRSZXF1ZXN0LCBjb250ZXh0
ID0gdGhpcykgeworICAgICAgcmV0dXJuIHRlc3RfZHJpdmVyLmJsZXNzKAorICAgICAgICAicGF5
bWVudCByZXF1ZXN0IHNob3coKSIsCisgICAgICAgICgpID0+IHsKKyAgICAgICAgICByZXR1cm4g
W3BheW1lbnRSZXF1ZXN0LnNob3coKV07CisgICAgICAgIH0sCisgICAgICAgIGNvbnRleHQKKyAg
ICAgICk7CiAgICAgfQogCi0gICAgcHJvbWlzZV90ZXN0KGFzeW5jIHQgPT4geworICAgIHByb21p
c2VfdGVzdChhc3luYyAodCkgPT4gewogICAgICAgY29uc3QgcmVxdWVzdDEgPSBuZXcgUGF5bWVu
dFJlcXVlc3QobWV0aG9kcywgZGV0YWlscyk7CiAgICAgICBjb25zdCByZXF1ZXN0MiA9IG5ldyBQ
YXltZW50UmVxdWVzdChtZXRob2RzLCBkZXRhaWxzKTsKIAogICAgICAgLy8gU2V0cyB0aGUgInBh
eW1lbnQtcmVsZXZhbnQgYnJvd3NpbmcgY29udGV4dCdzIHBheW1lbnQgcmVxdWVzdCBpcwogICAg
ICAgLy8gc2hvd2luZyBib29sZWFuIiB0byB0cnVlIGFuZCB0aGVuIHRyeSB0byBzaG93IGEgc2Vj
b25kIHBheW1lbnQgc2hlZXQgaW4KICAgICAgIC8vIHRoZSBzYW1lIHdpbmRvdy4gVGhlIHNlY29u
ZCBzaG93KCkgc2hvdWxkIHJlamVjdC4KLSAgICAgIGNvbnN0IFtzaG93UHJvbWlzZTEsIHNob3dQ
cm9taXNlMl0gPSBhd2FpdCB0ZXN0X2RyaXZlci5ibGVzcygKLSAgICAgICAgInRlc3Rpbmcgb25l
IHBheW1lbnQgc2hlZXQgcGVyIHdpbmRvdyIsCi0gICAgICAgICgpID0+IHsKLSAgICAgICAgICBy
ZXR1cm4gW3JlcXVlc3QxLnNob3coKSwgcmVxdWVzdDIuc2hvdygpXTsKLSAgICAgICAgfSwKLSAg
ICAgICk7CisgICAgICBhd2FpdCB0ZXN0X2RyaXZlci5ibGVzcygicGF5bWVudCByZXF1ZXN0IHNo
b3coKSIpOworICAgICAgY29uc3Qgc2hvd1Byb21pc2UxID0gcmVxdWVzdDEuc2hvdygpOworCisg
ICAgICBhd2FpdCB0ZXN0X2RyaXZlci5ibGVzcygicGF5bWVudCByZXF1ZXN0IHNob3coKSIpOwor
ICAgICAgY29uc3Qgc2hvd1Byb21pc2UyID0gcmVxdWVzdDIuc2hvdygpOworCiAgICAgICBhd2Fp
dCBwcm9taXNlX3JlamVjdHNfZG9tKAogICAgICAgICB0LAogICAgICAgICAiQWJvcnRFcnJvciIs
CiAgICAgICAgIHNob3dQcm9taXNlMiwKLSAgICAgICAgIkF0dGVtcHRpbmcgdG8gc2hvdyBhIHNl
Y29uZCBwYXltZW50IHJlcXVlc3QgbXVzdCByZWplY3QuIiwKKyAgICAgICAgIkF0dGVtcHRpbmcg
dG8gc2hvdyBhIHNlY29uZCBwYXltZW50IHJlcXVlc3QgbXVzdCByZWplY3QuIgogICAgICAgKTsK
IAogICAgICAgYXdhaXQgcmVxdWVzdDEuYWJvcnQoKTsKQEAgLTkwLDcgKzg1LDcgQEAKICAgICAg
ICAgdCwKICAgICAgICAgIkFib3J0RXJyb3IiLAogICAgICAgICBzaG93UHJvbWlzZTEsCi0gICAg
ICAgICJyZXF1ZXN0MSB3YXMgYWJvcnRlZCB2aWEgLmFib3J0KCkiLAorICAgICAgICAicmVxdWVz
dDEgd2FzIGFib3J0ZWQgdmlhIC5hYm9ydCgpIgogICAgICAgKTsKIAogICAgICAgLy8gRmluYWxs
eSwgcmVxdWVzdDIgc2hvdWxkIGhhdmUgYmVlbiAiY2xvc2VkIiwgc28gdHJ5aW5nIHRvIHNob3cK
QEAgLTEwMSw0MCArOTYsNDAgQEAKICAgICAgICAgdCwKICAgICAgICAgIkludmFsaWRTdGF0ZUVy
cm9yIiwKICAgICAgICAgcmVqZWN0ZWRQcm9taXNlLAotICAgICAgICAiQXR0ZW1wdGluZyB0byBz
aG93IGEgc2Vjb25kIHBheW1lbnQgcmVxdWVzdCBtdXN0IHJlamVjdC4iLAorICAgICAgICAiQXR0
ZW1wdGluZyB0byBzaG93IGEgc2Vjb25kIHBheW1lbnQgcmVxdWVzdCBtdXN0IHJlamVjdC4iCiAg
ICAgICApOwogICAgICAgLy8gRmluYWxseSwgd2UgY29uZmlybSB0aGF0IHJlcXVlc3QyJ3MgcmV0
dXJuZWQgcHJvbWlzZXMgYXJlIHVuaXF1ZS4KICAgICAgIGFzc2VydF9ub3RfZXF1YWxzKAogICAg
ICAgICBzaG93UHJvbWlzZTIsCiAgICAgICAgIHJlamVjdGVkUHJvbWlzZSwKLSAgICAgICAgIlJl
dHVybmVkIFByb21pc2VzIGJlIHVuaXF1ZSIsCisgICAgICAgICJSZXR1cm5lZCBQcm9taXNlcyBi
ZSB1bmlxdWUiCiAgICAgICApOwogICAgIH0sICJUaGUgdG9wIGJyb3dzaW5nIGNvbnRleHQgY2Fu
IG9ubHkgc2hvdyBvbmUgcGF5bWVudCBzaGVldCBhdCBhIHRpbWUuIik7CiAKLSAgICBwcm9taXNl
X3Rlc3QoYXN5bmMgdCA9PiB7CisgICAgcHJvbWlzZV90ZXN0KGFzeW5jICh0KSA9PiB7CiAgICAg
ICBjb25zdCBpZnJhbWUgPSBhd2FpdCBhdHRhY2hJZnJhbWUoKTsKICAgICAgIGNvbnN0IGlmcmFt
ZVdpbmRvdyA9IGlmcmFtZS5jb250ZW50V2luZG93OwogCiAgICAgICAvLyBQYXltZW50IHJlcXVl
c3RzCi0gICAgICBjb25zdCBpZnJhbWVSZXF1ZXN0ID0gbmV3IGlmcmFtZVdpbmRvdy5QYXltZW50
UmVxdWVzdChtZXRob2RzLCBkZXRhaWxzKTsKICAgICAgIGNvbnN0IHdpbmRvd1JlcXVlc3QgPSBu
ZXcgd2luZG93LlBheW1lbnRSZXF1ZXN0KG1ldGhvZHMsIGRldGFpbHMpOworICAgICAgY29uc3Qg
aWZyYW1lUmVxdWVzdCA9IG5ldyBpZnJhbWVXaW5kb3cuUGF5bWVudFJlcXVlc3QobWV0aG9kcywg
ZGV0YWlscyk7CiAKICAgICAgIC8vIExldCdzIGdldCBzb21lIGJsZXNzZWQgc2hvd1Byb21pc2Vz
Ci0gICAgICBjb25zdCBbc2hvd1Byb21pc2VdID0gYXdhaXQgdGVzdF9kcml2ZXIuYmxlc3MoCi0g
ICAgICAgICJ0ZXN0aW5nIHRvcCB3aW5kb3cgc2hvdygpIGJsb2NrZWQgYnkgcGF5bWVudCBzaGVl
dCBpbiBpZnJhbWUiLAotICAgICAgICAoKSA9PiB7Ci0gICAgICAgICAgLy8gaWZyYW1lIHNldHMg
ImlzIHNob3dpbmcgYm9vbGVhbiIsIGlnbm9yZSB0aGUgcmV0dXJuZWQgcHJvbWlzZS4KLSAgICAg
ICAgICBpZnJhbWVSZXF1ZXN0LnNob3coKTsKLSAgICAgICAgICAvLyBUaGUgdG9wIGxldmVsIHdp
bmRvdyBub3cgdHJpZXMgdG8gc2hvdygpIHRoZSBwYXltZW50IHJlcXVlc3QuCi0gICAgICAgICAg
cmV0dXJuIFt3aW5kb3dSZXF1ZXN0LnNob3coKV07Ci0gICAgICAgIH0sCisgICAgICAvLyBpZnJh
bWUgc2V0cyAiaXMgc2hvd2luZyBib29sZWFuIiwgaWdub3JlIHRoZSByZXR1cm5lZCBwcm9taXNl
LgorICAgICAgY29uc3QgW2lmcmFtZVByb21pc2VdID0gYXdhaXQgZ2V0U2hvd1Byb21pc2VGcm9t
Q29udGV4dCgKKyAgICAgICAgaWZyYW1lUmVxdWVzdCwKKyAgICAgICAgaWZyYW1lV2luZG93CiAg
ICAgICApOwogCisgICAgICAvLyBUaGUgdG9wIGxldmVsIHdpbmRvdyBub3cgdHJpZXMgdG8gc2hv
dygpIHRoZSBwYXltZW50IHJlcXVlc3QuCisgICAgICBhd2FpdCB0ZXN0X2RyaXZlci5ibGVzcygi
cGF5bWVudCByZXF1ZXN0IHNob3coKSIpOworICAgICAgY29uc3Qgc2hvd1Byb21pc2UgPSB3aW5k
b3dSZXF1ZXN0LnNob3coKTsKKwogICAgICAgYXdhaXQgcHJvbWlzZV9yZWplY3RzX2RvbSgKICAg
ICAgICAgdCwKICAgICAgICAgIkFib3J0RXJyb3IiLAogICAgICAgICBzaG93UHJvbWlzZSwKLSAg
ICAgICAgImlmcmFtZSBpcyBhbHJlYWR5IHNob3dpbmcgYSBwYXltZW50IHJlcXVlc3QuIiwKKyAg
ICAgICAgImlmcmFtZSBpcyBhbHJlYWR5IHNob3dpbmcgYSBwYXltZW50IHJlcXVlc3QuIgogICAg
ICAgKTsKIAogICAgICAgLy8gQ2xlYW51cApAQCAtMTQyLDM2MSArMTM3LDM0IEBACiAgICAgICBp
ZnJhbWUucmVtb3ZlKCk7CiAgICAgfSwgIklmIGFuIGlmcmFtZSBzaG93cyBhIHBheW1lbnQgcmVx
dWVzdCwgdGhlIHRvcC1sZXZlbCBicm93c2luZyBjb250ZXh0IGNhbid0IGFsc28gc2hvdyBvbmUu
Iik7CiAKLSAgICBwcm9taXNlX3Rlc3QoYXN5bmMgdCA9PiB7CisgICAgcHJvbWlzZV90ZXN0KGFz
eW5jICh0KSA9PiB7CiAgICAgICBjb25zdCBpZnJhbWUgPSBhd2FpdCBhdHRhY2hJZnJhbWUoKTsK
ICAgICAgIGNvbnN0IGlmcmFtZVdpbmRvdyA9IGlmcmFtZS5jb250ZW50V2luZG93OwotCi0gICAg
ICAvLyBQYXltZW50IHJlcXVlc3RzCiAgICAgICBjb25zdCBpZnJhbWVSZXF1ZXN0ID0gbmV3IGlm
cmFtZVdpbmRvdy5QYXltZW50UmVxdWVzdChtZXRob2RzLCBkZXRhaWxzKTsKLSAgICAgIGNvbnN0
IHdpbmRvd1JlcXVlc3QgPSBuZXcgd2luZG93LlBheW1lbnRSZXF1ZXN0KG1ldGhvZHMsIGRldGFp
bHMpOwotCi0gICAgICAvLyBXZSBmaXJzdCBzaG93IGEgcGF5bWVudCByZXF1ZXN0IHZpYSB0aGUg
dGhlIHRvcCBsZXZlbCBicm93c2luZyBjb250ZXh0LAotICAgICAgLy8gd2luZG93UmVxdWVzdC5z
aG93KCkgc2V0cyAiaXMgc2hvd2luZyBib29sZWFuIiB0byB0cnVlLiBUaGVuIHdlIHRyeSB0bwot
ICAgICAgLy8gc2hvdyBhIHBheW1lbnQgcmVxdWVzdCBpbiB0aGUgaWZyYW1lLCB3aGljaCBzaG91
bGQgcmVqZWN0LgotICAgICAgY29uc3QgW3dpbmRvd1Nob3dQcm9taXNlLCBpZnJhbWVTaG93UHJv
bWlzZV0gPSBhd2FpdCB0ZXN0X2RyaXZlci5ibGVzcygKLSAgICAgICAgInRlc3RpbmcgaWZyYW1l
IHNob3coKSBibG9ja2VkIGJ5IHBheW1lbnQgc2hlZXQgaW4gdG9wIHdpbmRvdyIsCi0gICAgICAg
ICgpID0+IHsKLSAgICAgICAgICByZXR1cm4gW3dpbmRvd1JlcXVlc3Quc2hvdygpLCBpZnJhbWVS
ZXF1ZXN0LnNob3coKV07Ci0gICAgICAgIH0sCi0gICAgICApOwotCi0gICAgICBhd2FpdCBwcm9t
aXNlX3JlamVjdHNfZG9tKAotICAgICAgICB0LAotICAgICAgICAiQWJvcnRFcnJvciIsCi0gICAg
ICAgIGlmcmFtZVNob3dQcm9taXNlLAotICAgICAgICAiVGhlIHRvcCB3aW5kb3cgaXMgYWxyZWFk
eSBzaG93aW5nIGEgcGF5bWVudCByZXF1ZXN0LiIsCisgICAgICBjb25zdCBbaWZyYW1lU2hvd1By
b21pc2VdID0gYXdhaXQgZ2V0U2hvd1Byb21pc2VGcm9tQ29udGV4dCgKKyAgICAgICAgaWZyYW1l
UmVxdWVzdCwKKyAgICAgICAgaWZyYW1lV2luZG93CiAgICAgICApOwogCi0gICAgICAvLyBDbGVh
bnVwCi0gICAgICBhd2FpdCB3aW5kb3dSZXF1ZXN0LmFib3J0KCk7Ci0gICAgICBhd2FpdCBwcm9t
aXNlX3JlamVjdHNfZG9tKAotICAgICAgICB0LAotICAgICAgICAiQWJvcnRFcnJvciIsCi0gICAg
ICAgIHdpbmRvd1Nob3dQcm9taXNlLAotICAgICAgICAiVGhlIHdpbmRvdyBwYXltZW50IHJlcXVl
c3Qgc2hvdWxkIGJlIGFib3J0ZWQgYnkgdGVzdC4iLAotICAgICAgICApOwotICAgICAgaWZyYW1l
LnJlbW92ZSgpOwotICAgIH0sICJBbiBpZnJhbWUgY2Fubm90IHNob3cgYSBwYXltZW50IHJlcXVl
c3QgaWYgdGhlIHRvcC1sZXZlbCB3aW5kb3cgaXMgYWxyZWFkeSBzaG93aW5nIG9uZS4iKTsKLQot
ICAgIHByb21pc2VfdGVzdChhc3luYyB0ID0+IHsKLSAgICAgIC8vIENyZWF0ZSBhIFBheW1lbnRS
ZXVxZXN0IGluIHRvcC1sZXZlbCB3aW5kb3cuCi0gICAgICBjb25zdCB3aW5kb3dSZXF1ZXN0ID0g
bmV3IHdpbmRvdy5QYXltZW50UmVxdWVzdChtZXRob2RzLCBkZXRhaWxzKTsKLQotICAgICAgLy8g
VXNlIGEgc2luZ2xlIHVzZXIgZ2VzdHVyZSB0byBvcGVuIGEgcG9wdXAgd2luZG93IHdpdGggYSBQ
YXltZW50UmVxdWVzdC4KLSAgICAgIC8vIFRoZW4gdHJpZ2dlciBzaG93KCkgZmlyc3Qgb24gfHBv
cHVwUmVxdWVzdHwgdGhlbiBvbiB8d2luZG93UmVxdWVzdHwuCi0gICAgICAvLyBUaGUgbGF0dGVy
IHNob3VsZCByZWplY3QuCi0gICAgICBjb25zdCBbCi0gICAgICAgIHBvcHVwV2luZG93LAotICAg
ICAgICBwb3B1cFJlcXVlc3QsCi0gICAgICAgIHBvcHVwU2hvd1Byb21pc2UsCi0gICAgICAgIHdp
bmRvd1Nob3dQcm9taXNlLAotICAgICAgXSA9IGF3YWl0IHRlc3RfZHJpdmVyLmJsZXNzKAotICAg
ICAgICAidGVzdGluZyB0b3AtbGV2ZWwgc2hvdygpIGJsb2NrZWQgYnkgcGF5bWVudCBzaGVldCBp
biBwb3B1cCIsCi0gICAgICAgIGFzeW5jICgpID0+IHsKLSAgICAgICAgICBjb25zdCBwb3B1cFdp
bmRvdyA9IGF3YWl0IGxvYWRQb3B1cEluc2lkZVVzZXJHZXN0dXJlKCk7Ci0gICAgICAgICAgY29u
c3QgcG9wdXBSZXF1ZXN0ID0gbmV3IHBvcHVwV2luZG93LlBheW1lbnRSZXF1ZXN0KG1ldGhvZHMs
IGRldGFpbHMpOwotICAgICAgICAgIGNvbnN0IHBvcHVwU2hvd1Byb21pc2UgPSBwb3B1cFJlcXVl
c3Quc2hvdygpOwotICAgICAgICAgIGNvbnN0IHdpbmRvd1Nob3dQcm9taXNlID0gd2luZG93UmVx
dWVzdC5zaG93KCk7Ci0gICAgICAgICAgcmV0dXJuIFsKLSAgICAgICAgICAgIHBvcHVwV2luZG93
LAotICAgICAgICAgICAgcG9wdXBSZXF1ZXN0LAotICAgICAgICAgICAgcG9wdXBTaG93UHJvbWlz
ZSwKLSAgICAgICAgICAgIHdpbmRvd1Nob3dQcm9taXNlLAotICAgICAgICAgIF07Ci0gICAgICAg
IH0sCi0gICAgICApOwotCi0gICAgICBhd2FpdCBwcm9taXNlX3JlamVjdHNfZG9tKAotICAgICAg
ICB0LAotICAgICAgICAiQWJvcnRFcnJvciIsCi0gICAgICAgIHdpbmRvd1Nob3dQcm9taXNlLAot
ICAgICAgICAiRXhwZWN0ZWQgd2luZG93J3Mgc2hvd1Byb21pc2UgdG8gcmVqZWN0LCByZXF1ZXN0
IGlzIGFscmVhZHkgc2hvd2luZyIsCi0gICAgICApOwotCi0gICAgICBhd2FpdCBwb3B1cFJlcXVl
c3QuYWJvcnQoKTsKLSAgICAgIGF3YWl0IHByb21pc2VfcmVqZWN0c19kb20oCi0gICAgICAgIHQs
Ci0gICAgICAgICJBYm9ydEVycm9yIiwKLSAgICAgICAgcG9wdXBTaG93UHJvbWlzZSwKLSAgICAg
ICAgIkV4cGVjdGVkIHBvcHVwU2hvd1Byb21pc2UgdG8gYmUgYWJvcnRlZCBieSB0ZXN0LiIsCi0g
ICAgICApOwotICAgICAgcG9wdXBXaW5kb3cuY2xvc2UoKTsKLSAgICB9LCAiVXNpbmcgYSBwb3B1
cCB3aW5kb3cgcHJldmVudHMgdGhlIHRvcC1icm93c2luZyBjb250ZXh0IGZyb20gc2hvd2luZyBh
IHBheW1lbnQgcmVxdWVzdCIpOwotCi0gICAgcHJvbWlzZV90ZXN0KGFzeW5jIHQgPT4gewotICAg
ICAgY29uc3QgaWZyYW1lID0gYXdhaXQgYXR0YWNoSWZyYW1lKCk7Ci0gICAgICBjb25zdCBpZnJh
bWVXaW5kb3cgPSBpZnJhbWUuY29udGVudFdpbmRvdzsKLQotICAgICAgLy8gQ3JlYXRlIHJlcXVl
c3RzCi0gICAgICBjb25zdCB3aW5kb3dSZXF1ZXN0ID0gbmV3IHdpbmRvdy5QYXltZW50UmVxdWVz
dChtZXRob2RzLCBkZXRhaWxzKTsKLSAgICAgIGNvbnN0IGlmcmFtZVJlcXVlc3QgPSBuZXcgaWZy
YW1lV2luZG93LlBheW1lbnRSZXF1ZXN0KG1ldGhvZHMsIGRldGFpbHMpOwotCi0gICAgICAvLyBP
cGVuIGEgcG9wdXAgd2luZG93Ci0gICAgICBjb25zdCBbcG9wdXBXaW5kb3csIHBvcHVwUmVxdWVz
dF0gPQotICAgICAgYXdhaXQgdGVzdF9kcml2ZXIuYmxlc3MoCi0gICAgICAgICJvcGVuIHBvcHVw
IHRvIHRlc3QgbXVsdGlwbGUgY29udGV4dCBhbmQgd2luZG93IGNhbGxzIHNob3coKSBmaXJzdCIs
Ci0gICAgICAgIGFzeW5jICgpID0+IHsKLSAgICAgICAgICBjb25zdCBwb3B1cFdpbmRvdyA9IGF3
YWl0IGxvYWRQb3B1cEluc2lkZVVzZXJHZXN0dXJlKCk7Ci0gICAgICAgICAgY29uc3QgcG9wdXBS
ZXF1ZXN0ID0gbmV3IHBvcHVwV2luZG93LlBheW1lbnRSZXF1ZXN0KG1ldGhvZHMsIGRldGFpbHMp
OwotICAgICAgICAgIHJldHVybiBbcG9wdXBXaW5kb3csIHBvcHVwUmVxdWVzdF07Ci0gICAgICAg
IH0sCi0gICAgICApOwotCi0gICAgICAvLyBHZXQgdGhlIHNob3dQcm9taXNlIGZvciBlYWNoIGJy
b3dzaW5nIGNvbnRleHQuIERvaW5nIHRoaXMgaW4gYSBzZXBhcmF0ZQotICAgICAgLy8gdGVzdF9k
cml2ZXIuYmxlc3MoKSBpcyBpbXBvcnRhbnQgYmVjYXVzZSB0aGUgdXNlciBnZXN0dXJlIGJyaW5n
cwotICAgICAgLy8gfHdpbmRvd3wgdG8gdGhlIGZvcmVncm91bmQsIHNvIHRoYXQgdGhlIHBheW1l
bnQgc2hlZXQgY2FuIHNob3cuCi0gICAgICBjb25zdCBbCi0gICAgICAgIHdpbmRvd1Nob3dQcm9t
aXNlLAotICAgICAgICBwb3B1cFNob3dQcm9taXNlLAotICAgICAgICBpZnJhbWVTaG93UHJvbWlz
ZSwKLSAgICAgIF0gPSBhd2FpdCB0ZXN0X2RyaXZlci5ibGVzcygKLSAgICAgICAgInRlc3QgbXVs
dGlwbGUgbmVzdGVkIGJyb3dzaW5nIGNvbnRleHQiLAotICAgICAgICAoKSA9PiB7Ci0gICAgICAg
ICAgcmV0dXJuIFsKLSAgICAgICAgICAgIHdpbmRvd1JlcXVlc3Quc2hvdygpLAotICAgICAgICAg
ICAgcG9wdXBSZXF1ZXN0LnNob3coKSwKLSAgICAgICAgICAgIGlmcmFtZVJlcXVlc3Quc2hvdygp
LAotICAgICAgICAgIF07Ci0gICAgICAgIH0sCi0gICAgICApOwotICAgICAgLy8gcG9wdXBSZXF1
ZXN0IGFuZCBpZnJhbWVSZXF1ZXN0IHdpbGwgYm90aCByZWplY3QKLSAgICAgIGF3YWl0IHByb21p
c2VfcmVqZWN0c19kb20oCi0gICAgICAgIHQsCi0gICAgICAgICJBYm9ydEVycm9yIiwKLSAgICAg
ICAgcG9wdXBTaG93UHJvbWlzZSwKLSAgICAgICAgIkV4cGVjdGVkIHBvcHVwU2hvd1Byb21pc2Ug
dG8gcmVqZWN0LCByZXF1ZXN0IGlzIGFscmVhZHkgc2hvd2luZy4iLAotICAgICAgKTsKLQotICAg
ICAgYXdhaXQgcHJvbWlzZV9yZWplY3RzX2RvbSgKLSAgICAgICAgdCwKLSAgICAgICAgIkFib3J0
RXJyb3IiLAotICAgICAgICBpZnJhbWVTaG93UHJvbWlzZSwKLSAgICAgICAgIkV4cGVjdGVkIGlm
cmFtZVNob3dQcm9taXNlIHRvIHJlamVjdCwgcmVxdWVzdCBpcyBhbHJlYWR5IHNob3dpbmcuIiwK
LSAgICAgICk7Ci0KLSAgICAgIGF3YWl0IHdpbmRvd1JlcXVlc3QuYWJvcnQoKTsKLSAgICAgIGF3
YWl0IHByb21pc2VfcmVqZWN0c19kb20oCi0gICAgICAgIHQsCi0gICAgICAgICJBYm9ydEVycm9y
IiwKLSAgICAgICAgd2luZG93U2hvd1Byb21pc2UsCi0gICAgICAgICJFeHBlY3Qgd2luZG93IHBy
b21pc2UgdG8gYmUgYWJvcnRlZCBieSB0ZXN0LiIKLSAgICAgICk7Ci0gICAgICBwb3B1cFdpbmRv
dy5jbG9zZSgpOwotICAgICAgaWZyYW1lLnJlbW92ZSgpOwotICAgIH0sICJHaXZlbiBtdWx0aXBs
ZSBuZXN0ZWQgYnJvd3NpbmcgY29udGV4dHMsIGFuZCB3aW5kb3cgY2FsbHMgc2hvdygpIGZpcnN0
LCBvdGhlciBuZXN0ZWQgYnJvd3NpbmcgY29udGV4dHMgY2FuJ3Qgc2hvdyBhIHJlcXVlc3QuIik7
Ci0KLSAgICBwcm9taXNlX3Rlc3QoYXN5bmMgdCA9PiB7Ci0gICAgICBjb25zdCBpZnJhbWUgPSBh
d2FpdCBhdHRhY2hJZnJhbWUoKTsKLSAgICAgIGNvbnN0IGlmcmFtZVdpbmRvdyA9IGlmcmFtZS5j
b250ZW50V2luZG93OwotCi0gICAgICAvLyBDcmVhdGUgcmVxdWVzdHMKLSAgICAgIGNvbnN0IHdp
bmRvd1JlcXVlc3QgPSBuZXcgd2luZG93LlBheW1lbnRSZXF1ZXN0KG1ldGhvZHMsIGRldGFpbHMp
OwotICAgICAgY29uc3QgaWZyYW1lUmVxdWVzdCA9IG5ldyBpZnJhbWVXaW5kb3cuUGF5bWVudFJl
cXVlc3QobWV0aG9kcywgZGV0YWlscyk7Ci0KLSAgICAgIC8vIE9wZW4gYSBwb3B1cCB3aW5kb3cK
LSAgICAgIGNvbnN0IFsKLSAgICAgICAgcG9wdXBXaW5kb3csCi0gICAgICAgIHBvcHVwUmVxdWVz
dCwKLSAgICAgICAgcG9wdXBTaG93UHJvbWlzZSwKLSAgICAgICAgd2luZG93U2hvd1Byb21pc2Us
Ci0gICAgICAgIGlmcmFtZVNob3dQcm9taXNlCi0gICAgICBdID0gYXdhaXQgdGVzdF9kcml2ZXIu
Ymxlc3MoCi0gICAgICAgICJ0ZXN0IG11bHRpcGxlIGJyb3dzaW5nIGNvbnRleHQgYW5kIGlmcmFt
ZSBjYWxscyBzaG93KCkgZmlyc3QiLAotICAgICAgICBhc3luYyAoKSA9PiB7Ci0gICAgICAgICAg
Y29uc3QgcG9wdXBXaW5kb3cgPSBhd2FpdCBsb2FkUG9wdXBJbnNpZGVVc2VyR2VzdHVyZSgpOwot
ICAgICAgICAgIGNvbnN0IHBvcHVwUmVxdWVzdCA9IG5ldyBwb3B1cFdpbmRvdy5QYXltZW50UmVx
dWVzdChtZXRob2RzLCBkZXRhaWxzKTsKLSAgICAgICAgICBjb25zdCBwb3B1cFNob3dQcm9taXNl
ID0gcG9wdXBSZXF1ZXN0LnNob3coKTsKLSAgICAgICAgICBjb25zdCB3aW5kb3dTaG93UHJvbWlz
ZSA9IHdpbmRvd1JlcXVlc3Quc2hvdygpOwotICAgICAgICAgIGNvbnN0IGlmcmFtZVNob3dQcm9t
aXNlID0gaWZyYW1lUmVxdWVzdC5zaG93KCk7Ci0gICAgICAgICAgcmV0dXJuIFtwb3B1cFdpbmRv
dywKLSAgICAgICAgICAgICAgICAgIHBvcHVwUmVxdWVzdCwKLSAgICAgICAgICAgICAgICAgIHBv
cHVwU2hvd1Byb21pc2UsCi0gICAgICAgICAgICAgICAgICB3aW5kb3dTaG93UHJvbWlzZSwKLSAg
ICAgICAgICAgICAgICAgIGlmcmFtZVNob3dQcm9taXNlXTsKKyAgICAgIC8vIFdlIG5hdmlnYXRl
IGF3YXksIGNhdXNpbmcgdGhlIHBheW1lbnQgc2hlZXQgdG8gY2xvc2UKKyAgICAgIC8vIGFuZCB0
aGUgcmVxdWVzdCBpcyBzaG93aW5nIGJvb2xlYW4gdG8gYmVjb21lIGZhbHNlLgorICAgICAgYXdh
aXQgbmV3IFByb21pc2UoKHJlc29sdmUpID0+IHsKKyAgICAgICAgaWZyYW1lLm9ubG9hZCA9IHJl
c29sdmU7CisgICAgICAgIGlmcmFtZS5zcmMgPSAiYmxhbmsuaHRtbD90ZXN0PTEyMyI7CiAgICAg
ICB9KTsKIAotICAgICAgLy8gd2luZG93U2hvd1Byb21pc2UgYW5kIGlmcmFtZVJlcXVlc3Qgd2ls
bCBib3RoIHJlamVjdAotICAgICAgYXdhaXQgcHJvbWlzZV9yZWplY3RzX2RvbSgKLSAgICAgICAg
dCwKLSAgICAgICAgIkFib3J0RXJyb3IiLAotICAgICAgICB3aW5kb3dTaG93UHJvbWlzZSwKLSAg
ICAgICAgIkV4cGVjdGVkIHdpbmRvd1Nob3dQcm9taXNlIHRvIHJlamVjdCwgdGhlIHBvcHVwIGlz
IHNob3dpbmcgYSBwYXltZW50IHJlcXVlc3QuIiwKLSAgICAgICk7Ci0KLSAgICAgIGF3YWl0IHBy
b21pc2VfcmVqZWN0c19kb20oCi0gICAgICAgIHQsCi0gICAgICAgICJBYm9ydEVycm9yIiwKLSAg
ICAgICAgaWZyYW1lU2hvd1Byb21pc2UsCi0gICAgICAgICJFeHBlY3RlZCBpZnJhbWVTaG93UHJv
bWlzZSB0byByZWplY3QsIHRoZSBwb3B1cCBpcyBzaG93aW5nIGEgcGF5bWVudCByZXF1ZXN0LiIs
Ci0gICAgICApOwotCi0gICAgICBhd2FpdCBwb3B1cFJlcXVlc3QuYWJvcnQoKTsKLSAgICAgIGF3
YWl0IHByb21pc2VfcmVqZWN0c19kb20oCi0gICAgICAgIHQsCi0gICAgICAgICJBYm9ydEVycm9y
IiwKLSAgICAgICAgcG9wdXBTaG93UHJvbWlzZSwKLSAgICAgICAgIkV4cGVjdGVkIHBvcHVwU2hv
d1Byb21pc2UgdG8gYmUgYWJvcnRlZCBieSB0ZXN0LiIsCi0gICAgICApOwotICAgICAgcG9wdXBX
aW5kb3cuY2xvc2UoKTsKICAgICAgIGlmcmFtZS5yZW1vdmUoKTsKLSAgICB9LCAiR2l2ZW4gbXVs
dGlwbGUgbmVzdGVkIGJyb3dzaW5nIGNvbnRleHRzLCBhbmQgcG9wdXAgY2FsbHMgc2hvdygpIGZp
cnN0LCBvdGhlciBuZXN0ZWQgYnJvd3NpbmcgY29udGV4dHMgY2FuJ3Qgc2hvdyBhIHJlcXVlc3Qu
Iik7Ci0KLSAgICBwcm9taXNlX3Rlc3QoYXN5bmMgdCA9PiB7Ci0gICAgICBjb25zdCBpZnJhbWUg
PSBhd2FpdCBhdHRhY2hJZnJhbWUoKTsKLSAgICAgIGNvbnN0IGlmcmFtZVdpbmRvdyA9IGlmcmFt
ZS5jb250ZW50V2luZG93OwotCi0gICAgICAvLyBDcmVhdGUgcmVxdWVzdHMKLSAgICAgIGNvbnN0
IHdpbmRvd1JlcXVlc3QgPSBuZXcgd2luZG93LlBheW1lbnRSZXF1ZXN0KG1ldGhvZHMsIGRldGFp
bHMpOwotICAgICAgY29uc3QgaWZyYW1lUmVxdWVzdCA9IG5ldyBpZnJhbWVXaW5kb3cuUGF5bWVu
dFJlcXVlc3QobWV0aG9kcywgZGV0YWlscyk7Ci0KLSAgICAgIGNvbnN0IFtwb3B1cFdpbmRvdywg
cG9wdXBSZXF1ZXN0XSA9IGF3YWl0IHRlc3RfZHJpdmVyLmJsZXNzKAotICAgICAgICAib3BlbiBw
b3B1cCB0byB0ZXN0IG11bHRpcGxlIGNvbnRleHQgYW5kIGlmcmFtZSBjYWxscyBzaG93KCkgZmly
c3QiLAotICAgICAgICBhc3luYyAoKSA9PiB7Ci0gICAgICAgICAgY29uc3QgdyA9IGF3YWl0IGxv
YWRQb3B1cEluc2lkZVVzZXJHZXN0dXJlKCk7Ci0gICAgICAgICAgY29uc3QgciA9IG5ldyB3LlBh
eW1lbnRSZXF1ZXN0KG1ldGhvZHMsIGRldGFpbHMpOwotICAgICAgICAgIHJldHVybiBbdywgcl07
Ci0gICAgICAgIH0sCi0gICAgICApOwotCi0gICAgICAvLyBHZXQgdGhlIHNob3dQcm9taXNlIGZv
ciBlYWNoIGJyb3dzaW5nIGNvbnRleHQuIERvaW5nIHRoaXMgaW4gYSBzZXBhcmF0ZQotICAgICAg
Ly8gdGVzdF9kcml2ZXIuYmxlc3MoKSBpcyBpbXBvcnRhbnQgYmVjYXVzZSB0aGUgdXNlciBnZXN0
dXJlIGJyaW5ncwotICAgICAgLy8gfHdpbmRvd3wgdG8gdGhlIGZvcmVncm91bmQsIHNvIHRoYXQg
dGhlIHBheW1lbnQgc2hlZXQgY2FuIHNob3cuCi0gICAgICBjb25zdCBbCi0gICAgICAgIGlmcmFt
ZVNob3dQcm9taXNlLAotICAgICAgICBwb3B1cFNob3dQcm9taXNlLAotICAgICAgICB3aW5kb3dT
aG93UHJvbWlzZSwKLSAgICAgIF0gPSBhd2FpdCB0ZXN0X2RyaXZlci5ibGVzcygKLSAgICAgICAg
InRlc3QgbXVsdGlwbGUgYnJvd3NpbmcgY29udGV4dCBhbmQgaWZyYW1lIGNhbGxzIHNob3coKSBm
aXJzdCIsCi0gICAgICAgIGFzeW5jICgpID0+IHsKLSAgICAgICAgICByZXR1cm4gWwotICAgICAg
ICAgICAgaWZyYW1lUmVxdWVzdC5zaG93KCksCi0gICAgICAgICAgICBwb3B1cFJlcXVlc3Quc2hv
dygpLAotICAgICAgICAgICAgd2luZG93UmVxdWVzdC5zaG93KCksCi0gICAgICAgICAgXTsKLSAg
ICAgICAgfSwKLSAgICAgICk7Ci0KLSAgICAgIC8vIHdpbmRvd1Nob3dQcm9taXNlIGFuZCBpZnJh
bWVSZXF1ZXN0IHdpbGwgYm90aCByZWplY3QKLSAgICAgIGF3YWl0IHByb21pc2VfcmVqZWN0c19k
b20oCi0gICAgICAgIHQsCi0gICAgICAgICJBYm9ydEVycm9yIiwKLSAgICAgICAgd2luZG93U2hv
d1Byb21pc2UsCi0gICAgICAgICJFeHBlY3RlZCB3aW5kb3dTaG93UHJvbWlzZSB0byByZWplY3Qs
IHRoZSBwb3B1cCBpcyBzaG93aW5nIGEgcGF5bWVudCByZXF1ZXN0LiIsCi0gICAgICApOwogCisg
ICAgICAvLyBOb3cgd2Ugc2hvdWxkIGJlIG9rIHRvIHNwaW4gdXAgYSBuZXcgcGF5bWVudCByZXF1
ZXN0CisgICAgICBjb25zdCByZXF1ZXN0ID0gbmV3IHdpbmRvdy5QYXltZW50UmVxdWVzdChtZXRo
b2RzLCBkZXRhaWxzKTsKKyAgICAgIGNvbnN0IFtzaG93UHJvbWlzZV0gPSBhd2FpdCBnZXRTaG93
UHJvbWlzZUZyb21Db250ZXh0KHJlcXVlc3QpOworICAgICAgYXdhaXQgcmVxdWVzdC5hYm9ydCgp
OwogICAgICAgYXdhaXQgcHJvbWlzZV9yZWplY3RzX2RvbSgKICAgICAgICAgdCwKICAgICAgICAg
IkFib3J0RXJyb3IiLAotICAgICAgICBwb3B1cFNob3dQcm9taXNlLAotICAgICAgICAiRXhwZWN0
ZWQgcG9wdXBTaG93UHJvbWlzZSB0byByZWplY3QsIHRoZSBwb3B1cCBpcyBzaG93aW5nIGEgcGF5
bWVudCByZXF1ZXN0LiIsCi0gICAgICApOwotCi0gICAgICBhd2FpdCBpZnJhbWVSZXF1ZXN0LmFi
b3J0KCk7Ci0gICAgICBhd2FpdCBwcm9taXNlX3JlamVjdHNfZG9tKAotICAgICAgICB0LAotICAg
ICAgICAiQWJvcnRFcnJvciIsCi0gICAgICAgIGlmcmFtZVNob3dQcm9taXNlLAotICAgICAgICAi
RXhwZWN0ZWQgaWZyYW1lU2hvd1Byb21pc2UgdG8gYmUgYWJvcnRlZCBieSB0ZXN0LiIKLSAgICAg
ICk7Ci0gICAgICBwb3B1cFdpbmRvdy5jbG9zZSgpOwotICAgICAgaWZyYW1lLnJlbW92ZSgpOwot
ICAgIH0sICJHaXZlbiBtdWx0aXBsZSBuZXN0ZWQgYnJvd3NpbmcgY29udGV4dHMsIGFuZCBhbiBp
ZnJhbWUgY2FsbHMgc2hvdygpIGZpcnN0LCBvdGhlciBuZXN0ZWQgYnJvd3NpbmcgY29udGV4dHMg
Y2FuJ3Qgc2hvdyBhIHJlcXVlc3QuIik7Ci0KLSAgICBwcm9taXNlX3Rlc3QoYXN5bmMgdCA9PiB7
Ci0gICAgICBjb25zdCBpZnJhbWUgPSBhd2FpdCBhdHRhY2hJZnJhbWUoKTsKLSAgICAgIGNvbnN0
IGlmcmFtZVdpbmRvdyA9IGlmcmFtZS5jb250ZW50V2luZG93OwotICAgICAgY29uc3QgaWZyYW1l
UmVxdWVzdCA9IG5ldyBpZnJhbWVXaW5kb3cuUGF5bWVudFJlcXVlc3QobWV0aG9kcywgZGV0YWls
cyk7Ci0gICAgICBjb25zdCBpZnJhbWVTaG93UHJvbWlzZSA9IHRlc3RfZHJpdmVyLmJsZXNzKAot
ICAgICAgICAidGVzdCBuYXZpZ2F0aW5nIGlmcmFtZSBhZnRlciBzaG93KCkiLAotICAgICAgICAo
KSA9PiBpZnJhbWVSZXF1ZXN0LnNob3coKSwKLSAgICAgICk7Ci0KLSAgICAgIC8vIFdlIG5hdmln
YXRlIGF3YXksIGNhdXNpbmcgdGhlIHBheW1lbnQgc2hlZXQgdG8gY2xvc2UKLSAgICAgIC8vIGFu
ZCB0aGUgcmVxdWVzdCBpcyBzaG93aW5nIGJvb2xlYW4gdG8gYmVjb21lIGZhbHNlLgotICAgICAg
aWZyYW1lLnNyYyA9ICJibGFuay5odG1sP2FiYz0xMjMiOwotICAgICAgYXdhaXQgbmV3IFByb21p
c2UocmVzb2x2ZSA9PiAoaWZyYW1lLm9ubG9hZCA9IHJlc29sdmUpKTsKLSAgICAgIGF3YWl0IHBy
b21pc2VfcmVqZWN0c19kb20oCi0gICAgICAgIHQsCi0gICAgICAgICJBYm9ydEVycm9yIiwKLSAg
ICAgICAgaWZyYW1lU2hvd1Byb21pc2UsCi0gICAgICAgICJOYXZpZ2F0aW5nIGlmcmFtZSBhd2F5
IG11c3QgY2F1c2UgdGhlIGlmcmFtZVNob3dQcm9taXNlIHRvIHJlamVjdC4iLAorICAgICAgICBz
aG93UHJvbWlzZSwKKyAgICAgICAgIk5vcm1hbCBhYm9ydC4iCiAgICAgICApOwotICAgICAgaWZy
YW1lLnJlbW92ZSgpOwotCi0gICAgICAvLyBOb3cgd2Ugc2hvdWxkIGJlIG9rIHRvIHNwaW4gdXAg
YSBuZXcgcGF5bWVudCByZXF1ZXN0Ci0gICAgICBjb25zdCByZXF1ZXN0ID0gbmV3IHdpbmRvdy5Q
YXltZW50UmVxdWVzdChtZXRob2RzLCBkZXRhaWxzKTsKLSAgICAgIGNvbnN0IFtzaG93UHJvbWlz
ZV0gPSBhd2FpdCB0ZXN0X2RyaXZlci5ibGVzcygKLSAgICAgICAgICAic3RhcnQgYSBuZXcgcGF5
bWVudCByZXF1ZXN0IiwKLSAgICAgICAgICAoKSA9PiB7Ci0gICAgICAgICAgICByZXR1cm4gW3Jl
cXVlc3Quc2hvdygpXTsKLSAgICAgICAgICB9KTsKLQotICAgICAgLy8gSWYgYSBwYXltZW50IHNo
ZWV0IGZhaWxzIHRvIHNob3csIGl0IHNob3VsZCByZWplY3QgaW1tZWRpYXRlbHkuIElmIGl0Ci0g
ICAgICAvLyBoYXNuJ3QgcmVqZWN0ZWQgaW4gMSBzZWNvbmQsIHRoZW4gdGhlIHRlc3QgaGFzIHBh
c3NlZC4KLSAgICAgIHQuc3RlcF90aW1lb3V0KGFzeW5jICgpID0+IHsKLSAgICAgICAgLy8gV2Un
cmUgZG9uZS4gQ2xlYW4gdXAuCi0gICAgICAgIGF3YWl0IHJlcXVlc3QuYWJvcnQoKTsKLSAgICAg
ICAgdC5kb25lKCk7Ci0gICAgICB9KTsKLQotICAgICAgLy8gSWYgdGhlIG5hdmlnYXRpb24gaW4g
aWZyYW1lIGZhaWxlZCB0byBjbG9zZSB0aGUgb3JpZ2luYWwgcGF5bWVudCBzaGVldAotICAgICAg
Ly8gdGhlcmUsIHxzaG93UHJvbWlzZXwgc2hvdWxkIHJlamVjdCBpbW1lZGlhdGVseSBhbmQgdGhp
cyBpbmRpY2F0ZXMgYQotICAgICAgLy8gZmFpbHVyZSBvZiB0aGlzIHRlc3QuCi0gICAgICBhd2Fp
dCBzaG93UHJvbWlzZS50aGVuKCgpID0+IHsKLSAgICAgICAgYXNzZXJ0X3RydWUoZmFsc2UsCi0g
ICAgICAgICAgIlNlY29uZCBwYXltZW50IHNoZWV0IHNob3VsZCBiZSBwZW5kaW5nIGJ1dCBpcyBy
ZXNvbHZlZC4iKTsKLSAgICAgIH0pCi0gICAgICAuY2F0Y2goZSA9PiB7Ci0gICAgICAgIGFzc2Vy
dF90cnVlKGZhbHNlLAotICAgICAgICAgICJTZWNvbmQgcGF5bWVudCBzaGVldCBzaG91bGQgYmUg
cGVuZGluZyBidXQgaXMgcmVqZWN0ZWQuIiArIGUubWVzc2FnZSk7Ci0gICAgICB9KTsKICAgICB9
LCAiTmF2aWdhdGluZyBhbiBpZnJhbWUgYXMgYSBuZXN0ZWQgYnJvd3NpbmcgY29udGV4dCBzZXRz
ICdwYXltZW50IHJlcXVlc3QgaXMgc2hvd2luZyBib29sZWFuJyB0byBmYWxzZS4iKTsKLQotICAg
IHByb21pc2VfdGVzdChhc3luYyB0ID0+IHsKLSAgICAgIGNvbnN0IFtwb3B1cFdpbmRvdywgcG9w
dXBSZXF1ZXN0LCBwb3B1cFNob3dQcm9taXNlXSA9Ci0gICAgICAgIGF3YWl0IHRlc3RfZHJpdmVy
LmJsZXNzKAotICAgICAgICAgICJ0cmlnZ2VyIHBheW1lbnQgaW4gYSBwb3B1cCB3aW5kb3ciLAot
ICAgICAgICAgIGFzeW5jICgpID0+IHsKLSAgICAgICAgICAgIGNvbnN0IHBvcHVwV2luZG93ID0g
YXdhaXQgbG9hZFBvcHVwSW5zaWRlVXNlckdlc3R1cmUoKTsKLSAgICAgICAgICAgIGNvbnN0IHBv
cHVwUmVxdWVzdCA9IG5ldyBwb3B1cFdpbmRvdy5QYXltZW50UmVxdWVzdChtZXRob2RzLCBkZXRh
aWxzKTsKLSAgICAgICAgICAgIHJldHVybiBbcG9wdXBXaW5kb3csIHBvcHVwUmVxdWVzdCwgcG9w
dXBSZXF1ZXN0LnNob3coKV07Ci0gICAgICAgICAgfSk7Ci0KLSAgICAgIC8vIFdlIG5hdmlnYXRl
IGF3YXksIGNhdXNpbmcgdGhlIHBheW1lbnQgc2hlZXQgdG8gY2xvc2UKLSAgICAgIC8vIGFuZCB0
aGUgcmVxdWVzdCBpcyBzaG93aW5nIGJvb2xlYW4gdG8gYmVjb21lIGZhbHNlLgotICAgICAgcG9w
dXBXaW5kb3cubG9jYXRpb24gPSAiYmxhbmsuaHRtbD9hYmM9MTIzIjsKLSAgICAgIGF3YWl0IG5l
dyBQcm9taXNlKHJlc29sdmUgPT4gKHBvcHVwV2luZG93Lm9ubG9hZCA9IHJlc29sdmUpKTsKLQot
ICAgICAgLy8gRG9uJ3Qgd2FpdCBmb3IgfHBvcHVwU2hvd1Byb21pc2V8IHRvIHJlamVjdCBiZWNh
dXNlIGl0IG1heSBuZXZlciBkbwotICAgICAgLy8gKHNlZSBodHRwczovL2dpdGh1Yi5jb20vdzNj
L3BheW1lbnQtcmVxdWVzdC9pc3N1ZXMvODcyKS4gSW5zdGVhZCwgdHJ5Ci0gICAgICAvLyB0byBz
cGluIHVwIGEgbmV3IHBheW1lbnQgcmVxdWVzdCBhbmQgbWFrZSBzdXJlIGl0IHN1Y2NlZWRzLgot
ICAgICAgY29uc3QgcmVxdWVzdCA9IG5ldyB3aW5kb3cuUGF5bWVudFJlcXVlc3QobWV0aG9kcywg
ZGV0YWlscyk7Ci0gICAgICBjb25zdCBbc2hvd1Byb21pc2VdID0gYXdhaXQgdGVzdF9kcml2ZXIu
Ymxlc3MoCi0gICAgICAgICJ0cmlnZ2VyIHBheW1lbnQgaW4gbWFpbiB3aW5kb3ciLAotICAgICAg
ICAoKSA9PiB7Ci0gICAgICAgICAgcmV0dXJuIFtyZXF1ZXN0LnNob3coKV07Ci0gICAgICAgIH0p
OwotCi0gICAgICAvLyBJZiBhIHBheW1lbnQgc2hlZXQgZmFpbHMgdG8gc2hvdywgaXQgc2hvdWxk
IHJlamVjdCBpbW1lZGlhdGVseS4gSWYgaXQKLSAgICAgIC8vIGhhc24ndCByZWplY3RlZCBpbiAx
IHNlY29uZCwgdGhlbiB0aGUgdGVzdCBoYXMgcGFzc2VkLgotICAgICAgdC5zdGVwX3RpbWVvdXQo
YXN5bmMgKCkgPT4gewotICAgICAgICAvLyBXZSdyZSBkb25lLiBDbGVhbiB1cC4KLSAgICAgICAg
cG9wdXBXaW5kb3cuY2xvc2UoKTsKLSAgICAgICAgYXdhaXQgcmVxdWVzdC5hYm9ydCgpOwotICAg
ICAgICB0LmRvbmUoKTsKLSAgICAgIH0sIDEwMDApOwotCi0gICAgICAvLyBJZiB0aGUgbmF2aWdh
dGlvbiBpbiBwb3B1cCB3aW5kb3cgZmFpbGVkIHRvIGNsb3NlIHRoZSBvcmlnaW5hbCBwYXltZW50
Ci0gICAgICAvLyBzaGVldCB0aGVyZSwgfHNob3dQcm9taXNlfCBzaG91bGQgcmVqZWN0IGltbWVk
aWF0ZWx5IGFuZCB0aGlzIGluZGljYXRlcwotICAgICAgLy8gYSBmYWlsdXJlIG9mIHRoaXMgdGVz
dC4KLSAgICAgIGF3YWl0IHNob3dQcm9taXNlLnRoZW4oKCkgPT4gewotICAgICAgICBhc3NlcnRf
dHJ1ZShmYWxzZSwKLSAgICAgICAgICAiU2Vjb25kIHBheW1lbnQgc2hlZXQgc2hvdWxkIGJlIHBl
bmRpbmcgYnV0IGlzIHJlc29sdmVkLiIpOwotICAgICAgfSkKLSAgICAgIC5jYXRjaChlID0+IHsK
LSAgICAgICAgYXNzZXJ0X3RydWUoZmFsc2UsCi0gICAgICAgICAgIlNlY29uZCBwYXltZW50IHNo
ZWV0IHNob3VsZCBiZSBwZW5kaW5nIGJ1dCBpcyByZWplY3RlZC4iKTsKLSAgICAgIH0pOwotICAg
IH0sICJOYXZpZ2F0aW5nIGEgcG9wdXAgYXMgYSBuZXN0ZWQgYnJvd3NpbmcgY29udGV4dCBzZXRz
ICdwYXltZW50IHJlcXVlc3QgaXMgc2hvd2luZyBib29sZWFuJyB0byBmYWxzZS4iKTsKICAgPC9z
Y3JpcHQ+CiA8L2JvZHk+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL3BheW1lbnQtcmVxdWVzdC9wYXltZW50LXJlcXVlc3QtY2FubWFrZXBh
eW1lbnQtbWV0aG9kLmh0dHBzLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvcGF5bWVudC1yZXF1ZXN0L3BheW1lbnQtcmVxdWVzdC1jYW5t
YWtlcGF5bWVudC1tZXRob2QuaHR0cHMtZXhwZWN0ZWQudHh0CmluZGV4IGI2ODRkNzc4NjVhYWQ0
N2Y4NWYxMzI5YzM1MmE5Y2Q3MTA2M2RiOWYuLjU2NjE4MmYxYzNhODBkZmNmODhjZDEyNGIxZWVl
ZDllODhiMWJjYzcgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvcGF5bWVudC1yZXF1ZXN0L3BheW1lbnQtcmVxdWVzdC1jYW5tYWtlcGF5bWVu
dC1tZXRob2QuaHR0cHMtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvcGF5bWVudC1yZXF1ZXN0L3BheW1lbnQtcmVxdWVzdC1jYW5t
YWtlcGF5bWVudC1tZXRob2QuaHR0cHMtZXhwZWN0ZWQudHh0CkBAIC00LDYgKzQsNiBAQCBQQVNT
IElmIHBheW1lbnQgbWV0aG9kIGlkZW50aWZpZXIgYXJlIHN1cHBvcnRlZCwgcmVzb2x2ZSBwcm9t
aXNlIHdpdGggdHJ1ZS4KIFBBU1MgSWYgcmVxdWVzdC5bW3N0YXRlXV0gaXMgImNyZWF0ZWQiLCB0
aGVuIHJldHVybiBhIHByb21pc2UgdGhhdCByZXNvbHZlcyB0byB0cnVlIGZvciBrbm93biBtZXRo
b2QuCiBQQVNTIEFsbCBtZXRob2RzIGFyZSB1bnN1cHBvcnRlZAogUEFTUyBNaXggb2Ygc3VwcG9y
dGVkIGFuZCB1bnN1cHBvcnRlZCBtZXRob2RzLCBhdCBsZWFzdCBvbmUgbWV0aG9kIGlzIHN1cHBv
cnRlZC4KLUZBSUwgSWYgcmVxdWVzdC5bW3N0YXRlXV0gaXMgImludGVyYWN0aXZlIiwgdGhlbiBy
ZXR1cm4gYSBwcm9taXNlIHJlamVjdGVkIHdpdGggYW4gIkludmFsaWRTdGF0ZUVycm9yIiBET01F
eGNlcHRpb24uIGFzc2VydF91bnJlYWNoZWQ6IFNob3VsZCBoYXZlIHJlamVjdGVkOiB1bmRlZmlu
ZWQgUmVhY2hlZCB1bnJlYWNoYWJsZSBjb2RlCi1GQUlMIElmIHJlcXVlc3QuW1tzdGF0ZV1dIGlz
ICJjbG9zZWQiLCB0aGVuIHJldHVybiBhIHByb21pc2UgcmVqZWN0ZWQgd2l0aCBhbiAiSW52YWxp
ZFN0YXRlRXJyb3IiIERPTUV4Y2VwdGlvbi4gcHJvbWlzZV90ZXN0OiBVbmhhbmRsZWQgcmVqZWN0
aW9uIHdpdGggdmFsdWU6IG9iamVjdCAiSW52YWxpZFN0YXRlRXJyb3I6IFRoZSBvYmplY3QgaXMg
aW4gYW4gaW52YWxpZCBzdGF0ZS4iCitQQVNTIElmIHJlcXVlc3QuW1tzdGF0ZV1dIGlzICJpbnRl
cmFjdGl2ZSIsIHRoZW4gcmV0dXJuIGEgcHJvbWlzZSByZWplY3RlZCB3aXRoIGFuICJJbnZhbGlk
U3RhdGVFcnJvciIgRE9NRXhjZXB0aW9uLgorUEFTUyBJZiByZXF1ZXN0Lltbc3RhdGVdXSBpcyAi
Y2xvc2VkIiwgdGhlbiByZXR1cm4gYSBwcm9taXNlIHJlamVjdGVkIHdpdGggYW4gIkludmFsaWRT
dGF0ZUVycm9yIiBET01FeGNlcHRpb24uCiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvcGF5bWVudC1yZXF1ZXN0L3BheW1lbnQtcmVxdWVz
dC1oYXNlbnJvbGxlZGluc3RydW1lbnQtbWV0aG9kLnRlbnRhdGl2ZS5odHRwcy1leHBlY3RlZC50
eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3BheW1lbnQt
cmVxdWVzdC9wYXltZW50LXJlcXVlc3QtaGFzZW5yb2xsZWRpbnN0cnVtZW50LW1ldGhvZC50ZW50
YXRpdmUuaHR0cHMtZXhwZWN0ZWQudHh0CmluZGV4IDgxYWY2YjE3MDY1YTNmZWI3MDczOTY1YTEz
OWE0ZTMyMjNmODUwNDguLjUzOTFhNWIzYjc4N2E3N2M1ZGQzMTdiZjYyOWE5Y2NkNTZmNmY5OTIg
MTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
cGF5bWVudC1yZXF1ZXN0L3BheW1lbnQtcmVxdWVzdC1oYXNlbnJvbGxlZGluc3RydW1lbnQtbWV0
aG9kLnRlbnRhdGl2ZS5odHRwcy1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9wYXltZW50LXJlcXVlc3QvcGF5bWVudC1yZXF1ZXN0
LWhhc2Vucm9sbGVkaW5zdHJ1bWVudC1tZXRob2QudGVudGF0aXZlLmh0dHBzLWV4cGVjdGVkLnR4
dApAQCAtMiw1ICsyLDUgQEAgSWYgeW91IGZpbmQgYSBidWdneSB0ZXN0LCBwbGVhc2UgZmlsZSBh
IGJ1ZyBhbmQgdGFnIG9uZSBvZiB0aGUgc3VnZ2VzdGVkIHJldmlld2UKIAogRkFJTCBoYXNFbnJv
bGxlZEluc3RydW1lbnQoKSByZXNvbHZlcyB0byBmYWxzZSBmb3IgdW5zdXBwb3J0ZWQgcGF5bWVu
dCBtZXRob2RzLiBwcm9taXNlX3Rlc3Q6IFVuaGFuZGxlZCByZWplY3Rpb24gd2l0aCB2YWx1ZTog
b2JqZWN0ICJUeXBlRXJyb3I6IHJlcXVlc3QuaGFzRW5yb2xsZWRJbnN0cnVtZW50IGlzIG5vdCBh
IGZ1bmN0aW9uLiAoSW4gJ3JlcXVlc3QuaGFzRW5yb2xsZWRJbnN0cnVtZW50KCknLCAncmVxdWVz
dC5oYXNFbnJvbGxlZEluc3RydW1lbnQnIGlzIHVuZGVmaW5lZCkiCiBGQUlMIElmIHJlcXVlc3Qu
W1tzdGF0ZV1dIGlzICJpbnRlcmFjdGl2ZSIsIHRoZW4gcmV0dXJuIGEgcHJvbWlzZSByZWplY3Rl
ZCB3aXRoIGFuICJJbnZhbGlkU3RhdGVFcnJvciIgRE9NRXhjZXB0aW9uLiBwcm9taXNlX3Rlc3Q6
IFVuaGFuZGxlZCByZWplY3Rpb24gd2l0aCB2YWx1ZTogb2JqZWN0ICJUeXBlRXJyb3I6IHJlcXVl
c3QuaGFzRW5yb2xsZWRJbnN0cnVtZW50IGlzIG5vdCBhIGZ1bmN0aW9uLiAoSW4gJ3JlcXVlc3Qu
aGFzRW5yb2xsZWRJbnN0cnVtZW50KCknLCAncmVxdWVzdC5oYXNFbnJvbGxlZEluc3RydW1lbnQn
IGlzIHVuZGVmaW5lZCkiCi1GQUlMIElmIHJlcXVlc3QuW1tzdGF0ZV1dIGlzICJjbG9zZWQiLCB0
aGVuIHJldHVybiBhIHByb21pc2UgcmVqZWN0ZWQgd2l0aCBhbiAiSW52YWxpZFN0YXRlRXJyb3Ii
IERPTUV4Y2VwdGlvbi4gcHJvbWlzZV90ZXN0OiBVbmhhbmRsZWQgcmVqZWN0aW9uIHdpdGggdmFs
dWU6IG9iamVjdCAiSW52YWxpZFN0YXRlRXJyb3I6IFRoZSBvYmplY3QgaXMgaW4gYW4gaW52YWxp
ZCBzdGF0ZS4iCitGQUlMIElmIHJlcXVlc3QuW1tzdGF0ZV1dIGlzICJjbG9zZWQiLCB0aGVuIHJl
dHVybiBhIHByb21pc2UgcmVqZWN0ZWQgd2l0aCBhbiAiSW52YWxpZFN0YXRlRXJyb3IiIERPTUV4
Y2VwdGlvbi4gcHJvbWlzZV9yZWplY3RzX2RvbTogZnVuY3Rpb24gImZ1bmN0aW9uICgpIHsgdGhy
b3cgZSB9IiB0aHJldyBvYmplY3QgIk5vdFN1cHBvcnRlZEVycm9yOiBUaGUgb3BlcmF0aW9uIGlz
IG5vdCBzdXBwb3J0ZWQuIiB0aGF0IGlzIG5vdCBhIERPTUV4Y2VwdGlvbiBBYm9ydEVycm9yOiBw
cm9wZXJ0eSAiY29kZSIgaXMgZXF1YWwgdG8gOSwgZXhwZWN0ZWQgMjAKIApkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9wYXltZW50LXJlcXVl
c3QvcGF5bWVudC1yZXF1ZXN0LXNob3ctbWV0aG9kLmh0dHBzLWV4cGVjdGVkLnR4dCBiL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvcGF5bWVudC1yZXF1ZXN0L3Bh
eW1lbnQtcmVxdWVzdC1zaG93LW1ldGhvZC5odHRwcy1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4u
YjgxMDQ2YjhlYzNiNThkYWNlYjNkYjEwYjIyMjQyMDc5NjcwZTY1ZQotLS0gL2Rldi9udWxsCisr
KyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvcGF5bWVudC1y
ZXF1ZXN0L3BheW1lbnQtcmVxdWVzdC1zaG93LW1ldGhvZC5odHRwcy1leHBlY3RlZC50eHQKQEAg
LTAsMCArMSw4IEBACitJZiB5b3UgZmluZCBhIGJ1Z2d5IHRlc3QsIHBsZWFzZSBmaWxlIGEgYnVn
IGFuZCB0YWcgb25lIG9mIHRoZSBzdWdnZXN0ZWQgcmV2aWV3ZXJzLgorCitQQVNTIENhbGxpbmcg
c2hvdygpIHdpdGhvdXQgYmVpbmcgdHJpZ2dlcmVkIGJ5IHVzZXIgaW50ZXJhY3Rpb24gdGhyb3dz
CitGQUlMIFRocm93cyBpZiB0aGUgcHJvbWlzZSBbW3N0YXRlXV0gaXMgbm90ICdjcmVhdGVkJy4g
cHJvbWlzZV9yZWplY3RzX2RvbTogZnVuY3Rpb24gImZ1bmN0aW9uICgpIHsgdGhyb3cgZSB9IiB0
aHJldyBvYmplY3QgIlNlY3VyaXR5RXJyb3I6IHNob3coKSBtdXN0IGJlIHRyaWdnZXJlZCBieSB1
c2VyIGFjdGl2YXRpb24uIiB0aGF0IGlzIG5vdCBhIERPTUV4Y2VwdGlvbiBJbnZhbGlkU3RhdGVF
cnJvcjogcHJvcGVydHkgImNvZGUiIGlzIGVxdWFsIHRvIDE4LCBleHBlY3RlZCAxMQorRkFJTCBJ
ZiB0aGUgdXNlciBhZ2VudCdzICJwYXltZW50IHJlcXVlc3QgaXMgc2hvd2luZyIgYm9vbGVhbiBp
cyB0cnVlLCB0aGVuIHJldHVybiBhIHByb21pc2UgcmVqZWN0ZWQgd2l0aCBhbiAiQWJvcnRFcnJv
ciIgRE9NRXhjZXB0aW9uLiBwcm9taXNlX3Rlc3Q6IFVuaGFuZGxlZCByZWplY3Rpb24gd2l0aCB2
YWx1ZTogb2JqZWN0ICJJbnZhbGlkU3RhdGVFcnJvcjogVGhlIG9iamVjdCBpcyBpbiBhbiBpbnZh
bGlkIHN0YXRlLiIKK0ZBSUwgSWYgcGF5bWVudCBtZXRob2QgY29uc3VsdGF0aW9uIHByb2R1Y2Vz
IG5vIHN1cHBvcnRlZCBtZXRob2Qgb2YgcGF5bWVudCwgdGhlbiByZXR1cm4gYSBwcm9taXNlIHJl
amVjdGVkIHdpdGggYSAiTm90U3VwcG9ydGVkRXJyb3IiIERPTUV4Y2VwdGlvbi4gcHJvbWlzZV9y
ZWplY3RzX2RvbTogZnVuY3Rpb24gImZ1bmN0aW9uICgpIHsgdGhyb3cgZSB9IiB0aHJldyBvYmpl
Y3QgIkFib3J0RXJyb3I6IFRoZSBvcGVyYXRpb24gd2FzIGFib3J0ZWQuIiB0aGF0IGlzIG5vdCBh
IERPTUV4Y2VwdGlvbiBOb3RTdXBwb3J0ZWRFcnJvcjogcHJvcGVydHkgImNvZGUiIGlzIGVxdWFs
IHRvIDIwLCBleHBlY3RlZCA5CitGQUlMIENhbGxpbmcgc2hvdygpIG11bHRpcGxlIHRpbWVzIGFs
d2F5cyByZXR1cm5zIGEgbmV3IHByb21pc2UuIHByb21pc2VfdGVzdDogVW5oYW5kbGVkIHJlamVj
dGlvbiB3aXRoIHZhbHVlOiBvYmplY3QgIkludmFsaWRTdGF0ZUVycm9yOiBUaGUgb2JqZWN0IGlz
IGluIGFuIGludmFsaWQgc3RhdGUuIgorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3BheW1lbnQtcmVxdWVzdC9wYXltZW50LXJlcXVlc3Qt
c2hvdy1tZXRob2QuaHR0cHMuaHRtbCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvcGF5bWVudC1yZXF1ZXN0L3BheW1lbnQtcmVxdWVzdC1zaG93LW1ldGhvZC5o
dHRwcy5odG1sCmluZGV4IDk3ODg3MjFhYTM1NDcyZDQ3OTlhNDQyMzkyMzA2NjA3NDc1YWZhZTAu
LjIyNzc5NzQ1NjM5MjY3Nzk3NDI3NzdlOWIxOTM1YWU2Yzg5NGI4OWMgMTAwNjQ0Ci0tLSBhL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvcGF5bWVudC1yZXF1ZXN0
L3BheW1lbnQtcmVxdWVzdC1zaG93LW1ldGhvZC5odHRwcy5odG1sCisrKyBiL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvcGF5bWVudC1yZXF1ZXN0L3BheW1lbnQt
cmVxdWVzdC1zaG93LW1ldGhvZC5odHRwcy5odG1sCkBAIC00NiwyMiArNDYsMjAgQEAgcHJvbWlz
ZV90ZXN0KGFzeW5jICh0KSA9PiB7CiAgICAgcmVxdWVzdC5hYm9ydCgpOwogICB9LCAyMDAwKTsK
IAotICBhd2FpdCBwcm9taXNlX3JlamVjdHNfZG9tKHQsICJOb3RBbGxvd2VkRXJyb3IiLCBhY2Nl
cHRQcm9taXNlKTsKKyAgYXdhaXQgcHJvbWlzZV9yZWplY3RzX2RvbSh0LCAiU2VjdXJpdHlFcnJv
ciIsIGFjY2VwdFByb21pc2UpOwogfSwgYENhbGxpbmcgc2hvdygpIHdpdGhvdXQgYmVpbmcgdHJp
Z2dlcmVkIGJ5IHVzZXIgaW50ZXJhY3Rpb24gdGhyb3dzYCk7CiAKIHByb21pc2VfdGVzdChhc3lu
YyAodCkgPT4gewogICBjb25zdCByZXF1ZXN0ID0gbmV3IFBheW1lbnRSZXF1ZXN0KGRlZmF1bHRN
ZXRob2RzLCBkZWZhdWx0RGV0YWlscyk7Ci0gIGF3YWl0IHRlc3RfZHJpdmVyLmJsZXNzKAotICAg
ICJ0ZXN0OiB0aHJvd3MgaWYgdGhlIHByb21pc2UgW1tzdGF0ZV1dIGlzIG5vdCAnY3JlYXRlZCci
Ci0gICk7CisgIGF3YWl0IHByb21pc2VfcmVqZWN0c19kb20odCwgIlNlY3VyaXR5RXJyb3IiLCBy
ZXF1ZXN0LnNob3coKSk7CisKKyAgYXdhaXQgdGVzdF9kcml2ZXIuYmxlc3MoKTsKICAgY29uc3Qg
YWNjZXB0UHJvbWlzZSA9IHJlcXVlc3Quc2hvdygpOyAvLyBTZXRzIHN0YXRlIHRvICJpbnRlcmFj
dGl2ZSIKLSAgLy8gTm8gdXNlciBhY3RpdmF0aW9uLi4uCi0gIGF3YWl0IHByb21pc2VfcmVqZWN0
c19kb20odCwgIk5vdEFsbG93ZWRFcnJvciIsIHJlcXVlc3Quc2hvdygpKTsKIAotICAvLyBHZXQg
dXNlciBhY3RpdmF0aW9uCi0gIGF3YWl0IHRlc3RfZHJpdmVyLmJsZXNzKAotICAgICJ0ZXN0OiB0
aHJvd3MgaWYgdGhlIHByb21pc2UgW1tzdGF0ZV1dIGlzIG5vdCAnY3JlYXRlZCciCi0gICk7Cisg
IGF3YWl0IHByb21pc2VfcmVqZWN0c19kb20odCwgIkludmFsaWRTdGF0ZUVycm9yIiwgcmVxdWVz
dC5zaG93KCkpOworCisgIC8vIFdpdGggdXNlciBhY3RpdmF0aW9uLCBidXQgYWxyZWFkeSBzaG93
aW5nIHRoZSBzaGVldC4uLgorICBhd2FpdCB0ZXN0X2RyaXZlci5ibGVzcygpOwogICBhd2FpdCBw
cm9taXNlX3JlamVjdHNfZG9tKHQsICJJbnZhbGlkU3RhdGVFcnJvciIsIHJlcXVlc3Quc2hvdygp
KTsKIAogICBhd2FpdCByZXF1ZXN0LmFib3J0KCk7CkBAIC03MCwxNiArNjgsMTUgQEAgcHJvbWlz
ZV90ZXN0KGFzeW5jICh0KSA9PiB7CiAKIHByb21pc2VfdGVzdChhc3luYyAodCkgPT4gewogICBj
b25zdCByZXF1ZXN0MSA9IG5ldyBQYXltZW50UmVxdWVzdChkZWZhdWx0TWV0aG9kcywgZGVmYXVs
dERldGFpbHMpOwotICBjb25zdCByZXF1ZXN0MiA9IG5ldyBQYXltZW50UmVxdWVzdChkZWZhdWx0
TWV0aG9kcywgZGVmYXVsdERldGFpbHMpOwotCi0gIGF3YWl0IHRlc3RfZHJpdmVyLmJsZXNzKCJw
YXltZW50IHJlcXVlc3QiKTsKKyAgYXdhaXQgdGVzdF9kcml2ZXIuYmxlc3MoKTsKICAgY29uc3Qg
YWNjZXB0UHJvbWlzZTEgPSByZXF1ZXN0MS5zaG93KCk7CiAKICAgLy8gVXNlciBhY3RpdmF0aW9u
IGNvbnN1bWVkLCBzby4uLgotICBhd2FpdCBwcm9taXNlX3JlamVjdHNfZG9tKHQsICJOb3RBbGxv
d2VkRXJyb3IiLCByZXF1ZXN0Mi5zaG93KCkpOworICBjb25zdCByZXF1ZXN0MiA9IG5ldyBQYXlt
ZW50UmVxdWVzdChkZWZhdWx0TWV0aG9kcywgZGVmYXVsdERldGFpbHMpOworICBhd2FpdCBwcm9t
aXNlX3JlamVjdHNfZG9tKHQsICJTZWN1cml0eUVycm9yIiwgcmVxdWVzdDIuc2hvdygpKTsKIAog
ICAvLyBQYXltZW50IHJlcXVlc3QgYWxyZWFkeSBzaG93aW5nLCBzby4uLgotICBhd2FpdCB0ZXN0
X2RyaXZlci5ibGVzcygicGF5bWVudCByZXF1ZXN0Iik7CisgIGF3YWl0IHRlc3RfZHJpdmVyLmJs
ZXNzKCk7CiAgIGF3YWl0IHByb21pc2VfcmVqZWN0c19kb20odCwgIkFib3J0RXJyb3IiLCByZXF1
ZXN0Mi5zaG93KCkpOwogCiAgIGF3YWl0IHJlcXVlc3QxLmFib3J0KCk7CkBAIC05MSwyNyArODgs
MjcgQEAgcHJvbWlzZV90ZXN0KGFzeW5jICh0KSA9PiB7CiAgICAgW3sgc3VwcG9ydGVkTWV0aG9k
czogInRoaXMtaXMtbm90LXN1cHBvcnRlZCIgfV0sCiAgICAgZGVmYXVsdERldGFpbHMKICAgKTsK
LSAgYXdhaXQgdGVzdF9kcml2ZXIuYmxlc3MoYHRlc3Q6IHJlamVjdCBwcm9taXNlIHdpdGggIk5v
dFN1cHBvcnRlZEVycm9yImApOworICBhd2FpdCB0ZXN0X2RyaXZlci5ibGVzcygpOwogICBjb25z
dCBhY2NlcHRQcm9taXNlID0gcmVxdWVzdC5zaG93KCk7CiAgIGF3YWl0IHByb21pc2VfcmVqZWN0
c19kb20odCwgIk5vdFN1cHBvcnRlZEVycm9yIiwgYWNjZXB0UHJvbWlzZSk7CiB9LCBgSWYgcGF5
bWVudCBtZXRob2QgY29uc3VsdGF0aW9uIHByb2R1Y2VzIG5vIHN1cHBvcnRlZCBtZXRob2Qgb2Yg
cGF5bWVudCwgdGhlbiByZXR1cm4gYSBwcm9taXNlIHJlamVjdGVkIHdpdGggYSAiTm90U3VwcG9y
dGVkRXJyb3IiIERPTUV4Y2VwdGlvbi5gKTsKIAogcHJvbWlzZV90ZXN0KGFzeW5jICh0KSA9PiB7
CiAgIGNvbnN0IHJlcXVlc3QgPSBuZXcgUGF5bWVudFJlcXVlc3QoZGVmYXVsdE1ldGhvZHMsIGRl
ZmF1bHREZXRhaWxzKTsKLSAgYXdhaXQgdGVzdF9kcml2ZXIuYmxlc3MoImNhbGwgc2hvdygpIik7
CisgIGF3YWl0IHRlc3RfZHJpdmVyLmJsZXNzKCk7CiAgIGNvbnN0IHAxID0gcmVxdWVzdC5zaG93
KCk7Ci0gIGF3YWl0IHRlc3RfZHJpdmVyLmJsZXNzKCJjYWxsIHNob3coKSIpOworICBhd2FpdCB0
ZXN0X2RyaXZlci5ibGVzcygpOwogICBjb25zdCBwMiA9IHJlcXVlc3Quc2hvdygpOwotICBhd2Fp
dCB0ZXN0X2RyaXZlci5ibGVzcygiY2FsbCBzaG93KCkiKTsKKyAgYXdhaXQgdGVzdF9kcml2ZXIu
Ymxlc3MoKTsKICAgY29uc3QgcDMgPSByZXF1ZXN0LnNob3coKTsKKyAgYXdhaXQgcmVxdWVzdC5h
Ym9ydCgpOworCiAgIGNvbnN0IHByb21pc2VzID0gbmV3IFNldChbcDEsIHAyLCBwM10pOwogICBh
c3NlcnRfZXF1YWxzKHByb21pc2VzLnNpemUsIDMsICJNdXN0IGhhdmUgdGhyZWUgdW5pcXVlIG9i
amVjdHMiKTsKIAorICBhd2FpdCBwcm9taXNlX3JlamVjdHNfZG9tKHQsICJBYm9ydEVycm9yIiwg
cDEpOwogICBhd2FpdCBwcm9taXNlX3JlamVjdHNfZG9tKHQsICJJbnZhbGlkU3RhdGVFcnJvciIs
IHAyKTsKICAgYXdhaXQgcHJvbWlzZV9yZWplY3RzX2RvbSh0LCAiSW52YWxpZFN0YXRlRXJyb3Ii
LCBwMyk7Ci0KLSAgYXdhaXQgcmVxdWVzdC5hYm9ydCgpOwotICBhd2FpdCBwcm9taXNlX3JlamVj
dHNfZG9tKHQsICJBYm9ydEVycm9yIiwgcDEpOwogfSwgIkNhbGxpbmcgc2hvdygpIG11bHRpcGxl
IHRpbWVzIGFsd2F5cyByZXR1cm5zIGEgbmV3IHByb21pc2UuIik7CiA8L3NjcmlwdD4KIDxzbWFs
bD4KQEAgLTEyMCw1ICsxMTcsNiBAQCBwcm9taXNlX3Rlc3QoYXN5bmMgKHQpID0+IHsKICAgdGFn
IG9uZSBvZiB0aGUKICAgPGEKICAgICBocmVmPSJodHRwczovL2dpdGh1Yi5jb20vd2ViLXBsYXRm
b3JtLXRlc3RzL3dwdC9ibG9iL21hc3Rlci9wYXltZW50LXJlcXVlc3QvTUVUQS55bWwiCi0gICAg
PnN1Z2dlc3RlZCByZXZpZXdlcnM8L2E+LgorICAgID5zdWdnZXN0ZWQgcmV2aWV3ZXJzPC9hCisg
ID4uCiA8L3NtYWxsPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy9wYXltZW50LXJlcXVlc3QvcmVqZWN0c19pZl9ub3RfYWN0aXZlLmh0dHBz
Lmh0bWwgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3BheW1l
bnQtcmVxdWVzdC9yZWplY3RzX2lmX25vdF9hY3RpdmUuaHR0cHMuaHRtbAppbmRleCA4OWMzNDA3
ZTNkMGJjNWViYWZjM2M3YzBkMDAxNTA5OTEyNTFhMTMyLi44NGYyOTlkYjliZTFkYTRkODk0ZGQz
MmRiMjJjZTJmY2Q2NzNjYWZiIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL3BheW1lbnQtcmVxdWVzdC9yZWplY3RzX2lmX25vdF9hY3RpdmUu
aHR0cHMuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL3BheW1lbnQtcmVxdWVzdC9yZWplY3RzX2lmX25vdF9hY3RpdmUuaHR0cHMuaHRtbApAQCAt
MSw3ICsxLDcgQEAKIDwhRE9DVFlQRSBodG1sPgotPG1ldGEgY2hhcnNldD11dGYtOD4KKzxtZXRh
IGNoYXJzZXQ9InV0Zi04IiAvPgogPHRpdGxlPlBheW1lbnRSZXF1ZXN0IHNob3coKSByZWplY3Rz
IGlmIGRvYyBpcyBub3QgZnVsbHkgYWN0aXZlPC90aXRsZT4KLTxsaW5rIHJlbD0iaGVscCIgaHJl
Zj0iaHR0cHM6Ly93M2MuZ2l0aHViLmlvL3BheW1lbnQtcmVxdWVzdC8jc2hvdy1tZXRob2QiPgor
PGxpbmsgcmVsPSJoZWxwIiBocmVmPSJodHRwczovL3czYy5naXRodWIuaW8vcGF5bWVudC1yZXF1
ZXN0LyNzaG93LW1ldGhvZCIgLz4KIDxzY3JpcHQgc3JjPSIvcmVzb3VyY2VzL3Rlc3RoYXJuZXNz
LmpzIj48L3NjcmlwdD4KIDxzY3JpcHQgc3JjPSIvcmVzb3VyY2VzL3Rlc3RoYXJuZXNzcmVwb3J0
LmpzIj48L3NjcmlwdD4KIDxzY3JpcHQgc3JjPSIvcmVzb3VyY2VzL3Rlc3Rkcml2ZXIuanMiPjwv
c2NyaXB0PgpAQCAtMTYsNyArMTYsNyBAQCBjb25zdCBhcHBsZVBheSA9IE9iamVjdC5mcmVlemUo
ewogICAgIGNvdW50cnlDb2RlOiAiVVMiLAogICAgIG1lcmNoYW50Q2FwYWJpbGl0aWVzOiBbInN1
cHBvcnRzM0RTIl0sCiAgICAgc3VwcG9ydGVkTmV0d29ya3M6IFsidmlzYSJdLAotICB9CisgIH0s
CiB9KTsKIGNvbnN0IHZhbGlkTWV0aG9kID0gT2JqZWN0LmZyZWV6ZSh7CiAgIHN1cHBvcnRlZE1l
dGhvZHM6ICJiYXNpYy1jYXJkIiwKQEAgLTM0LDY0ICszNCw1NiBAQCBjb25zdCB2YWxpZERldGFp
bHMgPSBPYmplY3QuZnJlZXplKHsKICAgdG90YWw6IHZhbGlkVG90YWwsCiB9KTsKIAotZnVuY3Rp
b24gZ2V0TG9hZGVkUGF5bWVudFJlcXVlc3QoaWZyYW1lLCB1cmwpIHsKLSAgcmV0dXJuIG5ldyBQ
cm9taXNlKHJlc29sdmUgPT4gewotICAgIGlmcmFtZS5hZGRFdmVudExpc3RlbmVyKAotICAgICAg
ImxvYWQiLAotICAgICAgKCkgPT4gewotICAgICAgICBjb25zdCB7IFBheW1lbnRSZXF1ZXN0IH0g
PSBpZnJhbWUuY29udGVudFdpbmRvdzsKLSAgICAgICAgY29uc3QgcmVxdWVzdCA9IG5ldyBQYXlt
ZW50UmVxdWVzdCh2YWxpZE1ldGhvZHMsIHZhbGlkRGV0YWlscyk7Ci0gICAgICAgIHJlc29sdmUo
cmVxdWVzdCk7Ci0gICAgICB9LAotICAgICAgeyBvbmNlOiB0cnVlIH0KLSAgICApOworYXN5bmMg
ZnVuY3Rpb24gZ2V0TG9hZGVkUGF5bWVudFJlcXVlc3QoaWZyYW1lLCB1cmwpIHsKKyAgYXdhaXQg
bmV3IFByb21pc2UoKHJlc29sdmUpID0+IHsKKyAgICBpZnJhbWUuYWRkRXZlbnRMaXN0ZW5lcigi
bG9hZCIsIHJlc29sdmUsIHsgb25jZTogdHJ1ZSB9KTsKICAgICBpZnJhbWUuc3JjID0gdXJsOwog
ICB9KTsKKyAgY29uc3QgeyBQYXltZW50UmVxdWVzdCB9ID0gaWZyYW1lLmNvbnRlbnRXaW5kb3c7
CisgIGNvbnN0IHJlcXVlc3QgPSBuZXcgUGF5bWVudFJlcXVlc3QodmFsaWRNZXRob2RzLCB2YWxp
ZERldGFpbHMpOworICByZXR1cm4gcmVxdWVzdDsKIH0KIAotcHJvbWlzZV90ZXN0KGFzeW5jIHQg
PT4geworcHJvbWlzZV90ZXN0KGFzeW5jICh0KSA9PiB7CiAgIGNvbnN0IGlmcmFtZSA9IGRvY3Vt
ZW50LmNyZWF0ZUVsZW1lbnQoImlmcmFtZSIpOwotICBpZnJhbWUuYWxsb3cgPSAicGF5bWVudCI7
CiAgIGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQoaWZyYW1lKTsKICAgLy8gTWFrZSBhIHJlcXVl
c3QgaW4gdGhlIGlmcmFtZS4KICAgY29uc3QgcmVxdWVzdCA9IGF3YWl0IGdldExvYWRlZFBheW1l
bnRSZXF1ZXN0KAogICAgIGlmcmFtZSwKLSAgICAiL3BheW1lbnQtcmVxdWVzdC9yZXNvdXJjZXMv
cGFnZTEuaHRtbCIKKyAgICAicmVzb3VyY2VzL3BhZ2UxLmh0bWwiCiAgICk7Ci0gIGNvbnN0IFtz
aG93UHJvbWlzZV0gPSBhd2FpdCB0ZXN0X2RyaXZlci5ibGVzcygic2hvdyBwYXltZW50IHJlcXVl
c3QiLCAoKSA9PiB7Ci0gICAgcmV0dXJuIFtyZXF1ZXN0LnNob3coKV07Ci0gIH0pOwotICAvLyBO
YXZpZ2F0ZSB0aGUgaWZyYW1lIHRvIGEgbmV3IGxvY2F0aW9uLiBXYWl0IGZvciB0aGUgbG9hZCBl
dmVudCB0byBmaXJlLgotICBhd2FpdCBuZXcgUHJvbWlzZShyZXNvbHZlID0+IHsKLSAgICBpZnJh
bWUuYWRkRXZlbnRMaXN0ZW5lcigibG9hZCIsIHJlc29sdmUpOwotICAgIGlmcmFtZS5zcmMgPSAi
L3BheW1lbnQtcmVxdWVzdC9yZXNvdXJjZXMvcGFnZTIuaHRtbCI7Ci0gICAgLy8gQW4gaW1wbGVt
ZW50YXRpb24gbWF5IG9wdGlvbmFsbHkgcmVqZWN0IHxzaG93UHJvbWlzZXwuCi0gICAgc2hvd1By
b21pc2UuY2F0Y2goZSA9PiB7fSk7Ci0gIH0pOworICBhd2FpdCB0ZXN0X2RyaXZlci5ibGVzcygi
c2hvdyBwYXltZW50IHJlcXVlc3QiKTsKKyAgY29uc3Qgc2hvd1Byb21pc2UgPSByZXF1ZXN0LnNo
b3coKTsKKyAgY29uc3QgZmlyc3RDdG9yID0gaWZyYW1lLmNvbnRlbnRXaW5kb3cuRE9NRXhjZXB0
aW9uOwogCi0gIC8vIFRoZSBuYXZpZ2F0b24gc2hvdWxkIGhhdmUgZGlzbWlzc2VkIHRoZSBwcmV2
aW91cyBwYXltZW50IHJlcXVlc3Qgc28gaXQKLSAgLy8gc2hvdWxkIGJlIHBvc3NpYmxlIHRvIHNo
b3cgYW5vdGhlciBvbmUgbm93LgotICBjb25zdCByZXF1ZXN0MiA9IG5ldyBpZnJhbWUuY29udGVu
dFdpbmRvdy5QYXltZW50UmVxdWVzdCgKLSAgICB2YWxpZE1ldGhvZHMsIHZhbGlkRGV0YWlscyk7
Ci0gIGNvbnN0IFtzaG93UHJvbWlzZTJdID0gYXdhaXQgdGVzdF9kcml2ZXIuYmxlc3MoCi0gICAg
InNob3cgMm5kIHBheW1lbnQgcmVxdWVzdCIsICgpID0+IHsKLSAgICAgIHJldHVybiBbcmVxdWVz
dDIuc2hvdygpXTsKLSAgICB9KTsKKyAgLy8gTmF2aWdhdGUgdGhlIGlmcmFtZSB0byBhIG5ldyBs
b2NhdGlvbi4gV2FpdCBmb3IgdGhlIGxvYWQgZXZlbnQgdG8gZmlyZS4KKyAgY29uc3QgcmVxdWVz
dDIgPSBhd2FpdCBnZXRMb2FkZWRQYXltZW50UmVxdWVzdCgKKyAgICBpZnJhbWUsCisgICAgInJl
c291cmNlcy9wYWdlMi5odG1sIgorICApOwogCi0gIC8vIFN0b3AgdGhlIHRlc3QgaW4gMSBzZWNv
bmQgaWYgaXQgaGFzIG5vdCByZWplY3RlZCwgd2hpY2ggbWVhbnMgdGhhdCBhCi0gIC8vIHBheW1l
bnQgc2hlZXQgaXMgc3VjY2Vzc2Z1bGx5IHNob3duLgotICB0LnN0ZXBfdGltZW91dChhc3luYyAo
KSA9PiB7Ci0gICAgLy8gV2UgYXJlIGRvbmUsIHNvIGNsZWFuIHVwLgotICAgIGlmcmFtZS5yZW1v
dmUoKTsKLSAgICB0LmRvbmUoKTsKLSAgfSwgMTAwMCk7CisgIGF3YWl0IHByb21pc2VfcmVqZWN0
c19kb20oCisgICAgdCwKKyAgICAiQWJvcnRFcnJvciIsCisgICAgZmlyc3RDdG9yLAorICAgIHNo
b3dQcm9taXNlLAorICAgICJTaG93IHByb21pc2Ugc2hvdWxkIGFib3J0LiIKKyAgKTsKIAotICAv
LyBUaGlzIHNob3VsZCBuZXZlciBzZXR0bGUgYmVjYXVzZSB0aGUgcGF5bWVudCBzaGVldCBzaG91
bGQgYmUgcGVuZGluZy4KLSAgYXdhaXQgc2hvd1Byb21pc2UyLnRoZW4oKCkgPT4gewotICAgIGFz
c2VydF90cnVlKGZhbHNlLCAiU2Vjb25kIHBheW1lbnQgc2hvdWxkIGJlIHBlbmRpbmcgYnV0IGlz
IHJlc29sdmVkLiIpOwotICB9KQotICAuY2F0Y2goZSA9PiB7Ci0gICAgYXNzZXJ0X3RydWUoZmFs
c2UsICJTZWNvbmQgcGF5bWVudCBzaG91bGQgYmUgcGVuZGluZyBidXQgaXMgcmVqZWN0ZWQuIik7
Ci0gIH0pOworICAvLyBUaGUgbmF2aWdhdGlvbiBkaXNtaXNzZXMgdGhlIHByZXZpb3VzIHBheW1l
bnQgcmVxdWVzdCBzbyBpdAorICAvLyBub3cgcG9zc2libGUgdG8gc2hvdyBhbm90aGVyIG9uZS4K
KyAgYXdhaXQgdGVzdF9kcml2ZXIuYmxlc3MoInNob3cgMm5kIHBheW1lbnQgcmVxdWVzdCIpOwor
ICBjb25zdCBzaG93UHJvbWlzZTIgPSByZXF1ZXN0Mi5zaG93KCk7CisgIGNvbnN0IHNlY29uZEN0
b3IgPSBpZnJhbWUuY29udGVudFdpbmRvdy5ET01FeGNlcHRpb247CisgIC8vIG5vIGxvbmdlciBm
dWxseSBhY3RpdmUKKyAgaWZyYW1lLnJlbW92ZSgpOworICBhd2FpdCBwcm9taXNlX3JlamVjdHNf
ZG9tKAorICAgIHQsCisgICAgIkFib3J0RXJyb3IiLAorICAgIHNlY29uZEN0b3IsCisgICAgc2hv
d1Byb21pc2UyLAorICAgICJTaG93IHByb21pc2Ugc2hvdWxkIGFib3J0LiIKKyAgKTsKIH0sICJJ
ZiBhIHBheW1lbnQgcmVxdWVzdCBpcyBzaG93aW5nLCBidXQgaXRzIGRvY3VtZW50IGlzIG5hdmln
YXRlZCBhd2F5IChzbyBubyBsb25nZXIgZnVsbHkgYWN0aXZlKSwgdGhlIHBheW1lbnQgc2hlZXQg
aXMgZGlzbWlzc2VkLiIpOwogPC9zY3JpcHQ+Cis8L2JvZHk+CmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3BheW1lbnQtcmVxdWVzdC9zaG93
LW1ldGhvZC1vcHRpb25hbC1wcm9taXNlLXJlamVjdHMuaHR0cHMtZXhwZWN0ZWQudHh0IGIvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9wYXltZW50LXJlcXVlc3Qv
c2hvdy1tZXRob2Qtb3B0aW9uYWwtcHJvbWlzZS1yZWplY3RzLmh0dHBzLWV4cGVjdGVkLnR4dApp
bmRleCA4MGVkMmZlN2Y4NzdkMTNlM2IzODA3ZGM5Zjc3MGEyMjkxMmRjODgwLi5hZWU5NjM2YmEz
MDBjNDI5OGQ0YTBiZjQ2ZDM4MjNhMWUzNTJiNDc2IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3BheW1lbnQtcmVxdWVzdC9zaG93LW1ldGhv
ZC1vcHRpb25hbC1wcm9taXNlLXJlamVjdHMuaHR0cHMtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvcGF5bWVudC1yZXF1ZXN0L3No
b3ctbWV0aG9kLW9wdGlvbmFsLXByb21pc2UtcmVqZWN0cy5odHRwcy1leHBlY3RlZC50eHQKQEAg
LTEsMzAgKzEsMTIgQEAKIAotRkFJTCBSZWplY3Rpb24gb2YgZGV0YWlsc1Byb21pc2UgbXVzdCBh
Ym9ydCB0aGUgdXBkYXRlIHdpdGggYW4gJ0Fib3J0RXJyb3InIERPTUV4Y2VwdGlvbi4gcHJvbWlz
ZV9yZWplY3RzX2RvbTogYmFkRGV0YWlscyBtdXN0IGNhdXNlIGFjY2VwdFByb21pc2UgdG8gcmVq
ZWN0IHdpdGggZXhwZWN0ZWRFcnJvciBmdW5jdGlvbiAiZnVuY3Rpb24gKCkgeyB0aHJvdyBlIH0i
IHRocmV3IG9iamVjdCAiU2VjdXJpdHlFcnJvcjogc2hvdygpIG11c3QgYmUgdHJpZ2dlcmVkIGJ5
IHVzZXIgYWN0aXZhdGlvbi4iIHRoYXQgaXMgbm90IGEgRE9NRXhjZXB0aW9uIEFib3J0RXJyb3I6
IHByb3BlcnR5ICJjb2RlIiBpcyBlcXVhbCB0byAxOCwgZXhwZWN0ZWQgMjAKLUZBSUwgVG90YWwg
aW4gdGhlIHVwZGF0ZSBpcyBhIHN0cmluZywgc28gY29udmVydGluZyB0byBJREwgbXVzdCBhYm9y
dCB0aGUgdXBkYXRlIHdpdGggYSBUeXBlRXJyb3IuIHByb21pc2VfcmVqZWN0c19qczogYmFkRGV0
YWlscyBtdXN0IGNhdXNlIGFjY2VwdFByb21pc2UgdG8gcmVqZWN0IHdpdGggZXhwZWN0ZWRFcnJv
ciBmdW5jdGlvbiAiZnVuY3Rpb24gKCkgeyB0aHJvdyBlIH0iIHRocmV3IG9iamVjdCAiU2VjdXJp
dHlFcnJvcjogc2hvdygpIG11c3QgYmUgdHJpZ2dlcmVkIGJ5IHVzZXIgYWN0aXZhdGlvbi4iICgi
U2VjdXJpdHlFcnJvciIpIGV4cGVjdGVkIGluc3RhbmNlIG9mIGZ1bmN0aW9uICJmdW5jdGlvbiBU
eXBlRXJyb3IoKSB7Ci0gICAgW25hdGl2ZSBjb2RlXQotfSIgKCJUeXBlRXJyb3IiKQotRkFJTCBU
b3RhbCBpcyByZWN1cnNpdmUsIHNvIGNvbnZlcnRpbmcgdG8gSURMIG11c3QgYWJvcnQgdGhlIHVw
ZGF0ZSB3aXRoIGEgVHlwZUVycm9yLiBwcm9taXNlX3JlamVjdHNfanM6IGJhZERldGFpbHMgbXVz
dCBjYXVzZSBhY2NlcHRQcm9taXNlIHRvIHJlamVjdCB3aXRoIGV4cGVjdGVkRXJyb3IgZnVuY3Rp
b24gImZ1bmN0aW9uICgpIHsgdGhyb3cgZSB9IiB0aHJldyBvYmplY3QgIlNlY3VyaXR5RXJyb3I6
IHNob3coKSBtdXN0IGJlIHRyaWdnZXJlZCBieSB1c2VyIGFjdGl2YXRpb24uIiAoIlNlY3VyaXR5
RXJyb3IiKSBleHBlY3RlZCBpbnN0YW5jZSBvZiBmdW5jdGlvbiAiZnVuY3Rpb24gVHlwZUVycm9y
KCkgewotICAgIFtuYXRpdmUgY29kZV0KLX0iICgiVHlwZUVycm9yIikKLUZBSUwgVXBkYXRpbmcg
d2l0aCBhIG5lZ2F0aXZlIHRvdGFsIHJlc3VsdHMgaW4gYSBUeXBlRXJyb3IuIHByb21pc2VfcmVq
ZWN0c19qczogYmFkRGV0YWlscyBtdXN0IGNhdXNlIGFjY2VwdFByb21pc2UgdG8gcmVqZWN0IHdp
dGggZXhwZWN0ZWRFcnJvciBmdW5jdGlvbiAiZnVuY3Rpb24gKCkgeyB0aHJvdyBlIH0iIHRocmV3
IG9iamVjdCAiU2VjdXJpdHlFcnJvcjogc2hvdygpIG11c3QgYmUgdHJpZ2dlcmVkIGJ5IHVzZXIg
YWN0aXZhdGlvbi4iICgiU2VjdXJpdHlFcnJvciIpIGV4cGVjdGVkIGluc3RhbmNlIG9mIGZ1bmN0
aW9uICJmdW5jdGlvbiBUeXBlRXJyb3IoKSB7Ci0gICAgW25hdGl2ZSBjb2RlXQotfSIgKCJUeXBl
RXJyb3IiKQotRkFJTCBVcGRhdGluZyB3aXRoIGEgZGlzcGxheUl0ZW0gd2l0aCBhbiBpbnZhbGlk
IGN1cnJlbmN5IHJlc3VsdHMgaW4gUmFuZ2VFcnJvci4gcHJvbWlzZV9yZWplY3RzX2pzOiBiYWRE
ZXRhaWxzIG11c3QgY2F1c2UgYWNjZXB0UHJvbWlzZSB0byByZWplY3Qgd2l0aCBleHBlY3RlZEVy
cm9yIGZ1bmN0aW9uICJmdW5jdGlvbiAoKSB7IHRocm93IGUgfSIgdGhyZXcgb2JqZWN0ICJTZWN1
cml0eUVycm9yOiBzaG93KCkgbXVzdCBiZSB0cmlnZ2VyZWQgYnkgdXNlciBhY3RpdmF0aW9uLiIg
KCJTZWN1cml0eUVycm9yIikgZXhwZWN0ZWQgaW5zdGFuY2Ugb2YgZnVuY3Rpb24gImZ1bmN0aW9u
IFJhbmdlRXJyb3IoKSB7Ci0gICAgW25hdGl2ZSBjb2RlXQotfSIgKCJSYW5nZUVycm9yIikKLUZB
SUwgVXBkYXRpbmcgd2l0aCBkdXBsaWNhdGUgc2hpcHBpbmdPcHRpb25zIChzYW1lIElEcykgcmVz
dWx0cyBpbiBhIFR5cGVFcnJvci4gcHJvbWlzZV9yZWplY3RzX2pzOiBiYWREZXRhaWxzIG11c3Qg
Y2F1c2UgYWNjZXB0UHJvbWlzZSB0byByZWplY3Qgd2l0aCBleHBlY3RlZEVycm9yIGZ1bmN0aW9u
ICJmdW5jdGlvbiAoKSB7IHRocm93IGUgfSIgdGhyZXcgb2JqZWN0ICJTZWN1cml0eUVycm9yOiBz
aG93KCkgbXVzdCBiZSB0cmlnZ2VyZWQgYnkgdXNlciBhY3RpdmF0aW9uLiIgKCJTZWN1cml0eUVy
cm9yIikgZXhwZWN0ZWQgaW5zdGFuY2Ugb2YgZnVuY3Rpb24gImZ1bmN0aW9uIFR5cGVFcnJvcigp
IHsKLSAgICBbbmF0aXZlIGNvZGVdCi19IiAoIlR5cGVFcnJvciIpCi1GQUlMIFVwZGF0aW5nIHdp
dGggYSBzaGlwcGluZ09wdGlvbiB3aXRoIGFuIGludmFsaWQgY3VycmVuY3kgdmFsdWUgcmVzdWx0
cyBpbiBhIFJhbmdFcnJvci4gcHJvbWlzZV9yZWplY3RzX2pzOiBiYWREZXRhaWxzIG11c3QgY2F1
c2UgYWNjZXB0UHJvbWlzZSB0byByZWplY3Qgd2l0aCBleHBlY3RlZEVycm9yIGZ1bmN0aW9uICJm
dW5jdGlvbiAoKSB7IHRocm93IGUgfSIgdGhyZXcgb2JqZWN0ICJTZWN1cml0eUVycm9yOiBzaG93
KCkgbXVzdCBiZSB0cmlnZ2VyZWQgYnkgdXNlciBhY3RpdmF0aW9uLiIgKCJTZWN1cml0eUVycm9y
IikgZXhwZWN0ZWQgaW5zdGFuY2Ugb2YgZnVuY3Rpb24gImZ1bmN0aW9uIFJhbmdlRXJyb3IoKSB7
Ci0gICAgW25hdGl2ZSBjb2RlXQotfSIgKCJSYW5nZUVycm9yIikKLUZBSUwgTXVzdCB0aHJvdyBh
IFJhbmdlRXJyb3Igd2hlbiBhIG1vZGlmaWVyJ3MgdG90YWwgaXRlbSBoYXMgYW4gaW52YWxpZCBj
dXJyZW5jeS4gcHJvbWlzZV9yZWplY3RzX2pzOiBiYWREZXRhaWxzIG11c3QgY2F1c2UgYWNjZXB0
UHJvbWlzZSB0byByZWplY3Qgd2l0aCBleHBlY3RlZEVycm9yIGZ1bmN0aW9uICJmdW5jdGlvbiAo
KSB7IHRocm93IGUgfSIgdGhyZXcgb2JqZWN0ICJTZWN1cml0eUVycm9yOiBzaG93KCkgbXVzdCBi
ZSB0cmlnZ2VyZWQgYnkgdXNlciBhY3RpdmF0aW9uLiIgKCJTZWN1cml0eUVycm9yIikgZXhwZWN0
ZWQgaW5zdGFuY2Ugb2YgZnVuY3Rpb24gImZ1bmN0aW9uIFJhbmdlRXJyb3IoKSB7Ci0gICAgW25h
dGl2ZSBjb2RlXQotfSIgKCJSYW5nZUVycm9yIikKLUZBSUwgTXVzdCB0aHJvdyBhIFJhbmdlRXJy
b3Igd2hlbiBhIG1vZGlmaWVyIGRpc3BsYXkgaXRlbSBoYXMgYW4gaW52YWxpZCBjdXJyZW5jeS4g
cHJvbWlzZV9yZWplY3RzX2pzOiBiYWREZXRhaWxzIG11c3QgY2F1c2UgYWNjZXB0UHJvbWlzZSB0
byByZWplY3Qgd2l0aCBleHBlY3RlZEVycm9yIGZ1bmN0aW9uICJmdW5jdGlvbiAoKSB7IHRocm93
IGUgfSIgdGhyZXcgb2JqZWN0ICJTZWN1cml0eUVycm9yOiBzaG93KCkgbXVzdCBiZSB0cmlnZ2Vy
ZWQgYnkgdXNlciBhY3RpdmF0aW9uLiIgKCJTZWN1cml0eUVycm9yIikgZXhwZWN0ZWQgaW5zdGFu
Y2Ugb2YgZnVuY3Rpb24gImZ1bmN0aW9uIFJhbmdlRXJyb3IoKSB7Ci0gICAgW25hdGl2ZSBjb2Rl
XQotfSIgKCJSYW5nZUVycm9yIikKLUZBSUwgTXVzdCB0aHJvdyBhcyBNb2RpZmllciBoYXMgYSBy
ZWN1cnNpdmUgZGljdGlvbmFyeS4gcHJvbWlzZV9yZWplY3RzX2pzOiBiYWREZXRhaWxzIG11c3Qg
Y2F1c2UgYWNjZXB0UHJvbWlzZSB0byByZWplY3Qgd2l0aCBleHBlY3RlZEVycm9yIGZ1bmN0aW9u
ICJmdW5jdGlvbiAoKSB7IHRocm93IGUgfSIgdGhyZXcgb2JqZWN0ICJTZWN1cml0eUVycm9yOiBz
aG93KCkgbXVzdCBiZSB0cmlnZ2VyZWQgYnkgdXNlciBhY3RpdmF0aW9uLiIgKCJTZWN1cml0eUVy
cm9yIikgZXhwZWN0ZWQgaW5zdGFuY2Ugb2YgZnVuY3Rpb24gImZ1bmN0aW9uIFR5cGVFcnJvcigp
IHsKLSAgICBbbmF0aXZlIGNvZGVdCi19IiAoIlR5cGVFcnJvciIpCitQQVNTIFJlamVjdGlvbiBv
ZiBkZXRhaWxzUHJvbWlzZSBtdXN0IGFib3J0IHRoZSB1cGRhdGUgd2l0aCBhbiAnQWJvcnRFcnJv
cicgRE9NRXhjZXB0aW9uLgorUEFTUyBUb3RhbCBpbiB0aGUgdXBkYXRlIGlzIGEgc3RyaW5nLCBz
byBjb252ZXJ0aW5nIHRvIElETCBtdXN0IGFib3J0IHRoZSB1cGRhdGUgd2l0aCBhIFR5cGVFcnJv
ci4KK1BBU1MgVG90YWwgaXMgcmVjdXJzaXZlLCBzbyBjb252ZXJ0aW5nIHRvIElETCBtdXN0IGFi
b3J0IHRoZSB1cGRhdGUgd2l0aCBhIFR5cGVFcnJvci4KK1BBU1MgVXBkYXRpbmcgd2l0aCBhIG5l
Z2F0aXZlIHRvdGFsIHJlc3VsdHMgaW4gYSBUeXBlRXJyb3IuCitQQVNTIFVwZGF0aW5nIHdpdGgg
YSBkaXNwbGF5SXRlbSB3aXRoIGFuIGludmFsaWQgY3VycmVuY3kgcmVzdWx0cyBpbiBSYW5nZUVy
cm9yLgorUEFTUyBVcGRhdGluZyB3aXRoIGR1cGxpY2F0ZSBzaGlwcGluZ09wdGlvbnMgKHNhbWUg
SURzKSByZXN1bHRzIGluIGEgVHlwZUVycm9yLgorUEFTUyBVcGRhdGluZyB3aXRoIGEgc2hpcHBp
bmdPcHRpb24gd2l0aCBhbiBpbnZhbGlkIGN1cnJlbmN5IHZhbHVlIHJlc3VsdHMgaW4gYSBSYW5n
RXJyb3IuCitQQVNTIE11c3QgdGhyb3cgYSBSYW5nZUVycm9yIHdoZW4gYSBtb2RpZmllcidzIHRv
dGFsIGl0ZW0gaGFzIGFuIGludmFsaWQgY3VycmVuY3kuCitQQVNTIE11c3QgdGhyb3cgYSBSYW5n
ZUVycm9yIHdoZW4gYSBtb2RpZmllciBkaXNwbGF5IGl0ZW0gaGFzIGFuIGludmFsaWQgY3VycmVu
Y3kuCitQQVNTIE11c3QgdGhyb3cgYXMgTW9kaWZpZXIgaGFzIGEgcmVjdXJzaXZlIGRpY3Rpb25h
cnkuCiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL2lvcy13azIvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9wYXltZW50LXJlcXVlc3Qvc2hvdy1tZXRob2Qtb3B0aW9u
YWwtcHJvbWlzZS1yZWplY3RzLmh0dHBzLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL3BsYXRm
b3JtL2lvcy13azIvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9wYXltZW50LXJlcXVl
c3Qvc2hvdy1tZXRob2Qtb3B0aW9uYWwtcHJvbWlzZS1yZWplY3RzLmh0dHBzLWV4cGVjdGVkLnR4
dApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggODBlZDJmZTdmODc3ZDEzZTNiMzgwN2Rj
OWY3NzBhMjI5MTJkYzg4MC4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MAotLS0gYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9pb3Mtd2syL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvcGF5bWVudC1yZXF1ZXN0L3Nob3ctbWV0aG9kLW9wdGlvbmFsLXByb21pc2Ut
cmVqZWN0cy5odHRwcy1leHBlY3RlZC50eHQKKysrIC9kZXYvbnVsbApAQCAtMSwzMCArMCwwIEBA
Ci0KLUZBSUwgUmVqZWN0aW9uIG9mIGRldGFpbHNQcm9taXNlIG11c3QgYWJvcnQgdGhlIHVwZGF0
ZSB3aXRoIGFuICdBYm9ydEVycm9yJyBET01FeGNlcHRpb24uIHByb21pc2VfcmVqZWN0c19kb206
IGJhZERldGFpbHMgbXVzdCBjYXVzZSBhY2NlcHRQcm9taXNlIHRvIHJlamVjdCB3aXRoIGV4cGVj
dGVkRXJyb3IgZnVuY3Rpb24gImZ1bmN0aW9uICgpIHsgdGhyb3cgZSB9IiB0aHJldyBvYmplY3Qg
IlNlY3VyaXR5RXJyb3I6IHNob3coKSBtdXN0IGJlIHRyaWdnZXJlZCBieSB1c2VyIGFjdGl2YXRp
b24uIiB0aGF0IGlzIG5vdCBhIERPTUV4Y2VwdGlvbiBBYm9ydEVycm9yOiBwcm9wZXJ0eSAiY29k
ZSIgaXMgZXF1YWwgdG8gMTgsIGV4cGVjdGVkIDIwCi1GQUlMIFRvdGFsIGluIHRoZSB1cGRhdGUg
aXMgYSBzdHJpbmcsIHNvIGNvbnZlcnRpbmcgdG8gSURMIG11c3QgYWJvcnQgdGhlIHVwZGF0ZSB3
aXRoIGEgVHlwZUVycm9yLiBwcm9taXNlX3JlamVjdHNfanM6IGJhZERldGFpbHMgbXVzdCBjYXVz
ZSBhY2NlcHRQcm9taXNlIHRvIHJlamVjdCB3aXRoIGV4cGVjdGVkRXJyb3IgZnVuY3Rpb24gImZ1
bmN0aW9uICgpIHsgdGhyb3cgZSB9IiB0aHJldyBvYmplY3QgIlNlY3VyaXR5RXJyb3I6IHNob3co
KSBtdXN0IGJlIHRyaWdnZXJlZCBieSB1c2VyIGFjdGl2YXRpb24uIiAoIlNlY3VyaXR5RXJyb3Ii
KSBleHBlY3RlZCBpbnN0YW5jZSBvZiBmdW5jdGlvbiAiZnVuY3Rpb24gVHlwZUVycm9yKCkgewot
ICAgIFtuYXRpdmUgY29kZV0KLX0iICgiVHlwZUVycm9yIikKLUZBSUwgVG90YWwgaXMgcmVjdXJz
aXZlLCBzbyBjb252ZXJ0aW5nIHRvIElETCBtdXN0IGFib3J0IHRoZSB1cGRhdGUgd2l0aCBhIFR5
cGVFcnJvci4gcHJvbWlzZV9yZWplY3RzX2pzOiBiYWREZXRhaWxzIG11c3QgY2F1c2UgYWNjZXB0
UHJvbWlzZSB0byByZWplY3Qgd2l0aCBleHBlY3RlZEVycm9yIGZ1bmN0aW9uICJmdW5jdGlvbiAo
KSB7IHRocm93IGUgfSIgdGhyZXcgb2JqZWN0ICJTZWN1cml0eUVycm9yOiBzaG93KCkgbXVzdCBi
ZSB0cmlnZ2VyZWQgYnkgdXNlciBhY3RpdmF0aW9uLiIgKCJTZWN1cml0eUVycm9yIikgZXhwZWN0
ZWQgaW5zdGFuY2Ugb2YgZnVuY3Rpb24gImZ1bmN0aW9uIFR5cGVFcnJvcigpIHsKLSAgICBbbmF0
aXZlIGNvZGVdCi19IiAoIlR5cGVFcnJvciIpCi1GQUlMIFVwZGF0aW5nIHdpdGggYSBuZWdhdGl2
ZSB0b3RhbCByZXN1bHRzIGluIGEgVHlwZUVycm9yLiBwcm9taXNlX3JlamVjdHNfanM6IGJhZERl
dGFpbHMgbXVzdCBjYXVzZSBhY2NlcHRQcm9taXNlIHRvIHJlamVjdCB3aXRoIGV4cGVjdGVkRXJy
b3IgZnVuY3Rpb24gImZ1bmN0aW9uICgpIHsgdGhyb3cgZSB9IiB0aHJldyBvYmplY3QgIlNlY3Vy
aXR5RXJyb3I6IHNob3coKSBtdXN0IGJlIHRyaWdnZXJlZCBieSB1c2VyIGFjdGl2YXRpb24uIiAo
IlNlY3VyaXR5RXJyb3IiKSBleHBlY3RlZCBpbnN0YW5jZSBvZiBmdW5jdGlvbiAiZnVuY3Rpb24g
VHlwZUVycm9yKCkgewotICAgIFtuYXRpdmUgY29kZV0KLX0iICgiVHlwZUVycm9yIikKLUZBSUwg
VXBkYXRpbmcgd2l0aCBhIGRpc3BsYXlJdGVtIHdpdGggYW4gaW52YWxpZCBjdXJyZW5jeSByZXN1
bHRzIGluIFJhbmdlRXJyb3IuIHByb21pc2VfcmVqZWN0c19qczogYmFkRGV0YWlscyBtdXN0IGNh
dXNlIGFjY2VwdFByb21pc2UgdG8gcmVqZWN0IHdpdGggZXhwZWN0ZWRFcnJvciBmdW5jdGlvbiAi
ZnVuY3Rpb24gKCkgeyB0aHJvdyBlIH0iIHRocmV3IG9iamVjdCAiU2VjdXJpdHlFcnJvcjogc2hv
dygpIG11c3QgYmUgdHJpZ2dlcmVkIGJ5IHVzZXIgYWN0aXZhdGlvbi4iICgiU2VjdXJpdHlFcnJv
ciIpIGV4cGVjdGVkIGluc3RhbmNlIG9mIGZ1bmN0aW9uICJmdW5jdGlvbiBSYW5nZUVycm9yKCkg
ewotICAgIFtuYXRpdmUgY29kZV0KLX0iICgiUmFuZ2VFcnJvciIpCi1GQUlMIFVwZGF0aW5nIHdp
dGggZHVwbGljYXRlIHNoaXBwaW5nT3B0aW9ucyAoc2FtZSBJRHMpIHJlc3VsdHMgaW4gYSBUeXBl
RXJyb3IuIHByb21pc2VfcmVqZWN0c19qczogYmFkRGV0YWlscyBtdXN0IGNhdXNlIGFjY2VwdFBy
b21pc2UgdG8gcmVqZWN0IHdpdGggZXhwZWN0ZWRFcnJvciBmdW5jdGlvbiAiZnVuY3Rpb24gKCkg
eyB0aHJvdyBlIH0iIHRocmV3IG9iamVjdCAiU2VjdXJpdHlFcnJvcjogc2hvdygpIG11c3QgYmUg
dHJpZ2dlcmVkIGJ5IHVzZXIgYWN0aXZhdGlvbi4iICgiU2VjdXJpdHlFcnJvciIpIGV4cGVjdGVk
IGluc3RhbmNlIG9mIGZ1bmN0aW9uICJmdW5jdGlvbiBUeXBlRXJyb3IoKSB7Ci0gICAgW25hdGl2
ZSBjb2RlXQotfSIgKCJUeXBlRXJyb3IiKQotRkFJTCBVcGRhdGluZyB3aXRoIGEgc2hpcHBpbmdP
cHRpb24gd2l0aCBhbiBpbnZhbGlkIGN1cnJlbmN5IHZhbHVlIHJlc3VsdHMgaW4gYSBSYW5nRXJy
b3IuIHByb21pc2VfcmVqZWN0c19qczogYmFkRGV0YWlscyBtdXN0IGNhdXNlIGFjY2VwdFByb21p
c2UgdG8gcmVqZWN0IHdpdGggZXhwZWN0ZWRFcnJvciBmdW5jdGlvbiAiZnVuY3Rpb24gKCkgeyB0
aHJvdyBlIH0iIHRocmV3IG9iamVjdCAiU2VjdXJpdHlFcnJvcjogc2hvdygpIG11c3QgYmUgdHJp
Z2dlcmVkIGJ5IHVzZXIgYWN0aXZhdGlvbi4iICgiU2VjdXJpdHlFcnJvciIpIGV4cGVjdGVkIGlu
c3RhbmNlIG9mIGZ1bmN0aW9uICJmdW5jdGlvbiBSYW5nZUVycm9yKCkgewotICAgIFtuYXRpdmUg
Y29kZV0KLX0iICgiUmFuZ2VFcnJvciIpCi1GQUlMIE11c3QgdGhyb3cgYSBSYW5nZUVycm9yIHdo
ZW4gYSBtb2RpZmllcidzIHRvdGFsIGl0ZW0gaGFzIGFuIGludmFsaWQgY3VycmVuY3kuIHByb21p
c2VfcmVqZWN0c19qczogYmFkRGV0YWlscyBtdXN0IGNhdXNlIGFjY2VwdFByb21pc2UgdG8gcmVq
ZWN0IHdpdGggZXhwZWN0ZWRFcnJvciBmdW5jdGlvbiAiZnVuY3Rpb24gKCkgeyB0aHJvdyBlIH0i
IHRocmV3IG9iamVjdCAiU2VjdXJpdHlFcnJvcjogc2hvdygpIG11c3QgYmUgdHJpZ2dlcmVkIGJ5
IHVzZXIgYWN0aXZhdGlvbi4iICgiU2VjdXJpdHlFcnJvciIpIGV4cGVjdGVkIGluc3RhbmNlIG9m
IGZ1bmN0aW9uICJmdW5jdGlvbiBSYW5nZUVycm9yKCkgewotICAgIFtuYXRpdmUgY29kZV0KLX0i
ICgiUmFuZ2VFcnJvciIpCi1GQUlMIE11c3QgdGhyb3cgYSBSYW5nZUVycm9yIHdoZW4gYSBtb2Rp
ZmllciBkaXNwbGF5IGl0ZW0gaGFzIGFuIGludmFsaWQgY3VycmVuY3kuIHByb21pc2VfcmVqZWN0
c19qczogYmFkRGV0YWlscyBtdXN0IGNhdXNlIGFjY2VwdFByb21pc2UgdG8gcmVqZWN0IHdpdGgg
ZXhwZWN0ZWRFcnJvciBmdW5jdGlvbiAiZnVuY3Rpb24gKCkgeyB0aHJvdyBlIH0iIHRocmV3IG9i
amVjdCAiU2VjdXJpdHlFcnJvcjogc2hvdygpIG11c3QgYmUgdHJpZ2dlcmVkIGJ5IHVzZXIgYWN0
aXZhdGlvbi4iICgiU2VjdXJpdHlFcnJvciIpIGV4cGVjdGVkIGluc3RhbmNlIG9mIGZ1bmN0aW9u
ICJmdW5jdGlvbiBSYW5nZUVycm9yKCkgewotICAgIFtuYXRpdmUgY29kZV0KLX0iICgiUmFuZ2VF
cnJvciIpCi1GQUlMIE11c3QgdGhyb3cgYXMgTW9kaWZpZXIgaGFzIGEgcmVjdXJzaXZlIGRpY3Rp
b25hcnkuIHByb21pc2VfcmVqZWN0c19qczogYmFkRGV0YWlscyBtdXN0IGNhdXNlIGFjY2VwdFBy
b21pc2UgdG8gcmVqZWN0IHdpdGggZXhwZWN0ZWRFcnJvciBmdW5jdGlvbiAiZnVuY3Rpb24gKCkg
eyB0aHJvdyBlIH0iIHRocmV3IG9iamVjdCAiU2VjdXJpdHlFcnJvcjogc2hvdygpIG11c3QgYmUg
dHJpZ2dlcmVkIGJ5IHVzZXIgYWN0aXZhdGlvbi4iICgiU2VjdXJpdHlFcnJvciIpIGV4cGVjdGVk
IGluc3RhbmNlIG9mIGZ1bmN0aW9uICJmdW5jdGlvbiBUeXBlRXJyb3IoKSB7Ci0gICAgW25hdGl2
ZSBjb2RlXQotfSIgKCJUeXBlRXJyb3IiKQotCg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>436859</attachid>
            <date>2021-08-31 02:37:58 -0700</date>
            <delta_ts>2021-08-31 16:07:52 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-217365-20210831193756.patch</filename>
            <type>text/plain</type>
            <size>53301</size>
            <attacher name="Marcos Caceres">marcos</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjgxNjAyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNjUyOGFjN2M2NGJlYzQ0
NjMzMjZhNGIzYTYzYjlkNGQ2YzcwODk0OS4uZWEzZGI2YTRhYzZlMDhkMDI5MWM1NWM1Mzk1MzYw
YThmMjMxNzI3NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE1IEBACisyMDIxLTA4LTI1ICBNYXJj
b3MgQ2FjZXJlcyAgPG1hcmNvc0BtYXJjb3NjLmNvbT4KKworICAgICAgICBbUGF5bWVudCBSZXF1
ZXN0XSBDYWxsaW5nIFBheW1lbnRSZXF1ZXN0J3Mgc2hvdygpIHNob3VsZCBjb25zdW1lIHVzZXIg
YWN0aXZhdGlvbgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9MjE3MzY1CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgWW91ZW5uIEZhYmxldCBhbmQgRGV2aW4g
Um91c3NvLgorCisgICAgICAgIFRlc3RlZCBieSBleGlzdGluZyBXUFQgdGVzdHMuCisKKyAgICAg
ICAgKiBNb2R1bGVzL3BheW1lbnRyZXF1ZXN0L1BheW1lbnRSZXF1ZXN0LmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6OlBheW1lbnRSZXF1ZXN0OjpzaG93KToKKwogMjAyMS0wOC0yNSAgRXJpYyBDYXJs
c29uICA8ZXJpYy5jYXJsc29uQGFwcGxlLmNvbT4KIAogICAgICAgICBbR1BVUF0gUmVtb3RlQXVk
aW9TZXNzaW9uIGRvZXNuJ3QgaW1wbGVtZW50IGJlZ2luL2VuZEludGVycnVwdGlvbgpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9wYXltZW50cmVxdWVzdC9QYXltZW50UmVxdWVz
dC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3BheW1lbnRyZXF1ZXN0L1BheW1lbnRSZXF1
ZXN0LmNwcAppbmRleCBhNDFmYTA4NjQyNGI1NjgxMjY2NDU0NDM0NzlhZWFmOWM2OTczZjRmLi44
NDE0MjhhMjU2M2QxNGVlNmNlNGRjZDVhMmQwMjEwNzNmMGQ4NjJhIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL3BheW1lbnRyZXF1ZXN0L1BheW1lbnRSZXF1ZXN0LmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3BheW1lbnRyZXF1ZXN0L1BheW1lbnRSZXF1ZXN0LmNw
cApAQCAtMzYzLDcgKzM2Myw3IEBAIFBheW1lbnRSZXF1ZXN0Ojp+UGF5bWVudFJlcXVlc3QoKQog
ICAgIEFTU0VSVCghbV9hY3RpdmVQYXltZW50SGFuZGxlcik7CiB9CiAKLS8vIGh0dHBzOi8vd3d3
LnczLm9yZy9UUi9wYXltZW50LXJlcXVlc3QvI3Nob3coKS1tZXRob2QKKy8vIGh0dHBzOi8vd3d3
LnczLm9yZy9UUi9wYXltZW50LXJlcXVlc3QvI3Nob3ctbWV0aG9kCiB2b2lkIFBheW1lbnRSZXF1
ZXN0OjpzaG93KERvY3VtZW50JiBkb2N1bWVudCwgUmVmUHRyPERPTVByb21pc2U+JiYgZGV0YWls
c1Byb21pc2UsIFNob3dQcm9taXNlJiYgcHJvbWlzZSkKIHsKICAgICBpZiAoIWRvY3VtZW50LmZy
YW1lKCkpIHsKQEAgLTM3MSw3ICszNzEsOCBAQCB2b2lkIFBheW1lbnRSZXF1ZXN0OjpzaG93KERv
Y3VtZW50JiBkb2N1bWVudCwgUmVmUHRyPERPTVByb21pc2U+JiYgZGV0YWlsc1Byb21pcwogICAg
ICAgICByZXR1cm47CiAgICAgfQogCi0gICAgaWYgKCFVc2VyR2VzdHVyZUluZGljYXRvcjo6cHJv
Y2Vzc2luZ1VzZXJHZXN0dXJlKCkpIHsKKyAgICBhdXRvKiB3aW5kb3cgPSBkb2N1bWVudC5mcmFt
ZSgpLT53aW5kb3coKTsKKyAgICBpZiAoIXdpbmRvdyB8fCAhd2luZG93LT5jb25zdW1lVHJhbnNp
ZW50QWN0aXZhdGlvbigpKSB7CiAgICAgICAgIHByb21pc2UucmVqZWN0KEV4Y2VwdGlvbiB7IFNl
Y3VyaXR5RXJyb3IsICJzaG93KCkgbXVzdCBiZSB0cmlnZ2VyZWQgYnkgdXNlciBhY3RpdmF0aW9u
LiIgfSk7CiAgICAgICAgIHJldHVybjsKICAgICB9CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9D
aGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggNGYwOWQxOWQ3NjNkYmM1YWFm
YWE3NzdiNWI5Zjc2MWRlZjAyZmFiOS4uMTBhZTZmNTMxMDk0NTc5MzFmZDAzNTNhMTEwZDE2YmIz
YjYwZmNmNiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRl
c3RzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE0IEBACisyMDIxLTA4LTI1ICBNYXJjb3MgQ2FjZXJl
cyAgPG1hcmNvc0BtYXJjb3NjLmNvbT4KKworICAgICAgICBbUGF5bWVudCBSZXF1ZXN0XSBDYWxs
aW5nIFBheW1lbnRSZXF1ZXN0J3Mgc2hvdygpIHNob3VsZCBjb25zdW1lIHVzZXIgYWN0aXZhdGlv
bgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjE3MzY1
CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgWW91ZW5uIEZhYmxldCBhbmQgRGV2aW4gUm91c3NvLgor
CisgICAgICAgICogaHR0cC90ZXN0cy9wYXltZW50cmVxdWVzdC9wYXltZW50LWlzLXNob3dpbmcu
aHR0cHMuaHRtbDoKKyAgICAgICAgKiBodHRwL3Rlc3RzL3BheW1lbnRyZXF1ZXN0L3BheW1lbnQt
cmVxdWVzdC1zaG93LW1ldGhvZC5odHRwcy5odG1sOgorICAgICAgICAqIHBsYXRmb3JtL2lvcy13
azIvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9wYXltZW50LXJlcXVlc3Qvc2hvdy1t
ZXRob2Qtb3B0aW9uYWwtcHJvbWlzZS1yZWplY3RzLmh0dHBzLWV4cGVjdGVkLnR4dDogUmVtb3Zl
ZC4KKwogMjAyMS0wOC0yNSAgVHJ1aXR0IFNhdmVsbCAgPHRzYXZlbGxAYXBwbGUuY29tPgogCiAg
ICAgICAgIDI1IHdlYmtpdCBpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy8gbGF5
b3V0IHRlc3RzIGZhaWxpbmcgd2l0aCBibGFjayBiYXJzCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2MvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL0NoYW5n
ZUxvZwppbmRleCA4YTY2NTBmODgyODQ5OTgwMmE5ZDIwZWZlNjliNTQzMzdiNjQ0YjhmLi44Njdm
ZDU0MTE4Zjc4YjA1YTY5NjU4MzM3YmQ1MjA4MjJlY2Q0NjMxIDEwMDY0NAotLS0gYS9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2MvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyMCBAQAorMjAyMS0wOC0yNSAgTWFyY29zIENhY2VyZXMg
IDxtYXJjb3NAbWFyY29zYy5jb20+CisKKyAgICAgICAgW1BheW1lbnQgUmVxdWVzdF0gQ2FsbGlu
ZyBQYXltZW50UmVxdWVzdCdzIHNob3coKSBzaG91bGQgY29uc3VtZSB1c2VyIGFjdGl2YXRpb24K
KyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIxNzM2NQor
CisgICAgICAgIFJldmlld2VkIGJ5IFlvdWVubiBGYWJsZXQgYW5kIERldmluIFJvdXNzby4KKwor
ICAgICAgICBSZS1pbXBvcnQgcGF5bWVudC1yZXF1ZXN0IHRlc3RzIGZyb20gV1BUIGMwNDUzZWEx
NWJlNjNmYzY5N2JkYmMxNDFhYTY4MzdhMTAyMGIxMTQuCisKKyAgICAgICAgKiB3ZWItcGxhdGZv
cm0tdGVzdHMvcGF5bWVudC1yZXF1ZXN0L3BheW1lbnQtaXMtc2hvd2luZy5odHRwcy5odG1sOgor
ICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy9wYXltZW50LXJlcXVlc3QvcGF5bWVudC1yZXF1
ZXN0LWNhbm1ha2VwYXltZW50LW1ldGhvZC5odHRwcy1leHBlY3RlZC50eHQ6CisgICAgICAgICog
d2ViLXBsYXRmb3JtLXRlc3RzL3BheW1lbnQtcmVxdWVzdC9wYXltZW50LXJlcXVlc3QtaGFzZW5y
b2xsZWRpbnN0cnVtZW50LW1ldGhvZC50ZW50YXRpdmUuaHR0cHMtZXhwZWN0ZWQudHh0OgorICAg
ICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy9wYXltZW50LXJlcXVlc3QvcGF5bWVudC1yZXF1ZXN0
LXNob3ctbWV0aG9kLmh0dHBzLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogd2ViLXBs
YXRmb3JtLXRlc3RzL3BheW1lbnQtcmVxdWVzdC9wYXltZW50LXJlcXVlc3Qtc2hvdy1tZXRob2Qu
aHR0cHMuaHRtbDoKKyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvcGF5bWVudC1yZXF1ZXN0
L3JlamVjdHNfaWZfbm90X2FjdGl2ZS5odHRwcy5odG1sOgorICAgICAgICAqIHdlYi1wbGF0Zm9y
bS10ZXN0cy9wYXltZW50LXJlcXVlc3Qvc2hvdy1tZXRob2Qtb3B0aW9uYWwtcHJvbWlzZS1yZWpl
Y3RzLmh0dHBzLWV4cGVjdGVkLnR4dDoKKwogMjAyMS0wOC0yNSAgQ2hyaXMgRHVtZXogIDxjZHVt
ZXpAYXBwbGUuY29tPgogCiAgICAgICAgIFtNYWMgd2syXSBpbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL2h0bWwvY3Jvc3Mtb3JpZ2luLWVtYmVkZGVyLXBvbGljeS9yZXBvcnRpbmctdG8t
ZnJhbWUtb3duZXIuaHR0cHMuaHRtbCBpcyBhIGZsYWt5IGZhaWx1cmUKZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL2h0dHAvdGVzdHMvcGF5bWVudHJlcXVlc3QvcGF5bWVudC1pcy1zaG93aW5nLmh0
dHBzLmh0bWwgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3BheW1lbnRyZXF1ZXN0L3BheW1lbnQt
aXMtc2hvd2luZy5odHRwcy5odG1sCmluZGV4IDJlOWEyNGM4MDAyZDM4OGE4YzNjOGZmOWYxYWQ4
NmJkYzgwOWM2OTAuLmE4NGI4YTI0ZGI3ZjNkYTZjMjJjYWUwZjI3MjkxNmNjOGZiMGY5M2UgMTAw
NjQ0Ci0tLSBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcGF5bWVudHJlcXVlc3QvcGF5bWVudC1p
cy1zaG93aW5nLmh0dHBzLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9wYXltZW50
cmVxdWVzdC9wYXltZW50LWlzLXNob3dpbmcuaHR0cHMuaHRtbApAQCAtNzEsOSArNzEsMTQgQEAK
ICAgICAgIC8vIFNldHMgdGhlICJwYXltZW50LXJlbGV2YW50IGJyb3dzaW5nIGNvbnRleHQncyBw
YXltZW50IHJlcXVlc3QgaXMKICAgICAgIC8vIHNob3dpbmcgYm9vbGVhbiIgdG8gdHJ1ZSBhbmQg
dGhlbiB0cnkgdG8gc2hvdyBhIHNlY29uZCBwYXltZW50IHNoZWV0IGluCiAgICAgICAvLyB0aGUg
c2FtZSB3aW5kb3cuIFRoZSBzZWNvbmQgc2hvdygpIHNob3VsZCByZWplY3QuCi0gICAgICBjb25z
dCBbc2hvd1Byb21pc2UxLCBzaG93UHJvbWlzZTJdID0gYXdhaXQgYWN0aXZhdGVUaGVuKAotICAg
ICAgICBhc3luYyAoKSA9PiB7Ci0gICAgICAgICAgcmV0dXJuIFtyZXF1ZXN0MS5zaG93KCksIHJl
cXVlc3QyLnNob3coKV07CisgICAgICBjb25zdCBbc2hvd1Byb21pc2UxXSA9IGF3YWl0IGFjdGl2
YXRlVGhlbigKKyAgICAgICAgKCkgPT4geworICAgICAgICAgIHJldHVybiBbcmVxdWVzdDEuc2hv
dygpXQorICAgICAgICB9CisgICAgICApOworICAgICAgY29uc3QgW3Nob3dQcm9taXNlMl0gPSBh
d2FpdCBhY3RpdmF0ZVRoZW4oCisgICAgICAgICgpID0+IHsKKyAgICAgICAgICByZXR1cm4gW3Jl
cXVlc3QyLnNob3coKV0KICAgICAgICAgfQogICAgICAgKTsKICAgICAgIGF3YWl0IHByb21pc2Vf
cmVqZWN0cygKQEAgLTExNywxMiArMTIyLDE4IEBACiAgICAgICBjb25zdCBpZnJhbWVSZXF1ZXN0
ID0gbmV3IGlmcmFtZVdpbmRvdy5QYXltZW50UmVxdWVzdChtZXRob2RzLCBkZXRhaWxzKTsKICAg
ICAgIGNvbnN0IHdpbmRvd1JlcXVlc3QgPSBuZXcgd2luZG93LlBheW1lbnRSZXF1ZXN0KG1ldGhv
ZHMsIGRldGFpbHMpOwogCi0gICAgICAvLyBMZXQncyBnZXQgc29tZSBibGVzc2VkIHNob3dQcm9t
aXNlcwotICAgICAgY29uc3QgW2lmcmFtZVNob3dQcm9taXNlLCB3aW5kb3dTaG93UHJvbWlzZV0g
PSBhd2FpdCBhY3RpdmF0ZVRoZW4oCi0gICAgICAgIGFzeW5jICgpID0+IHsKLSAgICAgICAgICAv
LyBpZnJhbWUgc2V0cyAiaXMgc2hvd2luZyBib29sZWFuIiwgaWdub3JlIHRoZSByZXR1cm5lZCBw
cm9taXNlLgorICAgICAgLy8gTGV0J3MgZ2V0IGJsZXNzZWQgcHJvbWlzZSBmb3IgdGhlIGlmcmFt
ZQorICAgICAgY29uc3QgW2lmcmFtZVNob3dQcm9taXNlXSA9IGF3YWl0IGFjdGl2YXRlVGhlbigK
KyAgICAgICAgKCkgPT4geworICAgICAgICAgIC8vIGlmcmFtZSBzZXRzICJpcyBzaG93aW5nIGJv
b2xlYW4iCisgICAgICAgICAgcmV0dXJuIFtpZnJhbWVSZXF1ZXN0LnNob3coKV07CisgICAgICAg
IH0KKyAgICAgICk7CisKKyAgICAgIGNvbnN0IFt3aW5kb3dTaG93UHJvbWlzZV0gPSBhd2FpdCBh
Y3RpdmF0ZVRoZW4oCisgICAgICAgICgpID0+IHsKICAgICAgICAgICAvLyBUaGUgdG9wIGxldmVs
IHdpbmRvdyBub3cgdHJpZXMgdG8gc2hvdygpIHRoZSBwYXltZW50IHJlcXVlc3QuCi0gICAgICAg
ICAgcmV0dXJuIFtpZnJhbWVSZXF1ZXN0LnNob3coKSwgd2luZG93UmVxdWVzdC5zaG93KCldOwor
ICAgICAgICAgIHJldHVybiBbd2luZG93UmVxdWVzdC5zaG93KCldOwogICAgICAgICB9CiAgICAg
ICApOwogCkBAIC0xMzAsNyArMTQxLDcgQEAKICAgICAgICAgdCwKICAgICAgICAgJ0Fib3J0RXJy
b3InLAogICAgICAgICB3aW5kb3dTaG93UHJvbWlzZSwKLSAgICAgICAgJ2lmcmFtZSBpcyBhbHJl
YWR5IHNob3dpbmcgYSBwYXltZW50IHJlcXVlc3QuJywKKyAgICAgICAgJ2lmcmFtZSBpcyBhbHJl
YWR5IHNob3dpbmcgYSBwYXltZW50IHJlcXVlc3QnLAogICAgICAgKTsKIAogICAgICAgLy8gQ2xl
YW51cApAQCAtMTU0LDkgKzE2NSwxNSBAQAogICAgICAgLy8gV2UgZmlyc3Qgc2hvdyBhIHBheW1l
bnQgcmVxdWVzdCB2aWEgdGhlIHRoZSB0b3AgbGV2ZWwgYnJvd3NpbmcgY29udGV4dCwKICAgICAg
IC8vIHdpbmRvd1JlcXVlc3Quc2hvdygpIHNldHMgImlzIHNob3dpbmcgYm9vbGVhbiIgdG8gdHJ1
ZS4gVGhlbiB3ZSB0cnkgdG8KICAgICAgIC8vIHNob3cgYSBwYXltZW50IHJlcXVlc3QgaW4gdGhl
IGlmcmFtZSwgd2hpY2ggc2hvdWxkIHJlamVjdC4KLSAgICAgIGNvbnN0IFt3aW5kb3dTaG93UHJv
bWlzZSwgaWZyYW1lU2hvd1Byb21pc2VdID0gYXdhaXQgYWN0aXZhdGVUaGVuKAotICAgICAgICBh
c3luYyAoKSA9PiB7Ci0gICAgICAgICAgcmV0dXJuIFt3aW5kb3dSZXF1ZXN0LnNob3coKSwgaWZy
YW1lUmVxdWVzdC5zaG93KCldOworICAgICAgY29uc3QgW3dpbmRvd1Nob3dQcm9taXNlXSA9IGF3
YWl0IGFjdGl2YXRlVGhlbigKKyAgICAgICAgKCkgPT4geworICAgICAgICAgIHJldHVybiBbd2lu
ZG93UmVxdWVzdC5zaG93KCldOworICAgICAgICB9CisgICAgICApOworCisgICAgICBjb25zdCBb
aWZyYW1lU2hvd1Byb21pc2VdID0gYXdhaXQgYWN0aXZhdGVUaGVuKAorICAgICAgICAoKSA9PiB7
CisgICAgICAgICAgcmV0dXJuIFtpZnJhbWVSZXF1ZXN0LnNob3coKV07CiAgICAgICAgIH0KICAg
ICAgICk7CiAKQEAgLTE4OCwxNSArMjA1LDE1IEBACiAgICAgICAvLyBHZXQgdGhlIHNob3dQcm9t
aXNlIGZvciBlYWNoIGJyb3dzaW5nIGNvbnRleHQuIERvaW5nIHRoaXMgaW4gYSBzZXBhcmF0ZQog
ICAgICAgLy8gdGVzdF9kcml2ZXIuYmxlc3MoKSBpcyBpbXBvcnRhbnQgYmVjYXVzZSB0aGUgdXNl
ciBnZXN0dXJlIGJyaW5ncwogICAgICAgLy8gfHdpbmRvd3wgdG8gdGhlIGZvcmVncm91bmQsIHNv
IHRoYXQgdGhlIHBheW1lbnQgc2hlZXQgY2FuIHNob3cuCi0gICAgICBjb25zdCBbCi0gICAgICAg
IHdpbmRvd1Nob3dQcm9taXNlLAotICAgICAgICBpZnJhbWVTaG93UHJvbWlzZSwKLSAgICAgIF0g
PSBhd2FpdCBhY3RpdmF0ZVRoZW4oCisgICAgICBjb25zdCBbd2luZG93U2hvd1Byb21pc2VdID0g
YXdhaXQgYWN0aXZhdGVUaGVuKAorICAgICAgICAoKSA9PiB7CisgICAgICAgICAgcmV0dXJuIFt3
aW5kb3dSZXF1ZXN0LnNob3coKV07CisgICAgICAgIH0KKyAgICAgICk7CisKKyAgICAgIGNvbnN0
IFsgaWZyYW1lU2hvd1Byb21pc2UgXSA9IGF3YWl0IGFjdGl2YXRlVGhlbigKICAgICAgICAgYXN5
bmMgKCkgPT4gewotICAgICAgICAgIHJldHVybiBbCi0gICAgICAgICAgICB3aW5kb3dSZXF1ZXN0
LnNob3coKSwKLSAgICAgICAgICAgIGlmcmFtZVJlcXVlc3Quc2hvdygpLAotICAgICAgICAgIF07
CisgICAgICAgICAgcmV0dXJuIFtpZnJhbWVSZXF1ZXN0LnNob3coKV07CiAgICAgICAgIH0KICAg
ICAgICk7CiAKQEAgLTIyNywxNSArMjQ0LDE0IEBACiAgICAgICAvLyBHZXQgdGhlIHNob3dQcm9t
aXNlIGZvciBlYWNoIGJyb3dzaW5nIGNvbnRleHQuIERvaW5nIHRoaXMgaW4gYSBzZXBhcmF0ZQog
ICAgICAgLy8gdGVzdF9kcml2ZXIuYmxlc3MoKSBpcyBpbXBvcnRhbnQgYmVjYXVzZSB0aGUgdXNl
ciBnZXN0dXJlIGJyaW5ncwogICAgICAgLy8gfHdpbmRvd3wgdG8gdGhlIGZvcmVncm91bmQsIHNv
IHRoYXQgdGhlIHBheW1lbnQgc2hlZXQgY2FuIHNob3cuCi0gICAgICBjb25zdCBbCi0gICAgICAg
IGlmcmFtZVNob3dQcm9taXNlLAotICAgICAgICB3aW5kb3dTaG93UHJvbWlzZSwKLSAgICAgIF0g
PSBhd2FpdCBhY3RpdmF0ZVRoZW4oCi0gICAgICAgIGFzeW5jICgpID0+IHsKLSAgICAgICAgICBy
ZXR1cm4gWwotICAgICAgICAgICAgaWZyYW1lUmVxdWVzdC5zaG93KCksCi0gICAgICAgICAgICB3
aW5kb3dSZXF1ZXN0LnNob3coKSwKLSAgICAgICAgICBdOworICAgICAgY29uc3QgW2lmcmFtZVNo
b3dQcm9taXNlXSA9IGF3YWl0IGFjdGl2YXRlVGhlbigKKyAgICAgICAgKCkgPT4geworICAgICAg
ICAgIHJldHVybiBbaWZyYW1lUmVxdWVzdC5zaG93KCldOworICAgICAgICB9CisgICAgICApOwor
ICAgICAgY29uc3QgW3dpbmRvd1Nob3dQcm9taXNlXSA9IGF3YWl0IGFjdGl2YXRlVGhlbigKKyAg
ICAgICAgKCkgPT4geworICAgICAgICAgIHJldHVybiBbd2luZG93UmVxdWVzdC5zaG93KCldOwog
ICAgICAgICB9CiAgICAgICApOwogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3Rz
L3BheW1lbnRyZXF1ZXN0L3BheW1lbnQtcmVxdWVzdC1zaG93LW1ldGhvZC5odHRwcy5odG1sIGIv
TGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9wYXltZW50cmVxdWVzdC9wYXltZW50LXJlcXVlc3Qtc2hv
dy1tZXRob2QuaHR0cHMuaHRtbAppbmRleCA2NGU1MmM2OWZlMTdkM2ZmMTdkNmU5ZGFiODMyZDcx
ODUxOTA5ZTEzLi40MzJhMDlmZTRjNjgzODQxYmQ4YWE1YWEzOTE5MDA1NDQ0MjA2Y2E1IDEwMDY0
NAotLS0gYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3BheW1lbnRyZXF1ZXN0L3BheW1lbnQtcmVx
dWVzdC1zaG93LW1ldGhvZC5odHRwcy5odG1sCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMv
cGF5bWVudHJlcXVlc3QvcGF5bWVudC1yZXF1ZXN0LXNob3ctbWV0aG9kLmh0dHBzLmh0bWwKQEAg
LTQ2LDcgKzQ2LDcgQEAgdGVzdCgoKSA9PiB7CiB1c2VyX2FjdGl2YXRpb25fdGVzdChhc3luYyB0
ID0+IHsKICAgY29uc3QgcmVxdWVzdCA9IG5ldyBQYXltZW50UmVxdWVzdChkZWZhdWx0TWV0aG9k
cywgZGVmYXVsdERldGFpbHMpOwogICBjb25zdCBhY2NlcHRQcm9taXNlID0gcmVxdWVzdC5zaG93
KCk7IC8vIFNldHMgc3RhdGUgdG8gImludGVyYWN0aXZlIgotICBhd2FpdCBwcm9taXNlX3JlamVj
dHModCwgIkludmFsaWRTdGF0ZUVycm9yIiwgcmVxdWVzdC5zaG93KCkpOworICBhd2FpdCBwcm9t
aXNlX3JlamVjdHModCwgIlNlY3VyaXR5RXJyb3IiLCByZXF1ZXN0LnNob3coKSk7CiAgIGF3YWl0
IHJlcXVlc3QuYWJvcnQoKTsKICAgYXdhaXQgcHJvbWlzZV9yZWplY3RzKHQsICJBYm9ydEVycm9y
IiwgYWNjZXB0UHJvbWlzZSk7CiB9LCBgVGhyb3dzIGlmIHRoZSBwcm9taXNlIFtbc3RhdGVdXSBp
cyBub3QgImNyZWF0ZWQiYCk7CkBAIC01Niw3ICs1Niw3IEBAIHVzZXJfYWN0aXZhdGlvbl90ZXN0
KGFzeW5jIHQgPT4gewogICBjb25zdCByZXF1ZXN0MiA9IG5ldyBQYXltZW50UmVxdWVzdChkZWZh
dWx0TWV0aG9kcywgZGVmYXVsdERldGFpbHMpOwogICBjb25zdCBhY2NlcHRQcm9taXNlMSA9IHJl
cXVlc3QxLnNob3coKTsKICAgY29uc3QgYWNjZXB0UHJvbWlzZTIgPSByZXF1ZXN0Mi5zaG93KCk7
Ci0gIGF3YWl0IHByb21pc2VfcmVqZWN0cyh0LCAiQWJvcnRFcnJvciIsIGFjY2VwdFByb21pc2Uy
KTsKKyAgYXdhaXQgcHJvbWlzZV9yZWplY3RzKHQsICJTZWN1cml0eUVycm9yIiwgYWNjZXB0UHJv
bWlzZTIpOwogICBhd2FpdCByZXF1ZXN0MS5hYm9ydCgpOwogICBhd2FpdCBwcm9taXNlX3JlamVj
dHModCwgIkFib3J0RXJyb3IiLCBhY2NlcHRQcm9taXNlMSk7CiB9LCBgSWYgdGhlIHVzZXIgYWdl
bnQncyAicGF5bWVudCByZXF1ZXN0IGlzIHNob3dpbmciIGJvb2xlYW4gaXMgdHJ1ZSwgdGhlbiBy
ZXR1cm4gYSBwcm9taXNlIHJlamVjdGVkIHdpdGggYW4gIkFib3J0RXJyb3IiIERPTUV4Y2VwdGlv
bi5gKTsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvcGF5bWVudC1yZXF1ZXN0L3BheW1lbnQtaXMtc2hvd2luZy5odHRwcy5odG1sIGIvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9wYXltZW50LXJlcXVlc3Qv
cGF5bWVudC1pcy1zaG93aW5nLmh0dHBzLmh0bWwKaW5kZXggZmVkNmVhZjZkOWZhZGExMTQ0NmIz
MmNhYWJhMDdiNWRlMmQ4OGIwZS4uMzRiOWFlODJiNjUzMGUzNzIzMDQ4ZTM4MzkzNjg3MDkxYjRm
YmJkNyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy9wYXltZW50LXJlcXVlc3QvcGF5bWVudC1pcy1zaG93aW5nLmh0dHBzLmh0bWwKKysrIGIv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9wYXltZW50LXJlcXVl
c3QvcGF5bWVudC1pcy1zaG93aW5nLmh0dHBzLmh0bWwKQEAgLTQsNyArNCw3IEBACiAgIHJlbD0i
aGVscCIKICAgaHJlZj0iaHR0cHM6Ly93M2MuZ2l0aHViLmlvL2Jyb3dzZXItcGF5bWVudC1hcGkv
I2Rmbi1wYXltZW50LXJlcXVlc3QtaXMtc2hvd2luZyIKIC8+Ci08bWV0YSBuYW1lPSJ0aW1lb3V0
IiBjb250ZW50PSJsb25nIj4KKzxtZXRhIG5hbWU9InRpbWVvdXQiIGNvbnRlbnQ9ImxvbmciIC8+
CiA8c2NyaXB0IHNyYz0iL3Jlc291cmNlcy90ZXN0aGFybmVzcy5qcyI+PC9zY3JpcHQ+CiA8c2Ny
aXB0IHNyYz0iL3Jlc291cmNlcy90ZXN0aGFybmVzc3JlcG9ydC5qcyI+PC9zY3JpcHQ+CiA8c2Ny
aXB0IHNyYz0iL3Jlc291cmNlcy90ZXN0ZHJpdmVyLmpzIj48L3NjcmlwdD4KQEAgLTIyLDcgKzIy
LDcgQEAKICAgICAgICAgc3VwcG9ydGVkTmV0d29ya3M6IFsidmlzYSJdLAogICAgICAgfSwKICAg
ICB9OwotICAgIGNvbnN0IG1ldGhvZHMgPSBbe3N1cHBvcnRlZE1ldGhvZHM6ICJiYXNpYy1jYXJk
In0sIGFwcGxlUGF5TWV0aG9kXTsKKyAgICBjb25zdCBtZXRob2RzID0gW3sgc3VwcG9ydGVkTWV0
aG9kczogImJhc2ljLWNhcmQiIH0sIGFwcGxlUGF5TWV0aG9kXTsKICAgICBjb25zdCBkZXRhaWxz
ID0gewogICAgICAgdG90YWw6IHsKICAgICAgICAgbGFiZWw6ICJUb3RhbCIsCkBAIC00NCw0NSAr
NDQsNDAgQEAKICAgICAgIGlmcmFtZS5hbGxvdyA9ICJwYXltZW50IjsKICAgICAgIGlmcmFtZS5z
cmMgPSBzcmM7CiAgICAgICBkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKGlmcmFtZSk7Ci0gICAg
ICBhd2FpdCBuZXcgUHJvbWlzZShyZXNvbHZlID0+IHsKLSAgICAgICAgaWZyYW1lLmFkZEV2ZW50
TGlzdGVuZXIoImxvYWQiLCByZXNvbHZlLCB7b25jZTogdHJ1ZX0pOworICAgICAgYXdhaXQgbmV3
IFByb21pc2UoKHJlc29sdmUpID0+IHsKKyAgICAgICAgaWZyYW1lLmFkZEV2ZW50TGlzdGVuZXIo
ImxvYWQiLCByZXNvbHZlLCB7IG9uY2U6IHRydWUgfSk7CiAgICAgICB9KTsKICAgICAgIHJldHVy
biBpZnJhbWU7CiAgICAgfQogCi0gICAgLyoqCi0gICAgICogQ3JlYXRlcyBhIHBvcHVwIHdpbmRv
dy4gVGhlIGNhbGxlciBtdXN0IGJlIHRyaWdnZXJlZCB3aXRoIGEgdXNlciBnZXN0dXJlLgotICAg
ICAqCi0gICAgICogQHBhcmFtIHtTdHJpbmd9IHNyYyBPcHRpb25hbCByZXNvdXJjZSBVUkwgdG8g
bG9hZC4KLSAgICAgKiBAcmV0dXJucyB7UHJvbWlzZX0gUmVzb2x2ZXMgd2hlbiB0aGUgc3JjIGxv
YWRzLgotICAgICAqLwotICAgIGFzeW5jIGZ1bmN0aW9uIGxvYWRQb3B1cEluc2lkZVVzZXJHZXN0
dXJlKHNyYyA9ICJibGFuay5odG1sIikgewotICAgICAgY29uc3QgcG9wdXBXaW5kb3cgPSB3aW5k
b3cub3BlbihzcmMsICIiLCAid2lkdGg9NDAwLGhlaWdodD00MDAiKTsKLSAgICAgIGF3YWl0IG5l
dyBQcm9taXNlKHJlc29sdmUgPT4gewotICAgICAgICBwb3B1cFdpbmRvdy5hZGRFdmVudExpc3Rl
bmVyKCJsb2FkIiwgcmVzb2x2ZSwge29uY2U6IHRydWV9KTsKLSAgICAgIH0pOwotICAgICAgcG9w
dXBXaW5kb3cuZm9jdXMoKTsKLSAgICAgIHJldHVybiBwb3B1cFdpbmRvdzsKKyAgICBmdW5jdGlv
biBnZXRTaG93UHJvbWlzZUZyb21Db250ZXh0KHBheW1lbnRSZXF1ZXN0LCBjb250ZXh0ID0gdGhp
cykgeworICAgICAgcmV0dXJuIHRlc3RfZHJpdmVyLmJsZXNzKAorICAgICAgICAicGF5bWVudCBy
ZXF1ZXN0IHNob3coKSIsCisgICAgICAgICgpID0+IHsKKyAgICAgICAgICByZXR1cm4gW3BheW1l
bnRSZXF1ZXN0LnNob3coKV07CisgICAgICAgIH0sCisgICAgICAgIGNvbnRleHQKKyAgICAgICk7
CiAgICAgfQogCi0gICAgcHJvbWlzZV90ZXN0KGFzeW5jIHQgPT4geworICAgIHByb21pc2VfdGVz
dChhc3luYyAodCkgPT4gewogICAgICAgY29uc3QgcmVxdWVzdDEgPSBuZXcgUGF5bWVudFJlcXVl
c3QobWV0aG9kcywgZGV0YWlscyk7CiAgICAgICBjb25zdCByZXF1ZXN0MiA9IG5ldyBQYXltZW50
UmVxdWVzdChtZXRob2RzLCBkZXRhaWxzKTsKIAogICAgICAgLy8gU2V0cyB0aGUgInBheW1lbnQt
cmVsZXZhbnQgYnJvd3NpbmcgY29udGV4dCdzIHBheW1lbnQgcmVxdWVzdCBpcwogICAgICAgLy8g
c2hvd2luZyBib29sZWFuIiB0byB0cnVlIGFuZCB0aGVuIHRyeSB0byBzaG93IGEgc2Vjb25kIHBh
eW1lbnQgc2hlZXQgaW4KICAgICAgIC8vIHRoZSBzYW1lIHdpbmRvdy4gVGhlIHNlY29uZCBzaG93
KCkgc2hvdWxkIHJlamVjdC4KLSAgICAgIGNvbnN0IFtzaG93UHJvbWlzZTEsIHNob3dQcm9taXNl
Ml0gPSBhd2FpdCB0ZXN0X2RyaXZlci5ibGVzcygKLSAgICAgICAgInRlc3Rpbmcgb25lIHBheW1l
bnQgc2hlZXQgcGVyIHdpbmRvdyIsCi0gICAgICAgICgpID0+IHsKLSAgICAgICAgICByZXR1cm4g
W3JlcXVlc3QxLnNob3coKSwgcmVxdWVzdDIuc2hvdygpXTsKLSAgICAgICAgfSwKLSAgICAgICk7
CisgICAgICBhd2FpdCB0ZXN0X2RyaXZlci5ibGVzcygicGF5bWVudCByZXF1ZXN0IHNob3coKSIp
OworICAgICAgY29uc3Qgc2hvd1Byb21pc2UxID0gcmVxdWVzdDEuc2hvdygpOworCisgICAgICBh
d2FpdCB0ZXN0X2RyaXZlci5ibGVzcygicGF5bWVudCByZXF1ZXN0IHNob3coKSIpOworICAgICAg
Y29uc3Qgc2hvd1Byb21pc2UyID0gcmVxdWVzdDIuc2hvdygpOworCiAgICAgICBhd2FpdCBwcm9t
aXNlX3JlamVjdHNfZG9tKAogICAgICAgICB0LAogICAgICAgICAiQWJvcnRFcnJvciIsCiAgICAg
ICAgIHNob3dQcm9taXNlMiwKLSAgICAgICAgIkF0dGVtcHRpbmcgdG8gc2hvdyBhIHNlY29uZCBw
YXltZW50IHJlcXVlc3QgbXVzdCByZWplY3QuIiwKKyAgICAgICAgIkF0dGVtcHRpbmcgdG8gc2hv
dyBhIHNlY29uZCBwYXltZW50IHJlcXVlc3QgbXVzdCByZWplY3QuIgogICAgICAgKTsKIAogICAg
ICAgYXdhaXQgcmVxdWVzdDEuYWJvcnQoKTsKQEAgLTkwLDcgKzg1LDcgQEAKICAgICAgICAgdCwK
ICAgICAgICAgIkFib3J0RXJyb3IiLAogICAgICAgICBzaG93UHJvbWlzZTEsCi0gICAgICAgICJy
ZXF1ZXN0MSB3YXMgYWJvcnRlZCB2aWEgLmFib3J0KCkiLAorICAgICAgICAicmVxdWVzdDEgd2Fz
IGFib3J0ZWQgdmlhIC5hYm9ydCgpIgogICAgICAgKTsKIAogICAgICAgLy8gRmluYWxseSwgcmVx
dWVzdDIgc2hvdWxkIGhhdmUgYmVlbiAiY2xvc2VkIiwgc28gdHJ5aW5nIHRvIHNob3cKQEAgLTEw
MSw0MCArOTYsNDAgQEAKICAgICAgICAgdCwKICAgICAgICAgIkludmFsaWRTdGF0ZUVycm9yIiwK
ICAgICAgICAgcmVqZWN0ZWRQcm9taXNlLAotICAgICAgICAiQXR0ZW1wdGluZyB0byBzaG93IGEg
c2Vjb25kIHBheW1lbnQgcmVxdWVzdCBtdXN0IHJlamVjdC4iLAorICAgICAgICAiQXR0ZW1wdGlu
ZyB0byBzaG93IGEgc2Vjb25kIHBheW1lbnQgcmVxdWVzdCBtdXN0IHJlamVjdC4iCiAgICAgICAp
OwogICAgICAgLy8gRmluYWxseSwgd2UgY29uZmlybSB0aGF0IHJlcXVlc3QyJ3MgcmV0dXJuZWQg
cHJvbWlzZXMgYXJlIHVuaXF1ZS4KICAgICAgIGFzc2VydF9ub3RfZXF1YWxzKAogICAgICAgICBz
aG93UHJvbWlzZTIsCiAgICAgICAgIHJlamVjdGVkUHJvbWlzZSwKLSAgICAgICAgIlJldHVybmVk
IFByb21pc2VzIGJlIHVuaXF1ZSIsCisgICAgICAgICJSZXR1cm5lZCBQcm9taXNlcyBiZSB1bmlx
dWUiCiAgICAgICApOwogICAgIH0sICJUaGUgdG9wIGJyb3dzaW5nIGNvbnRleHQgY2FuIG9ubHkg
c2hvdyBvbmUgcGF5bWVudCBzaGVldCBhdCBhIHRpbWUuIik7CiAKLSAgICBwcm9taXNlX3Rlc3Qo
YXN5bmMgdCA9PiB7CisgICAgcHJvbWlzZV90ZXN0KGFzeW5jICh0KSA9PiB7CiAgICAgICBjb25z
dCBpZnJhbWUgPSBhd2FpdCBhdHRhY2hJZnJhbWUoKTsKICAgICAgIGNvbnN0IGlmcmFtZVdpbmRv
dyA9IGlmcmFtZS5jb250ZW50V2luZG93OwogCiAgICAgICAvLyBQYXltZW50IHJlcXVlc3RzCi0g
ICAgICBjb25zdCBpZnJhbWVSZXF1ZXN0ID0gbmV3IGlmcmFtZVdpbmRvdy5QYXltZW50UmVxdWVz
dChtZXRob2RzLCBkZXRhaWxzKTsKICAgICAgIGNvbnN0IHdpbmRvd1JlcXVlc3QgPSBuZXcgd2lu
ZG93LlBheW1lbnRSZXF1ZXN0KG1ldGhvZHMsIGRldGFpbHMpOworICAgICAgY29uc3QgaWZyYW1l
UmVxdWVzdCA9IG5ldyBpZnJhbWVXaW5kb3cuUGF5bWVudFJlcXVlc3QobWV0aG9kcywgZGV0YWls
cyk7CiAKICAgICAgIC8vIExldCdzIGdldCBzb21lIGJsZXNzZWQgc2hvd1Byb21pc2VzCi0gICAg
ICBjb25zdCBbc2hvd1Byb21pc2VdID0gYXdhaXQgdGVzdF9kcml2ZXIuYmxlc3MoCi0gICAgICAg
ICJ0ZXN0aW5nIHRvcCB3aW5kb3cgc2hvdygpIGJsb2NrZWQgYnkgcGF5bWVudCBzaGVldCBpbiBp
ZnJhbWUiLAotICAgICAgICAoKSA9PiB7Ci0gICAgICAgICAgLy8gaWZyYW1lIHNldHMgImlzIHNo
b3dpbmcgYm9vbGVhbiIsIGlnbm9yZSB0aGUgcmV0dXJuZWQgcHJvbWlzZS4KLSAgICAgICAgICBp
ZnJhbWVSZXF1ZXN0LnNob3coKTsKLSAgICAgICAgICAvLyBUaGUgdG9wIGxldmVsIHdpbmRvdyBu
b3cgdHJpZXMgdG8gc2hvdygpIHRoZSBwYXltZW50IHJlcXVlc3QuCi0gICAgICAgICAgcmV0dXJu
IFt3aW5kb3dSZXF1ZXN0LnNob3coKV07Ci0gICAgICAgIH0sCisgICAgICAvLyBpZnJhbWUgc2V0
cyAiaXMgc2hvd2luZyBib29sZWFuIiwgaWdub3JlIHRoZSByZXR1cm5lZCBwcm9taXNlLgorICAg
ICAgY29uc3QgW2lmcmFtZVByb21pc2VdID0gYXdhaXQgZ2V0U2hvd1Byb21pc2VGcm9tQ29udGV4
dCgKKyAgICAgICAgaWZyYW1lUmVxdWVzdCwKKyAgICAgICAgaWZyYW1lV2luZG93CiAgICAgICAp
OwogCisgICAgICAvLyBUaGUgdG9wIGxldmVsIHdpbmRvdyBub3cgdHJpZXMgdG8gc2hvdygpIHRo
ZSBwYXltZW50IHJlcXVlc3QuCisgICAgICBhd2FpdCB0ZXN0X2RyaXZlci5ibGVzcygicGF5bWVu
dCByZXF1ZXN0IHNob3coKSIpOworICAgICAgY29uc3Qgc2hvd1Byb21pc2UgPSB3aW5kb3dSZXF1
ZXN0LnNob3coKTsKKwogICAgICAgYXdhaXQgcHJvbWlzZV9yZWplY3RzX2RvbSgKICAgICAgICAg
dCwKICAgICAgICAgIkFib3J0RXJyb3IiLAogICAgICAgICBzaG93UHJvbWlzZSwKLSAgICAgICAg
ImlmcmFtZSBpcyBhbHJlYWR5IHNob3dpbmcgYSBwYXltZW50IHJlcXVlc3QuIiwKKyAgICAgICAg
ImlmcmFtZSBpcyBhbHJlYWR5IHNob3dpbmcgYSBwYXltZW50IHJlcXVlc3QuIgogICAgICAgKTsK
IAogICAgICAgLy8gQ2xlYW51cApAQCAtMTQyLDM2MSArMTM3LDM0IEBACiAgICAgICBpZnJhbWUu
cmVtb3ZlKCk7CiAgICAgfSwgIklmIGFuIGlmcmFtZSBzaG93cyBhIHBheW1lbnQgcmVxdWVzdCwg
dGhlIHRvcC1sZXZlbCBicm93c2luZyBjb250ZXh0IGNhbid0IGFsc28gc2hvdyBvbmUuIik7CiAK
LSAgICBwcm9taXNlX3Rlc3QoYXN5bmMgdCA9PiB7CisgICAgcHJvbWlzZV90ZXN0KGFzeW5jICh0
KSA9PiB7CiAgICAgICBjb25zdCBpZnJhbWUgPSBhd2FpdCBhdHRhY2hJZnJhbWUoKTsKICAgICAg
IGNvbnN0IGlmcmFtZVdpbmRvdyA9IGlmcmFtZS5jb250ZW50V2luZG93OwotCi0gICAgICAvLyBQ
YXltZW50IHJlcXVlc3RzCiAgICAgICBjb25zdCBpZnJhbWVSZXF1ZXN0ID0gbmV3IGlmcmFtZVdp
bmRvdy5QYXltZW50UmVxdWVzdChtZXRob2RzLCBkZXRhaWxzKTsKLSAgICAgIGNvbnN0IHdpbmRv
d1JlcXVlc3QgPSBuZXcgd2luZG93LlBheW1lbnRSZXF1ZXN0KG1ldGhvZHMsIGRldGFpbHMpOwot
Ci0gICAgICAvLyBXZSBmaXJzdCBzaG93IGEgcGF5bWVudCByZXF1ZXN0IHZpYSB0aGUgdGhlIHRv
cCBsZXZlbCBicm93c2luZyBjb250ZXh0LAotICAgICAgLy8gd2luZG93UmVxdWVzdC5zaG93KCkg
c2V0cyAiaXMgc2hvd2luZyBib29sZWFuIiB0byB0cnVlLiBUaGVuIHdlIHRyeSB0bwotICAgICAg
Ly8gc2hvdyBhIHBheW1lbnQgcmVxdWVzdCBpbiB0aGUgaWZyYW1lLCB3aGljaCBzaG91bGQgcmVq
ZWN0LgotICAgICAgY29uc3QgW3dpbmRvd1Nob3dQcm9taXNlLCBpZnJhbWVTaG93UHJvbWlzZV0g
PSBhd2FpdCB0ZXN0X2RyaXZlci5ibGVzcygKLSAgICAgICAgInRlc3RpbmcgaWZyYW1lIHNob3co
KSBibG9ja2VkIGJ5IHBheW1lbnQgc2hlZXQgaW4gdG9wIHdpbmRvdyIsCi0gICAgICAgICgpID0+
IHsKLSAgICAgICAgICByZXR1cm4gW3dpbmRvd1JlcXVlc3Quc2hvdygpLCBpZnJhbWVSZXF1ZXN0
LnNob3coKV07Ci0gICAgICAgIH0sCi0gICAgICApOwotCi0gICAgICBhd2FpdCBwcm9taXNlX3Jl
amVjdHNfZG9tKAotICAgICAgICB0LAotICAgICAgICAiQWJvcnRFcnJvciIsCi0gICAgICAgIGlm
cmFtZVNob3dQcm9taXNlLAotICAgICAgICAiVGhlIHRvcCB3aW5kb3cgaXMgYWxyZWFkeSBzaG93
aW5nIGEgcGF5bWVudCByZXF1ZXN0LiIsCisgICAgICBjb25zdCBbaWZyYW1lU2hvd1Byb21pc2Vd
ID0gYXdhaXQgZ2V0U2hvd1Byb21pc2VGcm9tQ29udGV4dCgKKyAgICAgICAgaWZyYW1lUmVxdWVz
dCwKKyAgICAgICAgaWZyYW1lV2luZG93CiAgICAgICApOwogCi0gICAgICAvLyBDbGVhbnVwCi0g
ICAgICBhd2FpdCB3aW5kb3dSZXF1ZXN0LmFib3J0KCk7Ci0gICAgICBhd2FpdCBwcm9taXNlX3Jl
amVjdHNfZG9tKAotICAgICAgICB0LAotICAgICAgICAiQWJvcnRFcnJvciIsCi0gICAgICAgIHdp
bmRvd1Nob3dQcm9taXNlLAotICAgICAgICAiVGhlIHdpbmRvdyBwYXltZW50IHJlcXVlc3Qgc2hv
dWxkIGJlIGFib3J0ZWQgYnkgdGVzdC4iLAotICAgICAgICApOwotICAgICAgaWZyYW1lLnJlbW92
ZSgpOwotICAgIH0sICJBbiBpZnJhbWUgY2Fubm90IHNob3cgYSBwYXltZW50IHJlcXVlc3QgaWYg
dGhlIHRvcC1sZXZlbCB3aW5kb3cgaXMgYWxyZWFkeSBzaG93aW5nIG9uZS4iKTsKLQotICAgIHBy
b21pc2VfdGVzdChhc3luYyB0ID0+IHsKLSAgICAgIC8vIENyZWF0ZSBhIFBheW1lbnRSZXVxZXN0
IGluIHRvcC1sZXZlbCB3aW5kb3cuCi0gICAgICBjb25zdCB3aW5kb3dSZXF1ZXN0ID0gbmV3IHdp
bmRvdy5QYXltZW50UmVxdWVzdChtZXRob2RzLCBkZXRhaWxzKTsKLQotICAgICAgLy8gVXNlIGEg
c2luZ2xlIHVzZXIgZ2VzdHVyZSB0byBvcGVuIGEgcG9wdXAgd2luZG93IHdpdGggYSBQYXltZW50
UmVxdWVzdC4KLSAgICAgIC8vIFRoZW4gdHJpZ2dlciBzaG93KCkgZmlyc3Qgb24gfHBvcHVwUmVx
dWVzdHwgdGhlbiBvbiB8d2luZG93UmVxdWVzdHwuCi0gICAgICAvLyBUaGUgbGF0dGVyIHNob3Vs
ZCByZWplY3QuCi0gICAgICBjb25zdCBbCi0gICAgICAgIHBvcHVwV2luZG93LAotICAgICAgICBw
b3B1cFJlcXVlc3QsCi0gICAgICAgIHBvcHVwU2hvd1Byb21pc2UsCi0gICAgICAgIHdpbmRvd1No
b3dQcm9taXNlLAotICAgICAgXSA9IGF3YWl0IHRlc3RfZHJpdmVyLmJsZXNzKAotICAgICAgICAi
dGVzdGluZyB0b3AtbGV2ZWwgc2hvdygpIGJsb2NrZWQgYnkgcGF5bWVudCBzaGVldCBpbiBwb3B1
cCIsCi0gICAgICAgIGFzeW5jICgpID0+IHsKLSAgICAgICAgICBjb25zdCBwb3B1cFdpbmRvdyA9
IGF3YWl0IGxvYWRQb3B1cEluc2lkZVVzZXJHZXN0dXJlKCk7Ci0gICAgICAgICAgY29uc3QgcG9w
dXBSZXF1ZXN0ID0gbmV3IHBvcHVwV2luZG93LlBheW1lbnRSZXF1ZXN0KG1ldGhvZHMsIGRldGFp
bHMpOwotICAgICAgICAgIGNvbnN0IHBvcHVwU2hvd1Byb21pc2UgPSBwb3B1cFJlcXVlc3Quc2hv
dygpOwotICAgICAgICAgIGNvbnN0IHdpbmRvd1Nob3dQcm9taXNlID0gd2luZG93UmVxdWVzdC5z
aG93KCk7Ci0gICAgICAgICAgcmV0dXJuIFsKLSAgICAgICAgICAgIHBvcHVwV2luZG93LAotICAg
ICAgICAgICAgcG9wdXBSZXF1ZXN0LAotICAgICAgICAgICAgcG9wdXBTaG93UHJvbWlzZSwKLSAg
ICAgICAgICAgIHdpbmRvd1Nob3dQcm9taXNlLAotICAgICAgICAgIF07Ci0gICAgICAgIH0sCi0g
ICAgICApOwotCi0gICAgICBhd2FpdCBwcm9taXNlX3JlamVjdHNfZG9tKAotICAgICAgICB0LAot
ICAgICAgICAiQWJvcnRFcnJvciIsCi0gICAgICAgIHdpbmRvd1Nob3dQcm9taXNlLAotICAgICAg
ICAiRXhwZWN0ZWQgd2luZG93J3Mgc2hvd1Byb21pc2UgdG8gcmVqZWN0LCByZXF1ZXN0IGlzIGFs
cmVhZHkgc2hvd2luZyIsCi0gICAgICApOwotCi0gICAgICBhd2FpdCBwb3B1cFJlcXVlc3QuYWJv
cnQoKTsKLSAgICAgIGF3YWl0IHByb21pc2VfcmVqZWN0c19kb20oCi0gICAgICAgIHQsCi0gICAg
ICAgICJBYm9ydEVycm9yIiwKLSAgICAgICAgcG9wdXBTaG93UHJvbWlzZSwKLSAgICAgICAgIkV4
cGVjdGVkIHBvcHVwU2hvd1Byb21pc2UgdG8gYmUgYWJvcnRlZCBieSB0ZXN0LiIsCi0gICAgICAp
OwotICAgICAgcG9wdXBXaW5kb3cuY2xvc2UoKTsKLSAgICB9LCAiVXNpbmcgYSBwb3B1cCB3aW5k
b3cgcHJldmVudHMgdGhlIHRvcC1icm93c2luZyBjb250ZXh0IGZyb20gc2hvd2luZyBhIHBheW1l
bnQgcmVxdWVzdCIpOwotCi0gICAgcHJvbWlzZV90ZXN0KGFzeW5jIHQgPT4gewotICAgICAgY29u
c3QgaWZyYW1lID0gYXdhaXQgYXR0YWNoSWZyYW1lKCk7Ci0gICAgICBjb25zdCBpZnJhbWVXaW5k
b3cgPSBpZnJhbWUuY29udGVudFdpbmRvdzsKLQotICAgICAgLy8gQ3JlYXRlIHJlcXVlc3RzCi0g
ICAgICBjb25zdCB3aW5kb3dSZXF1ZXN0ID0gbmV3IHdpbmRvdy5QYXltZW50UmVxdWVzdChtZXRo
b2RzLCBkZXRhaWxzKTsKLSAgICAgIGNvbnN0IGlmcmFtZVJlcXVlc3QgPSBuZXcgaWZyYW1lV2lu
ZG93LlBheW1lbnRSZXF1ZXN0KG1ldGhvZHMsIGRldGFpbHMpOwotCi0gICAgICAvLyBPcGVuIGEg
cG9wdXAgd2luZG93Ci0gICAgICBjb25zdCBbcG9wdXBXaW5kb3csIHBvcHVwUmVxdWVzdF0gPQot
ICAgICAgYXdhaXQgdGVzdF9kcml2ZXIuYmxlc3MoCi0gICAgICAgICJvcGVuIHBvcHVwIHRvIHRl
c3QgbXVsdGlwbGUgY29udGV4dCBhbmQgd2luZG93IGNhbGxzIHNob3coKSBmaXJzdCIsCi0gICAg
ICAgIGFzeW5jICgpID0+IHsKLSAgICAgICAgICBjb25zdCBwb3B1cFdpbmRvdyA9IGF3YWl0IGxv
YWRQb3B1cEluc2lkZVVzZXJHZXN0dXJlKCk7Ci0gICAgICAgICAgY29uc3QgcG9wdXBSZXF1ZXN0
ID0gbmV3IHBvcHVwV2luZG93LlBheW1lbnRSZXF1ZXN0KG1ldGhvZHMsIGRldGFpbHMpOwotICAg
ICAgICAgIHJldHVybiBbcG9wdXBXaW5kb3csIHBvcHVwUmVxdWVzdF07Ci0gICAgICAgIH0sCi0g
ICAgICApOwotCi0gICAgICAvLyBHZXQgdGhlIHNob3dQcm9taXNlIGZvciBlYWNoIGJyb3dzaW5n
IGNvbnRleHQuIERvaW5nIHRoaXMgaW4gYSBzZXBhcmF0ZQotICAgICAgLy8gdGVzdF9kcml2ZXIu
Ymxlc3MoKSBpcyBpbXBvcnRhbnQgYmVjYXVzZSB0aGUgdXNlciBnZXN0dXJlIGJyaW5ncwotICAg
ICAgLy8gfHdpbmRvd3wgdG8gdGhlIGZvcmVncm91bmQsIHNvIHRoYXQgdGhlIHBheW1lbnQgc2hl
ZXQgY2FuIHNob3cuCi0gICAgICBjb25zdCBbCi0gICAgICAgIHdpbmRvd1Nob3dQcm9taXNlLAot
ICAgICAgICBwb3B1cFNob3dQcm9taXNlLAotICAgICAgICBpZnJhbWVTaG93UHJvbWlzZSwKLSAg
ICAgIF0gPSBhd2FpdCB0ZXN0X2RyaXZlci5ibGVzcygKLSAgICAgICAgInRlc3QgbXVsdGlwbGUg
bmVzdGVkIGJyb3dzaW5nIGNvbnRleHQiLAotICAgICAgICAoKSA9PiB7Ci0gICAgICAgICAgcmV0
dXJuIFsKLSAgICAgICAgICAgIHdpbmRvd1JlcXVlc3Quc2hvdygpLAotICAgICAgICAgICAgcG9w
dXBSZXF1ZXN0LnNob3coKSwKLSAgICAgICAgICAgIGlmcmFtZVJlcXVlc3Quc2hvdygpLAotICAg
ICAgICAgIF07Ci0gICAgICAgIH0sCi0gICAgICApOwotICAgICAgLy8gcG9wdXBSZXF1ZXN0IGFu
ZCBpZnJhbWVSZXF1ZXN0IHdpbGwgYm90aCByZWplY3QKLSAgICAgIGF3YWl0IHByb21pc2VfcmVq
ZWN0c19kb20oCi0gICAgICAgIHQsCi0gICAgICAgICJBYm9ydEVycm9yIiwKLSAgICAgICAgcG9w
dXBTaG93UHJvbWlzZSwKLSAgICAgICAgIkV4cGVjdGVkIHBvcHVwU2hvd1Byb21pc2UgdG8gcmVq
ZWN0LCByZXF1ZXN0IGlzIGFscmVhZHkgc2hvd2luZy4iLAotICAgICAgKTsKLQotICAgICAgYXdh
aXQgcHJvbWlzZV9yZWplY3RzX2RvbSgKLSAgICAgICAgdCwKLSAgICAgICAgIkFib3J0RXJyb3Ii
LAotICAgICAgICBpZnJhbWVTaG93UHJvbWlzZSwKLSAgICAgICAgIkV4cGVjdGVkIGlmcmFtZVNo
b3dQcm9taXNlIHRvIHJlamVjdCwgcmVxdWVzdCBpcyBhbHJlYWR5IHNob3dpbmcuIiwKLSAgICAg
ICk7Ci0KLSAgICAgIGF3YWl0IHdpbmRvd1JlcXVlc3QuYWJvcnQoKTsKLSAgICAgIGF3YWl0IHBy
b21pc2VfcmVqZWN0c19kb20oCi0gICAgICAgIHQsCi0gICAgICAgICJBYm9ydEVycm9yIiwKLSAg
ICAgICAgd2luZG93U2hvd1Byb21pc2UsCi0gICAgICAgICJFeHBlY3Qgd2luZG93IHByb21pc2Ug
dG8gYmUgYWJvcnRlZCBieSB0ZXN0LiIKLSAgICAgICk7Ci0gICAgICBwb3B1cFdpbmRvdy5jbG9z
ZSgpOwotICAgICAgaWZyYW1lLnJlbW92ZSgpOwotICAgIH0sICJHaXZlbiBtdWx0aXBsZSBuZXN0
ZWQgYnJvd3NpbmcgY29udGV4dHMsIGFuZCB3aW5kb3cgY2FsbHMgc2hvdygpIGZpcnN0LCBvdGhl
ciBuZXN0ZWQgYnJvd3NpbmcgY29udGV4dHMgY2FuJ3Qgc2hvdyBhIHJlcXVlc3QuIik7Ci0KLSAg
ICBwcm9taXNlX3Rlc3QoYXN5bmMgdCA9PiB7Ci0gICAgICBjb25zdCBpZnJhbWUgPSBhd2FpdCBh
dHRhY2hJZnJhbWUoKTsKLSAgICAgIGNvbnN0IGlmcmFtZVdpbmRvdyA9IGlmcmFtZS5jb250ZW50
V2luZG93OwotCi0gICAgICAvLyBDcmVhdGUgcmVxdWVzdHMKLSAgICAgIGNvbnN0IHdpbmRvd1Jl
cXVlc3QgPSBuZXcgd2luZG93LlBheW1lbnRSZXF1ZXN0KG1ldGhvZHMsIGRldGFpbHMpOwotICAg
ICAgY29uc3QgaWZyYW1lUmVxdWVzdCA9IG5ldyBpZnJhbWVXaW5kb3cuUGF5bWVudFJlcXVlc3Qo
bWV0aG9kcywgZGV0YWlscyk7Ci0KLSAgICAgIC8vIE9wZW4gYSBwb3B1cCB3aW5kb3cKLSAgICAg
IGNvbnN0IFsKLSAgICAgICAgcG9wdXBXaW5kb3csCi0gICAgICAgIHBvcHVwUmVxdWVzdCwKLSAg
ICAgICAgcG9wdXBTaG93UHJvbWlzZSwKLSAgICAgICAgd2luZG93U2hvd1Byb21pc2UsCi0gICAg
ICAgIGlmcmFtZVNob3dQcm9taXNlCi0gICAgICBdID0gYXdhaXQgdGVzdF9kcml2ZXIuYmxlc3Mo
Ci0gICAgICAgICJ0ZXN0IG11bHRpcGxlIGJyb3dzaW5nIGNvbnRleHQgYW5kIGlmcmFtZSBjYWxs
cyBzaG93KCkgZmlyc3QiLAotICAgICAgICBhc3luYyAoKSA9PiB7Ci0gICAgICAgICAgY29uc3Qg
cG9wdXBXaW5kb3cgPSBhd2FpdCBsb2FkUG9wdXBJbnNpZGVVc2VyR2VzdHVyZSgpOwotICAgICAg
ICAgIGNvbnN0IHBvcHVwUmVxdWVzdCA9IG5ldyBwb3B1cFdpbmRvdy5QYXltZW50UmVxdWVzdCht
ZXRob2RzLCBkZXRhaWxzKTsKLSAgICAgICAgICBjb25zdCBwb3B1cFNob3dQcm9taXNlID0gcG9w
dXBSZXF1ZXN0LnNob3coKTsKLSAgICAgICAgICBjb25zdCB3aW5kb3dTaG93UHJvbWlzZSA9IHdp
bmRvd1JlcXVlc3Quc2hvdygpOwotICAgICAgICAgIGNvbnN0IGlmcmFtZVNob3dQcm9taXNlID0g
aWZyYW1lUmVxdWVzdC5zaG93KCk7Ci0gICAgICAgICAgcmV0dXJuIFtwb3B1cFdpbmRvdywKLSAg
ICAgICAgICAgICAgICAgIHBvcHVwUmVxdWVzdCwKLSAgICAgICAgICAgICAgICAgIHBvcHVwU2hv
d1Byb21pc2UsCi0gICAgICAgICAgICAgICAgICB3aW5kb3dTaG93UHJvbWlzZSwKLSAgICAgICAg
ICAgICAgICAgIGlmcmFtZVNob3dQcm9taXNlXTsKKyAgICAgIC8vIFdlIG5hdmlnYXRlIGF3YXks
IGNhdXNpbmcgdGhlIHBheW1lbnQgc2hlZXQgdG8gY2xvc2UKKyAgICAgIC8vIGFuZCB0aGUgcmVx
dWVzdCBpcyBzaG93aW5nIGJvb2xlYW4gdG8gYmVjb21lIGZhbHNlLgorICAgICAgYXdhaXQgbmV3
IFByb21pc2UoKHJlc29sdmUpID0+IHsKKyAgICAgICAgaWZyYW1lLm9ubG9hZCA9IHJlc29sdmU7
CisgICAgICAgIGlmcmFtZS5zcmMgPSAiYmxhbmsuaHRtbD90ZXN0PTEyMyI7CiAgICAgICB9KTsK
IAotICAgICAgLy8gd2luZG93U2hvd1Byb21pc2UgYW5kIGlmcmFtZVJlcXVlc3Qgd2lsbCBib3Ro
IHJlamVjdAotICAgICAgYXdhaXQgcHJvbWlzZV9yZWplY3RzX2RvbSgKLSAgICAgICAgdCwKLSAg
ICAgICAgIkFib3J0RXJyb3IiLAotICAgICAgICB3aW5kb3dTaG93UHJvbWlzZSwKLSAgICAgICAg
IkV4cGVjdGVkIHdpbmRvd1Nob3dQcm9taXNlIHRvIHJlamVjdCwgdGhlIHBvcHVwIGlzIHNob3dp
bmcgYSBwYXltZW50IHJlcXVlc3QuIiwKLSAgICAgICk7Ci0KLSAgICAgIGF3YWl0IHByb21pc2Vf
cmVqZWN0c19kb20oCi0gICAgICAgIHQsCi0gICAgICAgICJBYm9ydEVycm9yIiwKLSAgICAgICAg
aWZyYW1lU2hvd1Byb21pc2UsCi0gICAgICAgICJFeHBlY3RlZCBpZnJhbWVTaG93UHJvbWlzZSB0
byByZWplY3QsIHRoZSBwb3B1cCBpcyBzaG93aW5nIGEgcGF5bWVudCByZXF1ZXN0LiIsCi0gICAg
ICApOwotCi0gICAgICBhd2FpdCBwb3B1cFJlcXVlc3QuYWJvcnQoKTsKLSAgICAgIGF3YWl0IHBy
b21pc2VfcmVqZWN0c19kb20oCi0gICAgICAgIHQsCi0gICAgICAgICJBYm9ydEVycm9yIiwKLSAg
ICAgICAgcG9wdXBTaG93UHJvbWlzZSwKLSAgICAgICAgIkV4cGVjdGVkIHBvcHVwU2hvd1Byb21p
c2UgdG8gYmUgYWJvcnRlZCBieSB0ZXN0LiIsCi0gICAgICApOwotICAgICAgcG9wdXBXaW5kb3cu
Y2xvc2UoKTsKICAgICAgIGlmcmFtZS5yZW1vdmUoKTsKLSAgICB9LCAiR2l2ZW4gbXVsdGlwbGUg
bmVzdGVkIGJyb3dzaW5nIGNvbnRleHRzLCBhbmQgcG9wdXAgY2FsbHMgc2hvdygpIGZpcnN0LCBv
dGhlciBuZXN0ZWQgYnJvd3NpbmcgY29udGV4dHMgY2FuJ3Qgc2hvdyBhIHJlcXVlc3QuIik7Ci0K
LSAgICBwcm9taXNlX3Rlc3QoYXN5bmMgdCA9PiB7Ci0gICAgICBjb25zdCBpZnJhbWUgPSBhd2Fp
dCBhdHRhY2hJZnJhbWUoKTsKLSAgICAgIGNvbnN0IGlmcmFtZVdpbmRvdyA9IGlmcmFtZS5jb250
ZW50V2luZG93OwotCi0gICAgICAvLyBDcmVhdGUgcmVxdWVzdHMKLSAgICAgIGNvbnN0IHdpbmRv
d1JlcXVlc3QgPSBuZXcgd2luZG93LlBheW1lbnRSZXF1ZXN0KG1ldGhvZHMsIGRldGFpbHMpOwot
ICAgICAgY29uc3QgaWZyYW1lUmVxdWVzdCA9IG5ldyBpZnJhbWVXaW5kb3cuUGF5bWVudFJlcXVl
c3QobWV0aG9kcywgZGV0YWlscyk7Ci0KLSAgICAgIGNvbnN0IFtwb3B1cFdpbmRvdywgcG9wdXBS
ZXF1ZXN0XSA9IGF3YWl0IHRlc3RfZHJpdmVyLmJsZXNzKAotICAgICAgICAib3BlbiBwb3B1cCB0
byB0ZXN0IG11bHRpcGxlIGNvbnRleHQgYW5kIGlmcmFtZSBjYWxscyBzaG93KCkgZmlyc3QiLAot
ICAgICAgICBhc3luYyAoKSA9PiB7Ci0gICAgICAgICAgY29uc3QgdyA9IGF3YWl0IGxvYWRQb3B1
cEluc2lkZVVzZXJHZXN0dXJlKCk7Ci0gICAgICAgICAgY29uc3QgciA9IG5ldyB3LlBheW1lbnRS
ZXF1ZXN0KG1ldGhvZHMsIGRldGFpbHMpOwotICAgICAgICAgIHJldHVybiBbdywgcl07Ci0gICAg
ICAgIH0sCi0gICAgICApOwotCi0gICAgICAvLyBHZXQgdGhlIHNob3dQcm9taXNlIGZvciBlYWNo
IGJyb3dzaW5nIGNvbnRleHQuIERvaW5nIHRoaXMgaW4gYSBzZXBhcmF0ZQotICAgICAgLy8gdGVz
dF9kcml2ZXIuYmxlc3MoKSBpcyBpbXBvcnRhbnQgYmVjYXVzZSB0aGUgdXNlciBnZXN0dXJlIGJy
aW5ncwotICAgICAgLy8gfHdpbmRvd3wgdG8gdGhlIGZvcmVncm91bmQsIHNvIHRoYXQgdGhlIHBh
eW1lbnQgc2hlZXQgY2FuIHNob3cuCi0gICAgICBjb25zdCBbCi0gICAgICAgIGlmcmFtZVNob3dQ
cm9taXNlLAotICAgICAgICBwb3B1cFNob3dQcm9taXNlLAotICAgICAgICB3aW5kb3dTaG93UHJv
bWlzZSwKLSAgICAgIF0gPSBhd2FpdCB0ZXN0X2RyaXZlci5ibGVzcygKLSAgICAgICAgInRlc3Qg
bXVsdGlwbGUgYnJvd3NpbmcgY29udGV4dCBhbmQgaWZyYW1lIGNhbGxzIHNob3coKSBmaXJzdCIs
Ci0gICAgICAgIGFzeW5jICgpID0+IHsKLSAgICAgICAgICByZXR1cm4gWwotICAgICAgICAgICAg
aWZyYW1lUmVxdWVzdC5zaG93KCksCi0gICAgICAgICAgICBwb3B1cFJlcXVlc3Quc2hvdygpLAot
ICAgICAgICAgICAgd2luZG93UmVxdWVzdC5zaG93KCksCi0gICAgICAgICAgXTsKLSAgICAgICAg
fSwKLSAgICAgICk7Ci0KLSAgICAgIC8vIHdpbmRvd1Nob3dQcm9taXNlIGFuZCBpZnJhbWVSZXF1
ZXN0IHdpbGwgYm90aCByZWplY3QKLSAgICAgIGF3YWl0IHByb21pc2VfcmVqZWN0c19kb20oCi0g
ICAgICAgIHQsCi0gICAgICAgICJBYm9ydEVycm9yIiwKLSAgICAgICAgd2luZG93U2hvd1Byb21p
c2UsCi0gICAgICAgICJFeHBlY3RlZCB3aW5kb3dTaG93UHJvbWlzZSB0byByZWplY3QsIHRoZSBw
b3B1cCBpcyBzaG93aW5nIGEgcGF5bWVudCByZXF1ZXN0LiIsCi0gICAgICApOwogCisgICAgICAv
LyBOb3cgd2Ugc2hvdWxkIGJlIG9rIHRvIHNwaW4gdXAgYSBuZXcgcGF5bWVudCByZXF1ZXN0Cisg
ICAgICBjb25zdCByZXF1ZXN0ID0gbmV3IHdpbmRvdy5QYXltZW50UmVxdWVzdChtZXRob2RzLCBk
ZXRhaWxzKTsKKyAgICAgIGNvbnN0IFtzaG93UHJvbWlzZV0gPSBhd2FpdCBnZXRTaG93UHJvbWlz
ZUZyb21Db250ZXh0KHJlcXVlc3QpOworICAgICAgYXdhaXQgcmVxdWVzdC5hYm9ydCgpOwogICAg
ICAgYXdhaXQgcHJvbWlzZV9yZWplY3RzX2RvbSgKICAgICAgICAgdCwKICAgICAgICAgIkFib3J0
RXJyb3IiLAotICAgICAgICBwb3B1cFNob3dQcm9taXNlLAotICAgICAgICAiRXhwZWN0ZWQgcG9w
dXBTaG93UHJvbWlzZSB0byByZWplY3QsIHRoZSBwb3B1cCBpcyBzaG93aW5nIGEgcGF5bWVudCBy
ZXF1ZXN0LiIsCi0gICAgICApOwotCi0gICAgICBhd2FpdCBpZnJhbWVSZXF1ZXN0LmFib3J0KCk7
Ci0gICAgICBhd2FpdCBwcm9taXNlX3JlamVjdHNfZG9tKAotICAgICAgICB0LAotICAgICAgICAi
QWJvcnRFcnJvciIsCi0gICAgICAgIGlmcmFtZVNob3dQcm9taXNlLAotICAgICAgICAiRXhwZWN0
ZWQgaWZyYW1lU2hvd1Byb21pc2UgdG8gYmUgYWJvcnRlZCBieSB0ZXN0LiIKLSAgICAgICk7Ci0g
ICAgICBwb3B1cFdpbmRvdy5jbG9zZSgpOwotICAgICAgaWZyYW1lLnJlbW92ZSgpOwotICAgIH0s
ICJHaXZlbiBtdWx0aXBsZSBuZXN0ZWQgYnJvd3NpbmcgY29udGV4dHMsIGFuZCBhbiBpZnJhbWUg
Y2FsbHMgc2hvdygpIGZpcnN0LCBvdGhlciBuZXN0ZWQgYnJvd3NpbmcgY29udGV4dHMgY2FuJ3Qg
c2hvdyBhIHJlcXVlc3QuIik7Ci0KLSAgICBwcm9taXNlX3Rlc3QoYXN5bmMgdCA9PiB7Ci0gICAg
ICBjb25zdCBpZnJhbWUgPSBhd2FpdCBhdHRhY2hJZnJhbWUoKTsKLSAgICAgIGNvbnN0IGlmcmFt
ZVdpbmRvdyA9IGlmcmFtZS5jb250ZW50V2luZG93OwotICAgICAgY29uc3QgaWZyYW1lUmVxdWVz
dCA9IG5ldyBpZnJhbWVXaW5kb3cuUGF5bWVudFJlcXVlc3QobWV0aG9kcywgZGV0YWlscyk7Ci0g
ICAgICBjb25zdCBpZnJhbWVTaG93UHJvbWlzZSA9IHRlc3RfZHJpdmVyLmJsZXNzKAotICAgICAg
ICAidGVzdCBuYXZpZ2F0aW5nIGlmcmFtZSBhZnRlciBzaG93KCkiLAotICAgICAgICAoKSA9PiBp
ZnJhbWVSZXF1ZXN0LnNob3coKSwKLSAgICAgICk7Ci0KLSAgICAgIC8vIFdlIG5hdmlnYXRlIGF3
YXksIGNhdXNpbmcgdGhlIHBheW1lbnQgc2hlZXQgdG8gY2xvc2UKLSAgICAgIC8vIGFuZCB0aGUg
cmVxdWVzdCBpcyBzaG93aW5nIGJvb2xlYW4gdG8gYmVjb21lIGZhbHNlLgotICAgICAgaWZyYW1l
LnNyYyA9ICJibGFuay5odG1sP2FiYz0xMjMiOwotICAgICAgYXdhaXQgbmV3IFByb21pc2UocmVz
b2x2ZSA9PiAoaWZyYW1lLm9ubG9hZCA9IHJlc29sdmUpKTsKLSAgICAgIGF3YWl0IHByb21pc2Vf
cmVqZWN0c19kb20oCi0gICAgICAgIHQsCi0gICAgICAgICJBYm9ydEVycm9yIiwKLSAgICAgICAg
aWZyYW1lU2hvd1Byb21pc2UsCi0gICAgICAgICJOYXZpZ2F0aW5nIGlmcmFtZSBhd2F5IG11c3Qg
Y2F1c2UgdGhlIGlmcmFtZVNob3dQcm9taXNlIHRvIHJlamVjdC4iLAorICAgICAgICBzaG93UHJv
bWlzZSwKKyAgICAgICAgIk5vcm1hbCBhYm9ydC4iCiAgICAgICApOwotICAgICAgaWZyYW1lLnJl
bW92ZSgpOwotCi0gICAgICAvLyBOb3cgd2Ugc2hvdWxkIGJlIG9rIHRvIHNwaW4gdXAgYSBuZXcg
cGF5bWVudCByZXF1ZXN0Ci0gICAgICBjb25zdCByZXF1ZXN0ID0gbmV3IHdpbmRvdy5QYXltZW50
UmVxdWVzdChtZXRob2RzLCBkZXRhaWxzKTsKLSAgICAgIGNvbnN0IFtzaG93UHJvbWlzZV0gPSBh
d2FpdCB0ZXN0X2RyaXZlci5ibGVzcygKLSAgICAgICAgICAic3RhcnQgYSBuZXcgcGF5bWVudCBy
ZXF1ZXN0IiwKLSAgICAgICAgICAoKSA9PiB7Ci0gICAgICAgICAgICByZXR1cm4gW3JlcXVlc3Qu
c2hvdygpXTsKLSAgICAgICAgICB9KTsKLQotICAgICAgLy8gSWYgYSBwYXltZW50IHNoZWV0IGZh
aWxzIHRvIHNob3csIGl0IHNob3VsZCByZWplY3QgaW1tZWRpYXRlbHkuIElmIGl0Ci0gICAgICAv
LyBoYXNuJ3QgcmVqZWN0ZWQgaW4gMSBzZWNvbmQsIHRoZW4gdGhlIHRlc3QgaGFzIHBhc3NlZC4K
LSAgICAgIHQuc3RlcF90aW1lb3V0KGFzeW5jICgpID0+IHsKLSAgICAgICAgLy8gV2UncmUgZG9u
ZS4gQ2xlYW4gdXAuCi0gICAgICAgIGF3YWl0IHJlcXVlc3QuYWJvcnQoKTsKLSAgICAgICAgdC5k
b25lKCk7Ci0gICAgICB9KTsKLQotICAgICAgLy8gSWYgdGhlIG5hdmlnYXRpb24gaW4gaWZyYW1l
IGZhaWxlZCB0byBjbG9zZSB0aGUgb3JpZ2luYWwgcGF5bWVudCBzaGVldAotICAgICAgLy8gdGhl
cmUsIHxzaG93UHJvbWlzZXwgc2hvdWxkIHJlamVjdCBpbW1lZGlhdGVseSBhbmQgdGhpcyBpbmRp
Y2F0ZXMgYQotICAgICAgLy8gZmFpbHVyZSBvZiB0aGlzIHRlc3QuCi0gICAgICBhd2FpdCBzaG93
UHJvbWlzZS50aGVuKCgpID0+IHsKLSAgICAgICAgYXNzZXJ0X3RydWUoZmFsc2UsCi0gICAgICAg
ICAgIlNlY29uZCBwYXltZW50IHNoZWV0IHNob3VsZCBiZSBwZW5kaW5nIGJ1dCBpcyByZXNvbHZl
ZC4iKTsKLSAgICAgIH0pCi0gICAgICAuY2F0Y2goZSA9PiB7Ci0gICAgICAgIGFzc2VydF90cnVl
KGZhbHNlLAotICAgICAgICAgICJTZWNvbmQgcGF5bWVudCBzaGVldCBzaG91bGQgYmUgcGVuZGlu
ZyBidXQgaXMgcmVqZWN0ZWQuIiArIGUubWVzc2FnZSk7Ci0gICAgICB9KTsKICAgICB9LCAiTmF2
aWdhdGluZyBhbiBpZnJhbWUgYXMgYSBuZXN0ZWQgYnJvd3NpbmcgY29udGV4dCBzZXRzICdwYXlt
ZW50IHJlcXVlc3QgaXMgc2hvd2luZyBib29sZWFuJyB0byBmYWxzZS4iKTsKLQotICAgIHByb21p
c2VfdGVzdChhc3luYyB0ID0+IHsKLSAgICAgIGNvbnN0IFtwb3B1cFdpbmRvdywgcG9wdXBSZXF1
ZXN0LCBwb3B1cFNob3dQcm9taXNlXSA9Ci0gICAgICAgIGF3YWl0IHRlc3RfZHJpdmVyLmJsZXNz
KAotICAgICAgICAgICJ0cmlnZ2VyIHBheW1lbnQgaW4gYSBwb3B1cCB3aW5kb3ciLAotICAgICAg
ICAgIGFzeW5jICgpID0+IHsKLSAgICAgICAgICAgIGNvbnN0IHBvcHVwV2luZG93ID0gYXdhaXQg
bG9hZFBvcHVwSW5zaWRlVXNlckdlc3R1cmUoKTsKLSAgICAgICAgICAgIGNvbnN0IHBvcHVwUmVx
dWVzdCA9IG5ldyBwb3B1cFdpbmRvdy5QYXltZW50UmVxdWVzdChtZXRob2RzLCBkZXRhaWxzKTsK
LSAgICAgICAgICAgIHJldHVybiBbcG9wdXBXaW5kb3csIHBvcHVwUmVxdWVzdCwgcG9wdXBSZXF1
ZXN0LnNob3coKV07Ci0gICAgICAgICAgfSk7Ci0KLSAgICAgIC8vIFdlIG5hdmlnYXRlIGF3YXks
IGNhdXNpbmcgdGhlIHBheW1lbnQgc2hlZXQgdG8gY2xvc2UKLSAgICAgIC8vIGFuZCB0aGUgcmVx
dWVzdCBpcyBzaG93aW5nIGJvb2xlYW4gdG8gYmVjb21lIGZhbHNlLgotICAgICAgcG9wdXBXaW5k
b3cubG9jYXRpb24gPSAiYmxhbmsuaHRtbD9hYmM9MTIzIjsKLSAgICAgIGF3YWl0IG5ldyBQcm9t
aXNlKHJlc29sdmUgPT4gKHBvcHVwV2luZG93Lm9ubG9hZCA9IHJlc29sdmUpKTsKLQotICAgICAg
Ly8gRG9uJ3Qgd2FpdCBmb3IgfHBvcHVwU2hvd1Byb21pc2V8IHRvIHJlamVjdCBiZWNhdXNlIGl0
IG1heSBuZXZlciBkbwotICAgICAgLy8gKHNlZSBodHRwczovL2dpdGh1Yi5jb20vdzNjL3BheW1l
bnQtcmVxdWVzdC9pc3N1ZXMvODcyKS4gSW5zdGVhZCwgdHJ5Ci0gICAgICAvLyB0byBzcGluIHVw
IGEgbmV3IHBheW1lbnQgcmVxdWVzdCBhbmQgbWFrZSBzdXJlIGl0IHN1Y2NlZWRzLgotICAgICAg
Y29uc3QgcmVxdWVzdCA9IG5ldyB3aW5kb3cuUGF5bWVudFJlcXVlc3QobWV0aG9kcywgZGV0YWls
cyk7Ci0gICAgICBjb25zdCBbc2hvd1Byb21pc2VdID0gYXdhaXQgdGVzdF9kcml2ZXIuYmxlc3Mo
Ci0gICAgICAgICJ0cmlnZ2VyIHBheW1lbnQgaW4gbWFpbiB3aW5kb3ciLAotICAgICAgICAoKSA9
PiB7Ci0gICAgICAgICAgcmV0dXJuIFtyZXF1ZXN0LnNob3coKV07Ci0gICAgICAgIH0pOwotCi0g
ICAgICAvLyBJZiBhIHBheW1lbnQgc2hlZXQgZmFpbHMgdG8gc2hvdywgaXQgc2hvdWxkIHJlamVj
dCBpbW1lZGlhdGVseS4gSWYgaXQKLSAgICAgIC8vIGhhc24ndCByZWplY3RlZCBpbiAxIHNlY29u
ZCwgdGhlbiB0aGUgdGVzdCBoYXMgcGFzc2VkLgotICAgICAgdC5zdGVwX3RpbWVvdXQoYXN5bmMg
KCkgPT4gewotICAgICAgICAvLyBXZSdyZSBkb25lLiBDbGVhbiB1cC4KLSAgICAgICAgcG9wdXBX
aW5kb3cuY2xvc2UoKTsKLSAgICAgICAgYXdhaXQgcmVxdWVzdC5hYm9ydCgpOwotICAgICAgICB0
LmRvbmUoKTsKLSAgICAgIH0sIDEwMDApOwotCi0gICAgICAvLyBJZiB0aGUgbmF2aWdhdGlvbiBp
biBwb3B1cCB3aW5kb3cgZmFpbGVkIHRvIGNsb3NlIHRoZSBvcmlnaW5hbCBwYXltZW50Ci0gICAg
ICAvLyBzaGVldCB0aGVyZSwgfHNob3dQcm9taXNlfCBzaG91bGQgcmVqZWN0IGltbWVkaWF0ZWx5
IGFuZCB0aGlzIGluZGljYXRlcwotICAgICAgLy8gYSBmYWlsdXJlIG9mIHRoaXMgdGVzdC4KLSAg
ICAgIGF3YWl0IHNob3dQcm9taXNlLnRoZW4oKCkgPT4gewotICAgICAgICBhc3NlcnRfdHJ1ZShm
YWxzZSwKLSAgICAgICAgICAiU2Vjb25kIHBheW1lbnQgc2hlZXQgc2hvdWxkIGJlIHBlbmRpbmcg
YnV0IGlzIHJlc29sdmVkLiIpOwotICAgICAgfSkKLSAgICAgIC5jYXRjaChlID0+IHsKLSAgICAg
ICAgYXNzZXJ0X3RydWUoZmFsc2UsCi0gICAgICAgICAgIlNlY29uZCBwYXltZW50IHNoZWV0IHNo
b3VsZCBiZSBwZW5kaW5nIGJ1dCBpcyByZWplY3RlZC4iKTsKLSAgICAgIH0pOwotICAgIH0sICJO
YXZpZ2F0aW5nIGEgcG9wdXAgYXMgYSBuZXN0ZWQgYnJvd3NpbmcgY29udGV4dCBzZXRzICdwYXlt
ZW50IHJlcXVlc3QgaXMgc2hvd2luZyBib29sZWFuJyB0byBmYWxzZS4iKTsKICAgPC9zY3JpcHQ+
CiA8L2JvZHk+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3BheW1lbnQtcmVxdWVzdC9wYXltZW50LXJlcXVlc3QtY2FubWFrZXBheW1lbnQt
bWV0aG9kLmh0dHBzLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvcGF5bWVudC1yZXF1ZXN0L3BheW1lbnQtcmVxdWVzdC1jYW5tYWtlcGF5
bWVudC1tZXRob2QuaHR0cHMtZXhwZWN0ZWQudHh0CmluZGV4IGI2ODRkNzc4NjVhYWQ0N2Y4NWYx
MzI5YzM1MmE5Y2Q3MTA2M2RiOWYuLjU2NjE4MmYxYzNhODBkZmNmODhjZDEyNGIxZWVlZDllODhi
MWJjYzcgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvcGF5bWVudC1yZXF1ZXN0L3BheW1lbnQtcmVxdWVzdC1jYW5tYWtlcGF5bWVudC1tZXRo
b2QuaHR0cHMtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvcGF5bWVudC1yZXF1ZXN0L3BheW1lbnQtcmVxdWVzdC1jYW5tYWtlcGF5
bWVudC1tZXRob2QuaHR0cHMtZXhwZWN0ZWQudHh0CkBAIC00LDYgKzQsNiBAQCBQQVNTIElmIHBh
eW1lbnQgbWV0aG9kIGlkZW50aWZpZXIgYXJlIHN1cHBvcnRlZCwgcmVzb2x2ZSBwcm9taXNlIHdp
dGggdHJ1ZS4KIFBBU1MgSWYgcmVxdWVzdC5bW3N0YXRlXV0gaXMgImNyZWF0ZWQiLCB0aGVuIHJl
dHVybiBhIHByb21pc2UgdGhhdCByZXNvbHZlcyB0byB0cnVlIGZvciBrbm93biBtZXRob2QuCiBQ
QVNTIEFsbCBtZXRob2RzIGFyZSB1bnN1cHBvcnRlZAogUEFTUyBNaXggb2Ygc3VwcG9ydGVkIGFu
ZCB1bnN1cHBvcnRlZCBtZXRob2RzLCBhdCBsZWFzdCBvbmUgbWV0aG9kIGlzIHN1cHBvcnRlZC4K
LUZBSUwgSWYgcmVxdWVzdC5bW3N0YXRlXV0gaXMgImludGVyYWN0aXZlIiwgdGhlbiByZXR1cm4g
YSBwcm9taXNlIHJlamVjdGVkIHdpdGggYW4gIkludmFsaWRTdGF0ZUVycm9yIiBET01FeGNlcHRp
b24uIGFzc2VydF91bnJlYWNoZWQ6IFNob3VsZCBoYXZlIHJlamVjdGVkOiB1bmRlZmluZWQgUmVh
Y2hlZCB1bnJlYWNoYWJsZSBjb2RlCi1GQUlMIElmIHJlcXVlc3QuW1tzdGF0ZV1dIGlzICJjbG9z
ZWQiLCB0aGVuIHJldHVybiBhIHByb21pc2UgcmVqZWN0ZWQgd2l0aCBhbiAiSW52YWxpZFN0YXRl
RXJyb3IiIERPTUV4Y2VwdGlvbi4gcHJvbWlzZV90ZXN0OiBVbmhhbmRsZWQgcmVqZWN0aW9uIHdp
dGggdmFsdWU6IG9iamVjdCAiSW52YWxpZFN0YXRlRXJyb3I6IFRoZSBvYmplY3QgaXMgaW4gYW4g
aW52YWxpZCBzdGF0ZS4iCitQQVNTIElmIHJlcXVlc3QuW1tzdGF0ZV1dIGlzICJpbnRlcmFjdGl2
ZSIsIHRoZW4gcmV0dXJuIGEgcHJvbWlzZSByZWplY3RlZCB3aXRoIGFuICJJbnZhbGlkU3RhdGVF
cnJvciIgRE9NRXhjZXB0aW9uLgorUEFTUyBJZiByZXF1ZXN0Lltbc3RhdGVdXSBpcyAiY2xvc2Vk
IiwgdGhlbiByZXR1cm4gYSBwcm9taXNlIHJlamVjdGVkIHdpdGggYW4gIkludmFsaWRTdGF0ZUVy
cm9yIiBET01FeGNlcHRpb24uCiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvcGF5bWVudC1yZXF1ZXN0L3BheW1lbnQtcmVxdWVzdC1oYXNl
bnJvbGxlZGluc3RydW1lbnQtbWV0aG9kLnRlbnRhdGl2ZS5odHRwcy1leHBlY3RlZC50eHQgYi9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3BheW1lbnQtcmVxdWVz
dC9wYXltZW50LXJlcXVlc3QtaGFzZW5yb2xsZWRpbnN0cnVtZW50LW1ldGhvZC50ZW50YXRpdmUu
aHR0cHMtZXhwZWN0ZWQudHh0CmluZGV4IDgxYWY2YjE3MDY1YTNmZWI3MDczOTY1YTEzOWE0ZTMy
MjNmODUwNDguLjUzOTFhNWIzYjc4N2E3N2M1ZGQzMTdiZjYyOWE5Y2NkNTZmNmY5OTIgMTAwNjQ0
Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvcGF5bWVu
dC1yZXF1ZXN0L3BheW1lbnQtcmVxdWVzdC1oYXNlbnJvbGxlZGluc3RydW1lbnQtbWV0aG9kLnRl
bnRhdGl2ZS5odHRwcy1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy9wYXltZW50LXJlcXVlc3QvcGF5bWVudC1yZXF1ZXN0LWhhc2Vu
cm9sbGVkaW5zdHJ1bWVudC1tZXRob2QudGVudGF0aXZlLmh0dHBzLWV4cGVjdGVkLnR4dApAQCAt
Miw1ICsyLDUgQEAgSWYgeW91IGZpbmQgYSBidWdneSB0ZXN0LCBwbGVhc2UgZmlsZSBhIGJ1ZyBh
bmQgdGFnIG9uZSBvZiB0aGUgc3VnZ2VzdGVkIHJldmlld2UKIAogRkFJTCBoYXNFbnJvbGxlZElu
c3RydW1lbnQoKSByZXNvbHZlcyB0byBmYWxzZSBmb3IgdW5zdXBwb3J0ZWQgcGF5bWVudCBtZXRo
b2RzLiBwcm9taXNlX3Rlc3Q6IFVuaGFuZGxlZCByZWplY3Rpb24gd2l0aCB2YWx1ZTogb2JqZWN0
ICJUeXBlRXJyb3I6IHJlcXVlc3QuaGFzRW5yb2xsZWRJbnN0cnVtZW50IGlzIG5vdCBhIGZ1bmN0
aW9uLiAoSW4gJ3JlcXVlc3QuaGFzRW5yb2xsZWRJbnN0cnVtZW50KCknLCAncmVxdWVzdC5oYXNF
bnJvbGxlZEluc3RydW1lbnQnIGlzIHVuZGVmaW5lZCkiCiBGQUlMIElmIHJlcXVlc3QuW1tzdGF0
ZV1dIGlzICJpbnRlcmFjdGl2ZSIsIHRoZW4gcmV0dXJuIGEgcHJvbWlzZSByZWplY3RlZCB3aXRo
IGFuICJJbnZhbGlkU3RhdGVFcnJvciIgRE9NRXhjZXB0aW9uLiBwcm9taXNlX3Rlc3Q6IFVuaGFu
ZGxlZCByZWplY3Rpb24gd2l0aCB2YWx1ZTogb2JqZWN0ICJUeXBlRXJyb3I6IHJlcXVlc3QuaGFz
RW5yb2xsZWRJbnN0cnVtZW50IGlzIG5vdCBhIGZ1bmN0aW9uLiAoSW4gJ3JlcXVlc3QuaGFzRW5y
b2xsZWRJbnN0cnVtZW50KCknLCAncmVxdWVzdC5oYXNFbnJvbGxlZEluc3RydW1lbnQnIGlzIHVu
ZGVmaW5lZCkiCi1GQUlMIElmIHJlcXVlc3QuW1tzdGF0ZV1dIGlzICJjbG9zZWQiLCB0aGVuIHJl
dHVybiBhIHByb21pc2UgcmVqZWN0ZWQgd2l0aCBhbiAiSW52YWxpZFN0YXRlRXJyb3IiIERPTUV4
Y2VwdGlvbi4gcHJvbWlzZV90ZXN0OiBVbmhhbmRsZWQgcmVqZWN0aW9uIHdpdGggdmFsdWU6IG9i
amVjdCAiSW52YWxpZFN0YXRlRXJyb3I6IFRoZSBvYmplY3QgaXMgaW4gYW4gaW52YWxpZCBzdGF0
ZS4iCitGQUlMIElmIHJlcXVlc3QuW1tzdGF0ZV1dIGlzICJjbG9zZWQiLCB0aGVuIHJldHVybiBh
IHByb21pc2UgcmVqZWN0ZWQgd2l0aCBhbiAiSW52YWxpZFN0YXRlRXJyb3IiIERPTUV4Y2VwdGlv
bi4gcHJvbWlzZV9yZWplY3RzX2RvbTogZnVuY3Rpb24gImZ1bmN0aW9uICgpIHsgdGhyb3cgZSB9
IiB0aHJldyBvYmplY3QgIk5vdFN1cHBvcnRlZEVycm9yOiBUaGUgb3BlcmF0aW9uIGlzIG5vdCBz
dXBwb3J0ZWQuIiB0aGF0IGlzIG5vdCBhIERPTUV4Y2VwdGlvbiBBYm9ydEVycm9yOiBwcm9wZXJ0
eSAiY29kZSIgaXMgZXF1YWwgdG8gOSwgZXhwZWN0ZWQgMjAKIApkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9wYXltZW50LXJlcXVlc3QvcGF5
bWVudC1yZXF1ZXN0LXNob3ctbWV0aG9kLmh0dHBzLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvcGF5bWVudC1yZXF1ZXN0L3BheW1lbnQt
cmVxdWVzdC1zaG93LW1ldGhvZC5odHRwcy1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNjMyYWMw
MWU1ODA3MTgzYzM4YjFjYzc2NDMxMmY1Y2RiZGRmYjljNAotLS0gL2Rldi9udWxsCisrKyBiL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvcGF5bWVudC1yZXF1ZXN0
L3BheW1lbnQtcmVxdWVzdC1zaG93LW1ldGhvZC5odHRwcy1leHBlY3RlZC50eHQKQEAgLTAsMCAr
MSw4IEBACitJZiB5b3UgZmluZCBhIGJ1Z2d5IHRlc3QsIHBsZWFzZSBmaWxlIGEgYnVnIGFuZCB0
YWcgb25lIG9mIHRoZSBzdWdnZXN0ZWQgcmV2aWV3ZXJzLgorCitQQVNTIENhbGxpbmcgc2hvdygp
IHdpdGhvdXQgYmVpbmcgdHJpZ2dlcmVkIGJ5IHVzZXIgaW50ZXJhY3Rpb24gdGhyb3dzCitQQVNT
IFRocm93cyBpZiB0aGUgcHJvbWlzZSBbW3N0YXRlXV0gaXMgbm90ICdjcmVhdGVkJy4KK1BBU1Mg
SWYgdGhlIHVzZXIgYWdlbnQncyAicGF5bWVudCByZXF1ZXN0IGlzIHNob3dpbmciIGJvb2xlYW4g
aXMgdHJ1ZSwgdGhlbiByZXR1cm4gYSBwcm9taXNlIHJlamVjdGVkIHdpdGggYW4gIkFib3J0RXJy
b3IiIERPTUV4Y2VwdGlvbi4KK1BBU1MgSWYgcGF5bWVudCBtZXRob2QgY29uc3VsdGF0aW9uIHBy
b2R1Y2VzIG5vIHN1cHBvcnRlZCBtZXRob2Qgb2YgcGF5bWVudCwgdGhlbiByZXR1cm4gYSBwcm9t
aXNlIHJlamVjdGVkIHdpdGggYSAiTm90U3VwcG9ydGVkRXJyb3IiIERPTUV4Y2VwdGlvbi4KK1BB
U1MgQ2FsbGluZyBzaG93KCkgbXVsdGlwbGUgdGltZXMgYWx3YXlzIHJldHVybnMgYSBuZXcgcHJv
bWlzZS4KKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy9wYXltZW50LXJlcXVlc3QvcGF5bWVudC1yZXF1ZXN0LXNob3ctbWV0aG9kLmh0dHBz
Lmh0bWwgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3BheW1l
bnQtcmVxdWVzdC9wYXltZW50LXJlcXVlc3Qtc2hvdy1tZXRob2QuaHR0cHMuaHRtbAppbmRleCA5
Nzg4NzIxYWEzNTQ3MmQ0Nzk5YTQ0MjM5MjMwNjYwNzQ3NWFmYWUwLi5hMDMxMjE2OTJiMWE4MTJm
MTZiOTlkMmM0MzRkZWJiNzc1MjRhNGRjIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3BheW1lbnQtcmVxdWVzdC9wYXltZW50LXJlcXVlc3Qt
c2hvdy1tZXRob2QuaHR0cHMuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL3BheW1lbnQtcmVxdWVzdC9wYXltZW50LXJlcXVlc3Qtc2hvdy1tZXRo
b2QuaHR0cHMuaHRtbApAQCAtMzgsMzAgKzM4LDIwIEBAIGNvbnN0IGRlZmF1bHREZXRhaWxzID0g
T2JqZWN0LmZyZWV6ZSh7CiBwcm9taXNlX3Rlc3QoYXN5bmMgKHQpID0+IHsKICAgY29uc3QgcmVx
dWVzdCA9IG5ldyBQYXltZW50UmVxdWVzdChkZWZhdWx0TWV0aG9kcywgZGVmYXVsdERldGFpbHMp
OwogICBjb25zdCBhY2NlcHRQcm9taXNlID0gcmVxdWVzdC5zaG93KCk7Ci0gIC8vIEFib3J0IHRo
ZSByZXF1ZXN0IGFmdGVyIDIgc2Vjb25kcyBpZiBpdCBoYXMgbm90IHJlamVjdGVkLiBUaGlzIGFs
bG93cyB0aGUKLSAgLy8gb3RoZXIgdGVzdHMgaW4gdGhpcyBmaWxlIHRvIHJ1biBldmVuIGlmIGEg
bm9uLWNvbXBsaWFudCBicm93c2VyIHNob3dzIHRoZQotICAvLyBwYXltZW50IHNoZWV0IHdpdGhv
dXQgdXNlciBhY3RpdmF0aW9uLgotICB0LnN0ZXBfdGltZW91dCgoKSA9PiB7Ci0gICAgdC5mb3Jj
ZV90aW1lb3V0KCk7Ci0gICAgcmVxdWVzdC5hYm9ydCgpOwotICB9LCAyMDAwKTsKLQotICBhd2Fp
dCBwcm9taXNlX3JlamVjdHNfZG9tKHQsICJOb3RBbGxvd2VkRXJyb3IiLCBhY2NlcHRQcm9taXNl
KTsKKyAgYXdhaXQgcHJvbWlzZV9yZWplY3RzX2RvbSh0LCAiU2VjdXJpdHlFcnJvciIsIGFjY2Vw
dFByb21pc2UpOwogfSwgYENhbGxpbmcgc2hvdygpIHdpdGhvdXQgYmVpbmcgdHJpZ2dlcmVkIGJ5
IHVzZXIgaW50ZXJhY3Rpb24gdGhyb3dzYCk7CiAKIHByb21pc2VfdGVzdChhc3luYyAodCkgPT4g
ewogICBjb25zdCByZXF1ZXN0ID0gbmV3IFBheW1lbnRSZXF1ZXN0KGRlZmF1bHRNZXRob2RzLCBk
ZWZhdWx0RGV0YWlscyk7Ci0gIGF3YWl0IHRlc3RfZHJpdmVyLmJsZXNzKAotICAgICJ0ZXN0OiB0
aHJvd3MgaWYgdGhlIHByb21pc2UgW1tzdGF0ZV1dIGlzIG5vdCAnY3JlYXRlZCciCi0gICk7Ci0g
IGNvbnN0IGFjY2VwdFByb21pc2UgPSByZXF1ZXN0LnNob3coKTsgLy8gU2V0cyBzdGF0ZSB0byAi
aW50ZXJhY3RpdmUiCi0gIC8vIE5vIHVzZXIgYWN0aXZhdGlvbi4uLgotICBhd2FpdCBwcm9taXNl
X3JlamVjdHNfZG9tKHQsICJOb3RBbGxvd2VkRXJyb3IiLCByZXF1ZXN0LnNob3coKSk7CisgIGF3
YWl0IHByb21pc2VfcmVqZWN0c19kb20odCwgIlNlY3VyaXR5RXJyb3IiLCByZXF1ZXN0LnNob3co
KSk7CiAKLSAgLy8gR2V0IHVzZXIgYWN0aXZhdGlvbgotICBhd2FpdCB0ZXN0X2RyaXZlci5ibGVz
cygKLSAgICAidGVzdDogdGhyb3dzIGlmIHRoZSBwcm9taXNlIFtbc3RhdGVdXSBpcyBub3QgJ2Ny
ZWF0ZWQnIgotICApOworICBhd2FpdCB0ZXN0X2RyaXZlci5ibGVzcygpOworICAvLyBTZXRzIHN0
YXRlIHRvICJpbnRlcmFjdGl2ZSIsIGJ1dCBjb25zdW1lcyB1c2VyIGludGVyYWN0aW9uLgorICBj
b25zdCBhY2NlcHRQcm9taXNlID0gcmVxdWVzdC5zaG93KCk7CisgIGF3YWl0IHByb21pc2VfcmVq
ZWN0c19kb20odCwgIlNlY3VyaXR5RXJyb3IiLCByZXF1ZXN0LnNob3coKSk7CisKKyAgLy8gV2l0
aCB1c2VyIGFjdGl2YXRpb24sIGJ1dCBhbHJlYWR5IHNob3dpbmcgdGhlIHNoZWV0Li4uCisgIGF3
YWl0IHRlc3RfZHJpdmVyLmJsZXNzKCk7CiAgIGF3YWl0IHByb21pc2VfcmVqZWN0c19kb20odCwg
IkludmFsaWRTdGF0ZUVycm9yIiwgcmVxdWVzdC5zaG93KCkpOwogCiAgIGF3YWl0IHJlcXVlc3Qu
YWJvcnQoKTsKQEAgLTcwLDE2ICs2MCwxNSBAQCBwcm9taXNlX3Rlc3QoYXN5bmMgKHQpID0+IHsK
IAogcHJvbWlzZV90ZXN0KGFzeW5jICh0KSA9PiB7CiAgIGNvbnN0IHJlcXVlc3QxID0gbmV3IFBh
eW1lbnRSZXF1ZXN0KGRlZmF1bHRNZXRob2RzLCBkZWZhdWx0RGV0YWlscyk7Ci0gIGNvbnN0IHJl
cXVlc3QyID0gbmV3IFBheW1lbnRSZXF1ZXN0KGRlZmF1bHRNZXRob2RzLCBkZWZhdWx0RGV0YWls
cyk7Ci0KLSAgYXdhaXQgdGVzdF9kcml2ZXIuYmxlc3MoInBheW1lbnQgcmVxdWVzdCIpOworICBh
d2FpdCB0ZXN0X2RyaXZlci5ibGVzcygpOwogICBjb25zdCBhY2NlcHRQcm9taXNlMSA9IHJlcXVl
c3QxLnNob3coKTsKIAogICAvLyBVc2VyIGFjdGl2YXRpb24gY29uc3VtZWQsIHNvLi4uCi0gIGF3
YWl0IHByb21pc2VfcmVqZWN0c19kb20odCwgIk5vdEFsbG93ZWRFcnJvciIsIHJlcXVlc3QyLnNo
b3coKSk7CisgIGNvbnN0IHJlcXVlc3QyID0gbmV3IFBheW1lbnRSZXF1ZXN0KGRlZmF1bHRNZXRo
b2RzLCBkZWZhdWx0RGV0YWlscyk7CisgIGF3YWl0IHByb21pc2VfcmVqZWN0c19kb20odCwgIlNl
Y3VyaXR5RXJyb3IiLCByZXF1ZXN0Mi5zaG93KCkpOwogCiAgIC8vIFBheW1lbnQgcmVxdWVzdCBh
bHJlYWR5IHNob3dpbmcsIHNvLi4uCi0gIGF3YWl0IHRlc3RfZHJpdmVyLmJsZXNzKCJwYXltZW50
IHJlcXVlc3QiKTsKKyAgYXdhaXQgdGVzdF9kcml2ZXIuYmxlc3MoKTsKICAgYXdhaXQgcHJvbWlz
ZV9yZWplY3RzX2RvbSh0LCAiQWJvcnRFcnJvciIsIHJlcXVlc3QyLnNob3coKSk7CiAKICAgYXdh
aXQgcmVxdWVzdDEuYWJvcnQoKTsKQEAgLTkxLDI3ICs4MCwyNyBAQCBwcm9taXNlX3Rlc3QoYXN5
bmMgKHQpID0+IHsKICAgICBbeyBzdXBwb3J0ZWRNZXRob2RzOiAidGhpcy1pcy1ub3Qtc3VwcG9y
dGVkIiB9XSwKICAgICBkZWZhdWx0RGV0YWlscwogICApOwotICBhd2FpdCB0ZXN0X2RyaXZlci5i
bGVzcyhgdGVzdDogcmVqZWN0IHByb21pc2Ugd2l0aCAiTm90U3VwcG9ydGVkRXJyb3IiYCk7Cisg
IGF3YWl0IHRlc3RfZHJpdmVyLmJsZXNzKCk7CiAgIGNvbnN0IGFjY2VwdFByb21pc2UgPSByZXF1
ZXN0LnNob3coKTsKICAgYXdhaXQgcHJvbWlzZV9yZWplY3RzX2RvbSh0LCAiTm90U3VwcG9ydGVk
RXJyb3IiLCBhY2NlcHRQcm9taXNlKTsKIH0sIGBJZiBwYXltZW50IG1ldGhvZCBjb25zdWx0YXRp
b24gcHJvZHVjZXMgbm8gc3VwcG9ydGVkIG1ldGhvZCBvZiBwYXltZW50LCB0aGVuIHJldHVybiBh
IHByb21pc2UgcmVqZWN0ZWQgd2l0aCBhICJOb3RTdXBwb3J0ZWRFcnJvciIgRE9NRXhjZXB0aW9u
LmApOwogCiBwcm9taXNlX3Rlc3QoYXN5bmMgKHQpID0+IHsKICAgY29uc3QgcmVxdWVzdCA9IG5l
dyBQYXltZW50UmVxdWVzdChkZWZhdWx0TWV0aG9kcywgZGVmYXVsdERldGFpbHMpOwotICBhd2Fp
dCB0ZXN0X2RyaXZlci5ibGVzcygiY2FsbCBzaG93KCkiKTsKKyAgYXdhaXQgdGVzdF9kcml2ZXIu
Ymxlc3MoKTsKICAgY29uc3QgcDEgPSByZXF1ZXN0LnNob3coKTsKLSAgYXdhaXQgdGVzdF9kcml2
ZXIuYmxlc3MoImNhbGwgc2hvdygpIik7CisgIGF3YWl0IHRlc3RfZHJpdmVyLmJsZXNzKCk7CiAg
IGNvbnN0IHAyID0gcmVxdWVzdC5zaG93KCk7Ci0gIGF3YWl0IHRlc3RfZHJpdmVyLmJsZXNzKCJj
YWxsIHNob3coKSIpOworICBhd2FpdCB0ZXN0X2RyaXZlci5ibGVzcygpOwogICBjb25zdCBwMyA9
IHJlcXVlc3Quc2hvdygpOworICBhd2FpdCByZXF1ZXN0LmFib3J0KCk7CisKICAgY29uc3QgcHJv
bWlzZXMgPSBuZXcgU2V0KFtwMSwgcDIsIHAzXSk7CiAgIGFzc2VydF9lcXVhbHMocHJvbWlzZXMu
c2l6ZSwgMywgIk11c3QgaGF2ZSB0aHJlZSB1bmlxdWUgb2JqZWN0cyIpOwogCisgIGF3YWl0IHBy
b21pc2VfcmVqZWN0c19kb20odCwgIkFib3J0RXJyb3IiLCBwMSk7CiAgIGF3YWl0IHByb21pc2Vf
cmVqZWN0c19kb20odCwgIkludmFsaWRTdGF0ZUVycm9yIiwgcDIpOwogICBhd2FpdCBwcm9taXNl
X3JlamVjdHNfZG9tKHQsICJJbnZhbGlkU3RhdGVFcnJvciIsIHAzKTsKLQotICBhd2FpdCByZXF1
ZXN0LmFib3J0KCk7Ci0gIGF3YWl0IHByb21pc2VfcmVqZWN0c19kb20odCwgIkFib3J0RXJyb3Ii
LCBwMSk7CiB9LCAiQ2FsbGluZyBzaG93KCkgbXVsdGlwbGUgdGltZXMgYWx3YXlzIHJldHVybnMg
YSBuZXcgcHJvbWlzZS4iKTsKIDwvc2NyaXB0PgogPHNtYWxsPgpAQCAtMTIwLDUgKzEwOSw2IEBA
IHByb21pc2VfdGVzdChhc3luYyAodCkgPT4gewogICB0YWcgb25lIG9mIHRoZQogICA8YQogICAg
IGhyZWY9Imh0dHBzOi8vZ2l0aHViLmNvbS93ZWItcGxhdGZvcm0tdGVzdHMvd3B0L2Jsb2IvbWFz
dGVyL3BheW1lbnQtcmVxdWVzdC9NRVRBLnltbCIKLSAgICA+c3VnZ2VzdGVkIHJldmlld2Vyczwv
YT4uCisgICAgPnN1Z2dlc3RlZCByZXZpZXdlcnM8L2EKKyAgPi4KIDwvc21hbGw+CmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3BheW1lbnQt
cmVxdWVzdC9yZWplY3RzX2lmX25vdF9hY3RpdmUuaHR0cHMuaHRtbCBiL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvcGF5bWVudC1yZXF1ZXN0L3JlamVjdHNfaWZf
bm90X2FjdGl2ZS5odHRwcy5odG1sCmluZGV4IDg5YzM0MDdlM2QwYmM1ZWJhZmMzYzdjMGQwMDE1
MDk5MTI1MWExMzIuLjg0ZjI5OWRiOWJlMWRhNGQ4OTRkZDMyZGIyMmNlMmZjZDY3M2NhZmIgMTAw
NjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvcGF5
bWVudC1yZXF1ZXN0L3JlamVjdHNfaWZfbm90X2FjdGl2ZS5odHRwcy5odG1sCisrKyBiL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvcGF5bWVudC1yZXF1ZXN0L3Jl
amVjdHNfaWZfbm90X2FjdGl2ZS5odHRwcy5odG1sCkBAIC0xLDcgKzEsNyBAQAogPCFET0NUWVBF
IGh0bWw+Ci08bWV0YSBjaGFyc2V0PXV0Zi04PgorPG1ldGEgY2hhcnNldD0idXRmLTgiIC8+CiA8
dGl0bGU+UGF5bWVudFJlcXVlc3Qgc2hvdygpIHJlamVjdHMgaWYgZG9jIGlzIG5vdCBmdWxseSBh
Y3RpdmU8L3RpdGxlPgotPGxpbmsgcmVsPSJoZWxwIiBocmVmPSJodHRwczovL3czYy5naXRodWIu
aW8vcGF5bWVudC1yZXF1ZXN0LyNzaG93LW1ldGhvZCI+Cis8bGluayByZWw9ImhlbHAiIGhyZWY9
Imh0dHBzOi8vdzNjLmdpdGh1Yi5pby9wYXltZW50LXJlcXVlc3QvI3Nob3ctbWV0aG9kIiAvPgog
PHNjcmlwdCBzcmM9Ii9yZXNvdXJjZXMvdGVzdGhhcm5lc3MuanMiPjwvc2NyaXB0PgogPHNjcmlw
dCBzcmM9Ii9yZXNvdXJjZXMvdGVzdGhhcm5lc3NyZXBvcnQuanMiPjwvc2NyaXB0PgogPHNjcmlw
dCBzcmM9Ii9yZXNvdXJjZXMvdGVzdGRyaXZlci5qcyI+PC9zY3JpcHQ+CkBAIC0xNiw3ICsxNiw3
IEBAIGNvbnN0IGFwcGxlUGF5ID0gT2JqZWN0LmZyZWV6ZSh7CiAgICAgY291bnRyeUNvZGU6ICJV
UyIsCiAgICAgbWVyY2hhbnRDYXBhYmlsaXRpZXM6IFsic3VwcG9ydHMzRFMiXSwKICAgICBzdXBw
b3J0ZWROZXR3b3JrczogWyJ2aXNhIl0sCi0gIH0KKyAgfSwKIH0pOwogY29uc3QgdmFsaWRNZXRo
b2QgPSBPYmplY3QuZnJlZXplKHsKICAgc3VwcG9ydGVkTWV0aG9kczogImJhc2ljLWNhcmQiLApA
QCAtMzQsNjQgKzM0LDU2IEBAIGNvbnN0IHZhbGlkRGV0YWlscyA9IE9iamVjdC5mcmVlemUoewog
ICB0b3RhbDogdmFsaWRUb3RhbCwKIH0pOwogCi1mdW5jdGlvbiBnZXRMb2FkZWRQYXltZW50UmVx
dWVzdChpZnJhbWUsIHVybCkgewotICByZXR1cm4gbmV3IFByb21pc2UocmVzb2x2ZSA9PiB7Ci0g
ICAgaWZyYW1lLmFkZEV2ZW50TGlzdGVuZXIoCi0gICAgICAibG9hZCIsCi0gICAgICAoKSA9PiB7
Ci0gICAgICAgIGNvbnN0IHsgUGF5bWVudFJlcXVlc3QgfSA9IGlmcmFtZS5jb250ZW50V2luZG93
OwotICAgICAgICBjb25zdCByZXF1ZXN0ID0gbmV3IFBheW1lbnRSZXF1ZXN0KHZhbGlkTWV0aG9k
cywgdmFsaWREZXRhaWxzKTsKLSAgICAgICAgcmVzb2x2ZShyZXF1ZXN0KTsKLSAgICAgIH0sCi0g
ICAgICB7IG9uY2U6IHRydWUgfQotICAgICk7Cithc3luYyBmdW5jdGlvbiBnZXRMb2FkZWRQYXlt
ZW50UmVxdWVzdChpZnJhbWUsIHVybCkgeworICBhd2FpdCBuZXcgUHJvbWlzZSgocmVzb2x2ZSkg
PT4geworICAgIGlmcmFtZS5hZGRFdmVudExpc3RlbmVyKCJsb2FkIiwgcmVzb2x2ZSwgeyBvbmNl
OiB0cnVlIH0pOwogICAgIGlmcmFtZS5zcmMgPSB1cmw7CiAgIH0pOworICBjb25zdCB7IFBheW1l
bnRSZXF1ZXN0IH0gPSBpZnJhbWUuY29udGVudFdpbmRvdzsKKyAgY29uc3QgcmVxdWVzdCA9IG5l
dyBQYXltZW50UmVxdWVzdCh2YWxpZE1ldGhvZHMsIHZhbGlkRGV0YWlscyk7CisgIHJldHVybiBy
ZXF1ZXN0OwogfQogCi1wcm9taXNlX3Rlc3QoYXN5bmMgdCA9PiB7Citwcm9taXNlX3Rlc3QoYXN5
bmMgKHQpID0+IHsKICAgY29uc3QgaWZyYW1lID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiaWZy
YW1lIik7Ci0gIGlmcmFtZS5hbGxvdyA9ICJwYXltZW50IjsKICAgZG9jdW1lbnQuYm9keS5hcHBl
bmRDaGlsZChpZnJhbWUpOwogICAvLyBNYWtlIGEgcmVxdWVzdCBpbiB0aGUgaWZyYW1lLgogICBj
b25zdCByZXF1ZXN0ID0gYXdhaXQgZ2V0TG9hZGVkUGF5bWVudFJlcXVlc3QoCiAgICAgaWZyYW1l
LAotICAgICIvcGF5bWVudC1yZXF1ZXN0L3Jlc291cmNlcy9wYWdlMS5odG1sIgorICAgICJyZXNv
dXJjZXMvcGFnZTEuaHRtbCIKICAgKTsKLSAgY29uc3QgW3Nob3dQcm9taXNlXSA9IGF3YWl0IHRl
c3RfZHJpdmVyLmJsZXNzKCJzaG93IHBheW1lbnQgcmVxdWVzdCIsICgpID0+IHsKLSAgICByZXR1
cm4gW3JlcXVlc3Quc2hvdygpXTsKLSAgfSk7Ci0gIC8vIE5hdmlnYXRlIHRoZSBpZnJhbWUgdG8g
YSBuZXcgbG9jYXRpb24uIFdhaXQgZm9yIHRoZSBsb2FkIGV2ZW50IHRvIGZpcmUuCi0gIGF3YWl0
IG5ldyBQcm9taXNlKHJlc29sdmUgPT4gewotICAgIGlmcmFtZS5hZGRFdmVudExpc3RlbmVyKCJs
b2FkIiwgcmVzb2x2ZSk7Ci0gICAgaWZyYW1lLnNyYyA9ICIvcGF5bWVudC1yZXF1ZXN0L3Jlc291
cmNlcy9wYWdlMi5odG1sIjsKLSAgICAvLyBBbiBpbXBsZW1lbnRhdGlvbiBtYXkgb3B0aW9uYWxs
eSByZWplY3QgfHNob3dQcm9taXNlfC4KLSAgICBzaG93UHJvbWlzZS5jYXRjaChlID0+IHt9KTsK
LSAgfSk7CisgIGF3YWl0IHRlc3RfZHJpdmVyLmJsZXNzKCJzaG93IHBheW1lbnQgcmVxdWVzdCIp
OworICBjb25zdCBzaG93UHJvbWlzZSA9IHJlcXVlc3Quc2hvdygpOworICBjb25zdCBmaXJzdEN0
b3IgPSBpZnJhbWUuY29udGVudFdpbmRvdy5ET01FeGNlcHRpb247CiAKLSAgLy8gVGhlIG5hdmln
YXRvbiBzaG91bGQgaGF2ZSBkaXNtaXNzZWQgdGhlIHByZXZpb3VzIHBheW1lbnQgcmVxdWVzdCBz
byBpdAotICAvLyBzaG91bGQgYmUgcG9zc2libGUgdG8gc2hvdyBhbm90aGVyIG9uZSBub3cuCi0g
IGNvbnN0IHJlcXVlc3QyID0gbmV3IGlmcmFtZS5jb250ZW50V2luZG93LlBheW1lbnRSZXF1ZXN0
KAotICAgIHZhbGlkTWV0aG9kcywgdmFsaWREZXRhaWxzKTsKLSAgY29uc3QgW3Nob3dQcm9taXNl
Ml0gPSBhd2FpdCB0ZXN0X2RyaXZlci5ibGVzcygKLSAgICAic2hvdyAybmQgcGF5bWVudCByZXF1
ZXN0IiwgKCkgPT4gewotICAgICAgcmV0dXJuIFtyZXF1ZXN0Mi5zaG93KCldOwotICAgIH0pOwor
ICAvLyBOYXZpZ2F0ZSB0aGUgaWZyYW1lIHRvIGEgbmV3IGxvY2F0aW9uLiBXYWl0IGZvciB0aGUg
bG9hZCBldmVudCB0byBmaXJlLgorICBjb25zdCByZXF1ZXN0MiA9IGF3YWl0IGdldExvYWRlZFBh
eW1lbnRSZXF1ZXN0KAorICAgIGlmcmFtZSwKKyAgICAicmVzb3VyY2VzL3BhZ2UyLmh0bWwiCisg
ICk7CiAKLSAgLy8gU3RvcCB0aGUgdGVzdCBpbiAxIHNlY29uZCBpZiBpdCBoYXMgbm90IHJlamVj
dGVkLCB3aGljaCBtZWFucyB0aGF0IGEKLSAgLy8gcGF5bWVudCBzaGVldCBpcyBzdWNjZXNzZnVs
bHkgc2hvd24uCi0gIHQuc3RlcF90aW1lb3V0KGFzeW5jICgpID0+IHsKLSAgICAvLyBXZSBhcmUg
ZG9uZSwgc28gY2xlYW4gdXAuCi0gICAgaWZyYW1lLnJlbW92ZSgpOwotICAgIHQuZG9uZSgpOwot
ICB9LCAxMDAwKTsKKyAgYXdhaXQgcHJvbWlzZV9yZWplY3RzX2RvbSgKKyAgICB0LAorICAgICJB
Ym9ydEVycm9yIiwKKyAgICBmaXJzdEN0b3IsCisgICAgc2hvd1Byb21pc2UsCisgICAgIlNob3cg
cHJvbWlzZSBzaG91bGQgYWJvcnQuIgorICApOwogCi0gIC8vIFRoaXMgc2hvdWxkIG5ldmVyIHNl
dHRsZSBiZWNhdXNlIHRoZSBwYXltZW50IHNoZWV0IHNob3VsZCBiZSBwZW5kaW5nLgotICBhd2Fp
dCBzaG93UHJvbWlzZTIudGhlbigoKSA9PiB7Ci0gICAgYXNzZXJ0X3RydWUoZmFsc2UsICJTZWNv
bmQgcGF5bWVudCBzaG91bGQgYmUgcGVuZGluZyBidXQgaXMgcmVzb2x2ZWQuIik7Ci0gIH0pCi0g
IC5jYXRjaChlID0+IHsKLSAgICBhc3NlcnRfdHJ1ZShmYWxzZSwgIlNlY29uZCBwYXltZW50IHNo
b3VsZCBiZSBwZW5kaW5nIGJ1dCBpcyByZWplY3RlZC4iKTsKLSAgfSk7CisgIC8vIFRoZSBuYXZp
Z2F0aW9uIGRpc21pc3NlcyB0aGUgcHJldmlvdXMgcGF5bWVudCByZXF1ZXN0IHNvIGl0CisgIC8v
IG5vdyBwb3NzaWJsZSB0byBzaG93IGFub3RoZXIgb25lLgorICBhd2FpdCB0ZXN0X2RyaXZlci5i
bGVzcygic2hvdyAybmQgcGF5bWVudCByZXF1ZXN0Iik7CisgIGNvbnN0IHNob3dQcm9taXNlMiA9
IHJlcXVlc3QyLnNob3coKTsKKyAgY29uc3Qgc2Vjb25kQ3RvciA9IGlmcmFtZS5jb250ZW50V2lu
ZG93LkRPTUV4Y2VwdGlvbjsKKyAgLy8gbm8gbG9uZ2VyIGZ1bGx5IGFjdGl2ZQorICBpZnJhbWUu
cmVtb3ZlKCk7CisgIGF3YWl0IHByb21pc2VfcmVqZWN0c19kb20oCisgICAgdCwKKyAgICAiQWJv
cnRFcnJvciIsCisgICAgc2Vjb25kQ3RvciwKKyAgICBzaG93UHJvbWlzZTIsCisgICAgIlNob3cg
cHJvbWlzZSBzaG91bGQgYWJvcnQuIgorICApOwogfSwgIklmIGEgcGF5bWVudCByZXF1ZXN0IGlz
IHNob3dpbmcsIGJ1dCBpdHMgZG9jdW1lbnQgaXMgbmF2aWdhdGVkIGF3YXkgKHNvIG5vIGxvbmdl
ciBmdWxseSBhY3RpdmUpLCB0aGUgcGF5bWVudCBzaGVldCBpcyBkaXNtaXNzZWQuIik7CiA8L3Nj
cmlwdD4KKzwvYm9keT4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvcGF5bWVudC1yZXF1ZXN0L3Nob3ctbWV0aG9kLW9wdGlvbmFsLXByb21p
c2UtcmVqZWN0cy5odHRwcy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL3BheW1lbnQtcmVxdWVzdC9zaG93LW1ldGhvZC1vcHRpb25hbC1w
cm9taXNlLXJlamVjdHMuaHR0cHMtZXhwZWN0ZWQudHh0CmluZGV4IDgwZWQyZmU3Zjg3N2QxM2Uz
YjM4MDdkYzlmNzcwYTIyOTEyZGM4ODAuLmFlZTk2MzZiYTMwMGM0Mjk4ZDRhMGJmNDZkMzgyM2Ex
ZTM1MmI0NzYgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvcGF5bWVudC1yZXF1ZXN0L3Nob3ctbWV0aG9kLW9wdGlvbmFsLXByb21pc2UtcmVq
ZWN0cy5odHRwcy1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy9wYXltZW50LXJlcXVlc3Qvc2hvdy1tZXRob2Qtb3B0aW9uYWwtcHJv
bWlzZS1yZWplY3RzLmh0dHBzLWV4cGVjdGVkLnR4dApAQCAtMSwzMCArMSwxMiBAQAogCi1GQUlM
IFJlamVjdGlvbiBvZiBkZXRhaWxzUHJvbWlzZSBtdXN0IGFib3J0IHRoZSB1cGRhdGUgd2l0aCBh
biAnQWJvcnRFcnJvcicgRE9NRXhjZXB0aW9uLiBwcm9taXNlX3JlamVjdHNfZG9tOiBiYWREZXRh
aWxzIG11c3QgY2F1c2UgYWNjZXB0UHJvbWlzZSB0byByZWplY3Qgd2l0aCBleHBlY3RlZEVycm9y
IGZ1bmN0aW9uICJmdW5jdGlvbiAoKSB7IHRocm93IGUgfSIgdGhyZXcgb2JqZWN0ICJTZWN1cml0
eUVycm9yOiBzaG93KCkgbXVzdCBiZSB0cmlnZ2VyZWQgYnkgdXNlciBhY3RpdmF0aW9uLiIgdGhh
dCBpcyBub3QgYSBET01FeGNlcHRpb24gQWJvcnRFcnJvcjogcHJvcGVydHkgImNvZGUiIGlzIGVx
dWFsIHRvIDE4LCBleHBlY3RlZCAyMAotRkFJTCBUb3RhbCBpbiB0aGUgdXBkYXRlIGlzIGEgc3Ry
aW5nLCBzbyBjb252ZXJ0aW5nIHRvIElETCBtdXN0IGFib3J0IHRoZSB1cGRhdGUgd2l0aCBhIFR5
cGVFcnJvci4gcHJvbWlzZV9yZWplY3RzX2pzOiBiYWREZXRhaWxzIG11c3QgY2F1c2UgYWNjZXB0
UHJvbWlzZSB0byByZWplY3Qgd2l0aCBleHBlY3RlZEVycm9yIGZ1bmN0aW9uICJmdW5jdGlvbiAo
KSB7IHRocm93IGUgfSIgdGhyZXcgb2JqZWN0ICJTZWN1cml0eUVycm9yOiBzaG93KCkgbXVzdCBi
ZSB0cmlnZ2VyZWQgYnkgdXNlciBhY3RpdmF0aW9uLiIgKCJTZWN1cml0eUVycm9yIikgZXhwZWN0
ZWQgaW5zdGFuY2Ugb2YgZnVuY3Rpb24gImZ1bmN0aW9uIFR5cGVFcnJvcigpIHsKLSAgICBbbmF0
aXZlIGNvZGVdCi19IiAoIlR5cGVFcnJvciIpCi1GQUlMIFRvdGFsIGlzIHJlY3Vyc2l2ZSwgc28g
Y29udmVydGluZyB0byBJREwgbXVzdCBhYm9ydCB0aGUgdXBkYXRlIHdpdGggYSBUeXBlRXJyb3Iu
IHByb21pc2VfcmVqZWN0c19qczogYmFkRGV0YWlscyBtdXN0IGNhdXNlIGFjY2VwdFByb21pc2Ug
dG8gcmVqZWN0IHdpdGggZXhwZWN0ZWRFcnJvciBmdW5jdGlvbiAiZnVuY3Rpb24gKCkgeyB0aHJv
dyBlIH0iIHRocmV3IG9iamVjdCAiU2VjdXJpdHlFcnJvcjogc2hvdygpIG11c3QgYmUgdHJpZ2dl
cmVkIGJ5IHVzZXIgYWN0aXZhdGlvbi4iICgiU2VjdXJpdHlFcnJvciIpIGV4cGVjdGVkIGluc3Rh
bmNlIG9mIGZ1bmN0aW9uICJmdW5jdGlvbiBUeXBlRXJyb3IoKSB7Ci0gICAgW25hdGl2ZSBjb2Rl
XQotfSIgKCJUeXBlRXJyb3IiKQotRkFJTCBVcGRhdGluZyB3aXRoIGEgbmVnYXRpdmUgdG90YWwg
cmVzdWx0cyBpbiBhIFR5cGVFcnJvci4gcHJvbWlzZV9yZWplY3RzX2pzOiBiYWREZXRhaWxzIG11
c3QgY2F1c2UgYWNjZXB0UHJvbWlzZSB0byByZWplY3Qgd2l0aCBleHBlY3RlZEVycm9yIGZ1bmN0
aW9uICJmdW5jdGlvbiAoKSB7IHRocm93IGUgfSIgdGhyZXcgb2JqZWN0ICJTZWN1cml0eUVycm9y
OiBzaG93KCkgbXVzdCBiZSB0cmlnZ2VyZWQgYnkgdXNlciBhY3RpdmF0aW9uLiIgKCJTZWN1cml0
eUVycm9yIikgZXhwZWN0ZWQgaW5zdGFuY2Ugb2YgZnVuY3Rpb24gImZ1bmN0aW9uIFR5cGVFcnJv
cigpIHsKLSAgICBbbmF0aXZlIGNvZGVdCi19IiAoIlR5cGVFcnJvciIpCi1GQUlMIFVwZGF0aW5n
IHdpdGggYSBkaXNwbGF5SXRlbSB3aXRoIGFuIGludmFsaWQgY3VycmVuY3kgcmVzdWx0cyBpbiBS
YW5nZUVycm9yLiBwcm9taXNlX3JlamVjdHNfanM6IGJhZERldGFpbHMgbXVzdCBjYXVzZSBhY2Nl
cHRQcm9taXNlIHRvIHJlamVjdCB3aXRoIGV4cGVjdGVkRXJyb3IgZnVuY3Rpb24gImZ1bmN0aW9u
ICgpIHsgdGhyb3cgZSB9IiB0aHJldyBvYmplY3QgIlNlY3VyaXR5RXJyb3I6IHNob3coKSBtdXN0
IGJlIHRyaWdnZXJlZCBieSB1c2VyIGFjdGl2YXRpb24uIiAoIlNlY3VyaXR5RXJyb3IiKSBleHBl
Y3RlZCBpbnN0YW5jZSBvZiBmdW5jdGlvbiAiZnVuY3Rpb24gUmFuZ2VFcnJvcigpIHsKLSAgICBb
bmF0aXZlIGNvZGVdCi19IiAoIlJhbmdlRXJyb3IiKQotRkFJTCBVcGRhdGluZyB3aXRoIGR1cGxp
Y2F0ZSBzaGlwcGluZ09wdGlvbnMgKHNhbWUgSURzKSByZXN1bHRzIGluIGEgVHlwZUVycm9yLiBw
cm9taXNlX3JlamVjdHNfanM6IGJhZERldGFpbHMgbXVzdCBjYXVzZSBhY2NlcHRQcm9taXNlIHRv
IHJlamVjdCB3aXRoIGV4cGVjdGVkRXJyb3IgZnVuY3Rpb24gImZ1bmN0aW9uICgpIHsgdGhyb3cg
ZSB9IiB0aHJldyBvYmplY3QgIlNlY3VyaXR5RXJyb3I6IHNob3coKSBtdXN0IGJlIHRyaWdnZXJl
ZCBieSB1c2VyIGFjdGl2YXRpb24uIiAoIlNlY3VyaXR5RXJyb3IiKSBleHBlY3RlZCBpbnN0YW5j
ZSBvZiBmdW5jdGlvbiAiZnVuY3Rpb24gVHlwZUVycm9yKCkgewotICAgIFtuYXRpdmUgY29kZV0K
LX0iICgiVHlwZUVycm9yIikKLUZBSUwgVXBkYXRpbmcgd2l0aCBhIHNoaXBwaW5nT3B0aW9uIHdp
dGggYW4gaW52YWxpZCBjdXJyZW5jeSB2YWx1ZSByZXN1bHRzIGluIGEgUmFuZ0Vycm9yLiBwcm9t
aXNlX3JlamVjdHNfanM6IGJhZERldGFpbHMgbXVzdCBjYXVzZSBhY2NlcHRQcm9taXNlIHRvIHJl
amVjdCB3aXRoIGV4cGVjdGVkRXJyb3IgZnVuY3Rpb24gImZ1bmN0aW9uICgpIHsgdGhyb3cgZSB9
IiB0aHJldyBvYmplY3QgIlNlY3VyaXR5RXJyb3I6IHNob3coKSBtdXN0IGJlIHRyaWdnZXJlZCBi
eSB1c2VyIGFjdGl2YXRpb24uIiAoIlNlY3VyaXR5RXJyb3IiKSBleHBlY3RlZCBpbnN0YW5jZSBv
ZiBmdW5jdGlvbiAiZnVuY3Rpb24gUmFuZ2VFcnJvcigpIHsKLSAgICBbbmF0aXZlIGNvZGVdCi19
IiAoIlJhbmdlRXJyb3IiKQotRkFJTCBNdXN0IHRocm93IGEgUmFuZ2VFcnJvciB3aGVuIGEgbW9k
aWZpZXIncyB0b3RhbCBpdGVtIGhhcyBhbiBpbnZhbGlkIGN1cnJlbmN5LiBwcm9taXNlX3JlamVj
dHNfanM6IGJhZERldGFpbHMgbXVzdCBjYXVzZSBhY2NlcHRQcm9taXNlIHRvIHJlamVjdCB3aXRo
IGV4cGVjdGVkRXJyb3IgZnVuY3Rpb24gImZ1bmN0aW9uICgpIHsgdGhyb3cgZSB9IiB0aHJldyBv
YmplY3QgIlNlY3VyaXR5RXJyb3I6IHNob3coKSBtdXN0IGJlIHRyaWdnZXJlZCBieSB1c2VyIGFj
dGl2YXRpb24uIiAoIlNlY3VyaXR5RXJyb3IiKSBleHBlY3RlZCBpbnN0YW5jZSBvZiBmdW5jdGlv
biAiZnVuY3Rpb24gUmFuZ2VFcnJvcigpIHsKLSAgICBbbmF0aXZlIGNvZGVdCi19IiAoIlJhbmdl
RXJyb3IiKQotRkFJTCBNdXN0IHRocm93IGEgUmFuZ2VFcnJvciB3aGVuIGEgbW9kaWZpZXIgZGlz
cGxheSBpdGVtIGhhcyBhbiBpbnZhbGlkIGN1cnJlbmN5LiBwcm9taXNlX3JlamVjdHNfanM6IGJh
ZERldGFpbHMgbXVzdCBjYXVzZSBhY2NlcHRQcm9taXNlIHRvIHJlamVjdCB3aXRoIGV4cGVjdGVk
RXJyb3IgZnVuY3Rpb24gImZ1bmN0aW9uICgpIHsgdGhyb3cgZSB9IiB0aHJldyBvYmplY3QgIlNl
Y3VyaXR5RXJyb3I6IHNob3coKSBtdXN0IGJlIHRyaWdnZXJlZCBieSB1c2VyIGFjdGl2YXRpb24u
IiAoIlNlY3VyaXR5RXJyb3IiKSBleHBlY3RlZCBpbnN0YW5jZSBvZiBmdW5jdGlvbiAiZnVuY3Rp
b24gUmFuZ2VFcnJvcigpIHsKLSAgICBbbmF0aXZlIGNvZGVdCi19IiAoIlJhbmdlRXJyb3IiKQot
RkFJTCBNdXN0IHRocm93IGFzIE1vZGlmaWVyIGhhcyBhIHJlY3Vyc2l2ZSBkaWN0aW9uYXJ5LiBw
cm9taXNlX3JlamVjdHNfanM6IGJhZERldGFpbHMgbXVzdCBjYXVzZSBhY2NlcHRQcm9taXNlIHRv
IHJlamVjdCB3aXRoIGV4cGVjdGVkRXJyb3IgZnVuY3Rpb24gImZ1bmN0aW9uICgpIHsgdGhyb3cg
ZSB9IiB0aHJldyBvYmplY3QgIlNlY3VyaXR5RXJyb3I6IHNob3coKSBtdXN0IGJlIHRyaWdnZXJl
ZCBieSB1c2VyIGFjdGl2YXRpb24uIiAoIlNlY3VyaXR5RXJyb3IiKSBleHBlY3RlZCBpbnN0YW5j
ZSBvZiBmdW5jdGlvbiAiZnVuY3Rpb24gVHlwZUVycm9yKCkgewotICAgIFtuYXRpdmUgY29kZV0K
LX0iICgiVHlwZUVycm9yIikKK1BBU1MgUmVqZWN0aW9uIG9mIGRldGFpbHNQcm9taXNlIG11c3Qg
YWJvcnQgdGhlIHVwZGF0ZSB3aXRoIGFuICdBYm9ydEVycm9yJyBET01FeGNlcHRpb24uCitQQVNT
IFRvdGFsIGluIHRoZSB1cGRhdGUgaXMgYSBzdHJpbmcsIHNvIGNvbnZlcnRpbmcgdG8gSURMIG11
c3QgYWJvcnQgdGhlIHVwZGF0ZSB3aXRoIGEgVHlwZUVycm9yLgorUEFTUyBUb3RhbCBpcyByZWN1
cnNpdmUsIHNvIGNvbnZlcnRpbmcgdG8gSURMIG11c3QgYWJvcnQgdGhlIHVwZGF0ZSB3aXRoIGEg
VHlwZUVycm9yLgorUEFTUyBVcGRhdGluZyB3aXRoIGEgbmVnYXRpdmUgdG90YWwgcmVzdWx0cyBp
biBhIFR5cGVFcnJvci4KK1BBU1MgVXBkYXRpbmcgd2l0aCBhIGRpc3BsYXlJdGVtIHdpdGggYW4g
aW52YWxpZCBjdXJyZW5jeSByZXN1bHRzIGluIFJhbmdlRXJyb3IuCitQQVNTIFVwZGF0aW5nIHdp
dGggZHVwbGljYXRlIHNoaXBwaW5nT3B0aW9ucyAoc2FtZSBJRHMpIHJlc3VsdHMgaW4gYSBUeXBl
RXJyb3IuCitQQVNTIFVwZGF0aW5nIHdpdGggYSBzaGlwcGluZ09wdGlvbiB3aXRoIGFuIGludmFs
aWQgY3VycmVuY3kgdmFsdWUgcmVzdWx0cyBpbiBhIFJhbmdFcnJvci4KK1BBU1MgTXVzdCB0aHJv
dyBhIFJhbmdlRXJyb3Igd2hlbiBhIG1vZGlmaWVyJ3MgdG90YWwgaXRlbSBoYXMgYW4gaW52YWxp
ZCBjdXJyZW5jeS4KK1BBU1MgTXVzdCB0aHJvdyBhIFJhbmdlRXJyb3Igd2hlbiBhIG1vZGlmaWVy
IGRpc3BsYXkgaXRlbSBoYXMgYW4gaW52YWxpZCBjdXJyZW5jeS4KK1BBU1MgTXVzdCB0aHJvdyBh
cyBNb2RpZmllciBoYXMgYSByZWN1cnNpdmUgZGljdGlvbmFyeS4KIApkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvcGxhdGZvcm0vaW9zLXdrMi9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L3BheW1lbnQtcmVxdWVzdC9zaG93LW1ldGhvZC1vcHRpb25hbC1wcm9taXNlLXJlamVjdHMuaHR0
cHMtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vaW9zLXdrMi9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3BheW1lbnQtcmVxdWVzdC9zaG93LW1ldGhvZC1vcHRpb25h
bC1wcm9taXNlLXJlamVjdHMuaHR0cHMtZXhwZWN0ZWQudHh0CmRlbGV0ZWQgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCA4MGVkMmZlN2Y4NzdkMTNlM2IzODA3ZGM5Zjc3MGEyMjkxMmRjODgwLi4wMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL3Bs
YXRmb3JtL2lvcy13azIvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9wYXltZW50LXJl
cXVlc3Qvc2hvdy1tZXRob2Qtb3B0aW9uYWwtcHJvbWlzZS1yZWplY3RzLmh0dHBzLWV4cGVjdGVk
LnR4dAorKysgL2Rldi9udWxsCkBAIC0xLDMwICswLDAgQEAKLQotRkFJTCBSZWplY3Rpb24gb2Yg
ZGV0YWlsc1Byb21pc2UgbXVzdCBhYm9ydCB0aGUgdXBkYXRlIHdpdGggYW4gJ0Fib3J0RXJyb3In
IERPTUV4Y2VwdGlvbi4gcHJvbWlzZV9yZWplY3RzX2RvbTogYmFkRGV0YWlscyBtdXN0IGNhdXNl
IGFjY2VwdFByb21pc2UgdG8gcmVqZWN0IHdpdGggZXhwZWN0ZWRFcnJvciBmdW5jdGlvbiAiZnVu
Y3Rpb24gKCkgeyB0aHJvdyBlIH0iIHRocmV3IG9iamVjdCAiU2VjdXJpdHlFcnJvcjogc2hvdygp
IG11c3QgYmUgdHJpZ2dlcmVkIGJ5IHVzZXIgYWN0aXZhdGlvbi4iIHRoYXQgaXMgbm90IGEgRE9N
RXhjZXB0aW9uIEFib3J0RXJyb3I6IHByb3BlcnR5ICJjb2RlIiBpcyBlcXVhbCB0byAxOCwgZXhw
ZWN0ZWQgMjAKLUZBSUwgVG90YWwgaW4gdGhlIHVwZGF0ZSBpcyBhIHN0cmluZywgc28gY29udmVy
dGluZyB0byBJREwgbXVzdCBhYm9ydCB0aGUgdXBkYXRlIHdpdGggYSBUeXBlRXJyb3IuIHByb21p
c2VfcmVqZWN0c19qczogYmFkRGV0YWlscyBtdXN0IGNhdXNlIGFjY2VwdFByb21pc2UgdG8gcmVq
ZWN0IHdpdGggZXhwZWN0ZWRFcnJvciBmdW5jdGlvbiAiZnVuY3Rpb24gKCkgeyB0aHJvdyBlIH0i
IHRocmV3IG9iamVjdCAiU2VjdXJpdHlFcnJvcjogc2hvdygpIG11c3QgYmUgdHJpZ2dlcmVkIGJ5
IHVzZXIgYWN0aXZhdGlvbi4iICgiU2VjdXJpdHlFcnJvciIpIGV4cGVjdGVkIGluc3RhbmNlIG9m
IGZ1bmN0aW9uICJmdW5jdGlvbiBUeXBlRXJyb3IoKSB7Ci0gICAgW25hdGl2ZSBjb2RlXQotfSIg
KCJUeXBlRXJyb3IiKQotRkFJTCBUb3RhbCBpcyByZWN1cnNpdmUsIHNvIGNvbnZlcnRpbmcgdG8g
SURMIG11c3QgYWJvcnQgdGhlIHVwZGF0ZSB3aXRoIGEgVHlwZUVycm9yLiBwcm9taXNlX3JlamVj
dHNfanM6IGJhZERldGFpbHMgbXVzdCBjYXVzZSBhY2NlcHRQcm9taXNlIHRvIHJlamVjdCB3aXRo
IGV4cGVjdGVkRXJyb3IgZnVuY3Rpb24gImZ1bmN0aW9uICgpIHsgdGhyb3cgZSB9IiB0aHJldyBv
YmplY3QgIlNlY3VyaXR5RXJyb3I6IHNob3coKSBtdXN0IGJlIHRyaWdnZXJlZCBieSB1c2VyIGFj
dGl2YXRpb24uIiAoIlNlY3VyaXR5RXJyb3IiKSBleHBlY3RlZCBpbnN0YW5jZSBvZiBmdW5jdGlv
biAiZnVuY3Rpb24gVHlwZUVycm9yKCkgewotICAgIFtuYXRpdmUgY29kZV0KLX0iICgiVHlwZUVy
cm9yIikKLUZBSUwgVXBkYXRpbmcgd2l0aCBhIG5lZ2F0aXZlIHRvdGFsIHJlc3VsdHMgaW4gYSBU
eXBlRXJyb3IuIHByb21pc2VfcmVqZWN0c19qczogYmFkRGV0YWlscyBtdXN0IGNhdXNlIGFjY2Vw
dFByb21pc2UgdG8gcmVqZWN0IHdpdGggZXhwZWN0ZWRFcnJvciBmdW5jdGlvbiAiZnVuY3Rpb24g
KCkgeyB0aHJvdyBlIH0iIHRocmV3IG9iamVjdCAiU2VjdXJpdHlFcnJvcjogc2hvdygpIG11c3Qg
YmUgdHJpZ2dlcmVkIGJ5IHVzZXIgYWN0aXZhdGlvbi4iICgiU2VjdXJpdHlFcnJvciIpIGV4cGVj
dGVkIGluc3RhbmNlIG9mIGZ1bmN0aW9uICJmdW5jdGlvbiBUeXBlRXJyb3IoKSB7Ci0gICAgW25h
dGl2ZSBjb2RlXQotfSIgKCJUeXBlRXJyb3IiKQotRkFJTCBVcGRhdGluZyB3aXRoIGEgZGlzcGxh
eUl0ZW0gd2l0aCBhbiBpbnZhbGlkIGN1cnJlbmN5IHJlc3VsdHMgaW4gUmFuZ2VFcnJvci4gcHJv
bWlzZV9yZWplY3RzX2pzOiBiYWREZXRhaWxzIG11c3QgY2F1c2UgYWNjZXB0UHJvbWlzZSB0byBy
ZWplY3Qgd2l0aCBleHBlY3RlZEVycm9yIGZ1bmN0aW9uICJmdW5jdGlvbiAoKSB7IHRocm93IGUg
fSIgdGhyZXcgb2JqZWN0ICJTZWN1cml0eUVycm9yOiBzaG93KCkgbXVzdCBiZSB0cmlnZ2VyZWQg
YnkgdXNlciBhY3RpdmF0aW9uLiIgKCJTZWN1cml0eUVycm9yIikgZXhwZWN0ZWQgaW5zdGFuY2Ug
b2YgZnVuY3Rpb24gImZ1bmN0aW9uIFJhbmdlRXJyb3IoKSB7Ci0gICAgW25hdGl2ZSBjb2RlXQot
fSIgKCJSYW5nZUVycm9yIikKLUZBSUwgVXBkYXRpbmcgd2l0aCBkdXBsaWNhdGUgc2hpcHBpbmdP
cHRpb25zIChzYW1lIElEcykgcmVzdWx0cyBpbiBhIFR5cGVFcnJvci4gcHJvbWlzZV9yZWplY3Rz
X2pzOiBiYWREZXRhaWxzIG11c3QgY2F1c2UgYWNjZXB0UHJvbWlzZSB0byByZWplY3Qgd2l0aCBl
eHBlY3RlZEVycm9yIGZ1bmN0aW9uICJmdW5jdGlvbiAoKSB7IHRocm93IGUgfSIgdGhyZXcgb2Jq
ZWN0ICJTZWN1cml0eUVycm9yOiBzaG93KCkgbXVzdCBiZSB0cmlnZ2VyZWQgYnkgdXNlciBhY3Rp
dmF0aW9uLiIgKCJTZWN1cml0eUVycm9yIikgZXhwZWN0ZWQgaW5zdGFuY2Ugb2YgZnVuY3Rpb24g
ImZ1bmN0aW9uIFR5cGVFcnJvcigpIHsKLSAgICBbbmF0aXZlIGNvZGVdCi19IiAoIlR5cGVFcnJv
ciIpCi1GQUlMIFVwZGF0aW5nIHdpdGggYSBzaGlwcGluZ09wdGlvbiB3aXRoIGFuIGludmFsaWQg
Y3VycmVuY3kgdmFsdWUgcmVzdWx0cyBpbiBhIFJhbmdFcnJvci4gcHJvbWlzZV9yZWplY3RzX2pz
OiBiYWREZXRhaWxzIG11c3QgY2F1c2UgYWNjZXB0UHJvbWlzZSB0byByZWplY3Qgd2l0aCBleHBl
Y3RlZEVycm9yIGZ1bmN0aW9uICJmdW5jdGlvbiAoKSB7IHRocm93IGUgfSIgdGhyZXcgb2JqZWN0
ICJTZWN1cml0eUVycm9yOiBzaG93KCkgbXVzdCBiZSB0cmlnZ2VyZWQgYnkgdXNlciBhY3RpdmF0
aW9uLiIgKCJTZWN1cml0eUVycm9yIikgZXhwZWN0ZWQgaW5zdGFuY2Ugb2YgZnVuY3Rpb24gImZ1
bmN0aW9uIFJhbmdlRXJyb3IoKSB7Ci0gICAgW25hdGl2ZSBjb2RlXQotfSIgKCJSYW5nZUVycm9y
IikKLUZBSUwgTXVzdCB0aHJvdyBhIFJhbmdlRXJyb3Igd2hlbiBhIG1vZGlmaWVyJ3MgdG90YWwg
aXRlbSBoYXMgYW4gaW52YWxpZCBjdXJyZW5jeS4gcHJvbWlzZV9yZWplY3RzX2pzOiBiYWREZXRh
aWxzIG11c3QgY2F1c2UgYWNjZXB0UHJvbWlzZSB0byByZWplY3Qgd2l0aCBleHBlY3RlZEVycm9y
IGZ1bmN0aW9uICJmdW5jdGlvbiAoKSB7IHRocm93IGUgfSIgdGhyZXcgb2JqZWN0ICJTZWN1cml0
eUVycm9yOiBzaG93KCkgbXVzdCBiZSB0cmlnZ2VyZWQgYnkgdXNlciBhY3RpdmF0aW9uLiIgKCJT
ZWN1cml0eUVycm9yIikgZXhwZWN0ZWQgaW5zdGFuY2Ugb2YgZnVuY3Rpb24gImZ1bmN0aW9uIFJh
bmdlRXJyb3IoKSB7Ci0gICAgW25hdGl2ZSBjb2RlXQotfSIgKCJSYW5nZUVycm9yIikKLUZBSUwg
TXVzdCB0aHJvdyBhIFJhbmdlRXJyb3Igd2hlbiBhIG1vZGlmaWVyIGRpc3BsYXkgaXRlbSBoYXMg
YW4gaW52YWxpZCBjdXJyZW5jeS4gcHJvbWlzZV9yZWplY3RzX2pzOiBiYWREZXRhaWxzIG11c3Qg
Y2F1c2UgYWNjZXB0UHJvbWlzZSB0byByZWplY3Qgd2l0aCBleHBlY3RlZEVycm9yIGZ1bmN0aW9u
ICJmdW5jdGlvbiAoKSB7IHRocm93IGUgfSIgdGhyZXcgb2JqZWN0ICJTZWN1cml0eUVycm9yOiBz
aG93KCkgbXVzdCBiZSB0cmlnZ2VyZWQgYnkgdXNlciBhY3RpdmF0aW9uLiIgKCJTZWN1cml0eUVy
cm9yIikgZXhwZWN0ZWQgaW5zdGFuY2Ugb2YgZnVuY3Rpb24gImZ1bmN0aW9uIFJhbmdlRXJyb3Io
KSB7Ci0gICAgW25hdGl2ZSBjb2RlXQotfSIgKCJSYW5nZUVycm9yIikKLUZBSUwgTXVzdCB0aHJv
dyBhcyBNb2RpZmllciBoYXMgYSByZWN1cnNpdmUgZGljdGlvbmFyeS4gcHJvbWlzZV9yZWplY3Rz
X2pzOiBiYWREZXRhaWxzIG11c3QgY2F1c2UgYWNjZXB0UHJvbWlzZSB0byByZWplY3Qgd2l0aCBl
eHBlY3RlZEVycm9yIGZ1bmN0aW9uICJmdW5jdGlvbiAoKSB7IHRocm93IGUgfSIgdGhyZXcgb2Jq
ZWN0ICJTZWN1cml0eUVycm9yOiBzaG93KCkgbXVzdCBiZSB0cmlnZ2VyZWQgYnkgdXNlciBhY3Rp
dmF0aW9uLiIgKCJTZWN1cml0eUVycm9yIikgZXhwZWN0ZWQgaW5zdGFuY2Ugb2YgZnVuY3Rpb24g
ImZ1bmN0aW9uIFR5cGVFcnJvcigpIHsKLSAgICBbbmF0aXZlIGNvZGVdCi19IiAoIlR5cGVFcnJv
ciIpCi0K
</data>

          </attachment>
      

    </bug>

</bugzilla>