<?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>92037</bug_id>
          
          <creation_ts>2012-07-23 15:30:54 -0700</creation_ts>
          <short_desc>IndexedDB: Refactor layout tests to accomodate new versioning API</short_desc>
          <delta_ts>2012-07-25 10:54:04 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>New Bugs</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>WONTFIX</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Joshua Bell">jsbell</reporter>
          <assigned_to name="Joshua Bell">jsbell</assigned_to>
          <cc>alecflett</cc>
    
    <cc>dgrogan</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>676080</commentid>
    <comment_count>0</comment_count>
    <who name="Joshua Bell">jsbell</who>
    <bug_when>2012-07-23 15:30:54 -0700</bug_when>
    <thetext>IndexedDB: Refactor layout tests to accomodate new versioning API</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>676093</commentid>
    <comment_count>1</comment_count>
      <attachid>153878</attachid>
    <who name="Joshua Bell">jsbell</who>
    <bug_when>2012-07-23 15:39:21 -0700</bug_when>
    <thetext>Created attachment 153878
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>676099</commentid>
    <comment_count>2</comment_count>
    <who name="Joshua Bell">jsbell</who>
    <bug_when>2012-07-23 15:43:24 -0700</bug_when>
    <thetext>Here&apos;s the first batch. I didn&apos;t touch anything &quot;tricky&quot;, i.e. that had multiple setVersion calls.

Still not sure if this is the best thing to do, since it hides some of the details of the test logic. An alternate approach would be to shim the new open/upgradeneeded API as part of removeVendorPrefixes, so the shim can be removed when the new API lands.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>676128</commentid>
    <comment_count>3</comment_count>
    <who name="Alec Flett">alecflett</who>
    <bug_when>2012-07-23 16:03:09 -0700</bug_when>
    <thetext>Could we make use of this? http://blog.nparashuram.com/2012/05/indexeddb-setversion-vs-onupgradeneeded.html

I mean we might temporarily be depending on bugs there, but it may save a lot of headache during the transition.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>676137</commentid>
    <comment_count>4</comment_count>
    <who name="Alec Flett">alecflett</who>
    <bug_when>2012-07-23 16:13:17 -0700</bug_when>
    <thetext>This is really nice. The automatic removal of the old db/etc really cleans stuff up!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>676143</commentid>
    <comment_count>5</comment_count>
      <attachid>153878</attachid>
    <who name="Alec Flett">alecflett</who>
    <bug_when>2012-07-23 16:22:14 -0700</bug_when>
    <thetext>Comment on attachment 153878
Patch

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

&gt; LayoutTests/storage/indexeddb/mozilla/resources/key-requirements.js:14
&gt;  function cleanDatabase()

for future cleanup, seems like these &apos;cleanDatabase&apos;s and similar &apos;setup&apos; style functions in the tests could be better named, now that indexedDBTest() tends to do most of the &apos;cleaning&apos;. 

don&apos;t worry about it now, I think they&apos;re kind of scattered all over.

&gt; LayoutTests/storage/indexeddb/mozilla/resources/odd-result-order.js:17
&gt; +    shouldBeTrue(&quot;db instanceof IDBDatabase&quot;);

this just seems like redundant checks adding noise to the test

&gt; LayoutTests/storage/indexeddb/resources/key-generator.js:38
&gt; +        indexedDBTest(

Makes me wish for some kind of promises system so we could easily chain indexedDB test stuff together. (which obviously we&apos;ve talked about before...) 

I&apos;ll do some research to see how folks like node.js chain async tests together.

Overall, LGTM - it also makes me think that for some of these tests what we just want is an easy way to specify the full database schema:

indexedDBTest({objectStores: [{name: &quot;foo&quot;, &quot;keyPath&quot;: &quot;abc&quot;, autoIncrement: true, &quot;indexes&quot;: [{&quot;name&quot;: &quot;bar&quot;, &quot;keyPath&quot;: bar&quot;}]}]}, nowTestMyStuff);</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>676170</commentid>
    <comment_count>6</comment_count>
    <who name="Joshua Bell">jsbell</who>
    <bug_when>2012-07-23 16:46:05 -0700</bug_when>
    <thetext>(In reply to comment #3)
&gt; Could we make use of this? http://blog.nparashuram.com/2012/05/indexeddb-setversion-vs-onupgradeneeded.html
&gt; 
&gt; I mean we might temporarily be depending on bugs there, but it may save a lot of headache during the transition.

That&apos;s basically what this patch does - hides the versioning behind a helper function. 

(In reply to comment #5)
&gt; for future cleanup, seems like these &apos;cleanDatabase&apos;s and similar &apos;setup&apos; style functions in the tests could be better named, now that indexedDBTest() tends to do most of the &apos;cleaning&apos;. 

Agreed - I tried to leave the names as-is for now.
 
&gt; &gt; LayoutTests/storage/indexeddb/mozilla/resources/odd-result-order.js:17
&gt; &gt; +    shouldBeTrue(&quot;db instanceof IDBDatabase&quot;);
&gt; 
&gt; this just seems like redundant checks adding noise to the test

Yeah, not sure where that came from.
 
&gt; Overall, LGTM - it also makes me think that for some of these tests what we just want is an easy way to specify the full database schema:
&gt; 
&gt; indexedDBTest({objectStores: [{name: &quot;foo&quot;, &quot;keyPath&quot;: &quot;abc&quot;, autoIncrement: true, &quot;indexes&quot;: [{&quot;name&quot;: &quot;bar&quot;, &quot;keyPath&quot;: bar&quot;}]}]}, nowTestMyStuff);

I actually want to avoid going in that direction - IMHO the layout tests should minimize use of helpers outside the assertion framework, so that someone unfamiliar the helpers can pick up a test and read it without surprises. The helpers (e.g. shouldBe, evalAndExpectException, etc) are self-describing, and the rest is just standard JS and (in our case) IDB.

After further thinking, this leads me towards preferring the approach in:

https://bugs.webkit.org/show_bug.cgi?id=92044

... which could be basically seen as &quot;move tests over to &apos;upgradeneeded&apos; in preparation for deprecating the old API&quot;. The newer API is inherently cleaner, so we get some test cleanup benefit out of it.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>678236</commentid>
    <comment_count>7</comment_count>
    <who name="Joshua Bell">jsbell</who>
    <bug_when>2012-07-25 10:54:04 -0700</bug_when>
    <thetext>Abandoning this approach in favor of https://bugs.webkit.org/show_bug.cgi?id=92044 (which is also tabled).</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>153878</attachid>
            <date>2012-07-23 15:39:21 -0700</date>
            <delta_ts>2012-07-23 16:46:13 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-92037-20120723153913.patch</filename>
            <type>text/plain</type>
            <size>316539</size>
            <attacher name="Joshua Bell">jsbell</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTIzMjQ1CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFu
Z2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggNWQzNzgzN2E0M2ZkZDUyZGZjNThl
ZDVkNGViOWE3MmQ5OWM4ZGUxMC4uZTJiMjA1ZTFiY2IyNDM1ZTBkZGJhMjU3ODBhMWM5M2E5YThk
ZGU4YiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3Rz
L0NoYW5nZUxvZwpAQCAtMSwzICsxLDIzNyBAQAorMjAxMi0wNy0yMyAgSm9zaHVhIEJlbGwgIDxq
c2JlbGxAY2hyb21pdW0ub3JnPgorCisgICAgICAgIEluZGV4ZWREQjogUmVmYWN0b3IgbGF5b3V0
IHRlc3RzIHRvIGFjY29tb2RhdGUgbmV3IHZlcnNpb25pbmcgQVBJCisgICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD05MjAzNworCisgICAgICAgIFJldmlld2Vk
IGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFRoZSBJREIgdmVyc2lvbmluZyBtZWNoYW5p
c20gZGVmaW5lZCBpbiB0aGUgc3BlYyBoYXMgY2hhbmdlZCBzaW5jZSB0aGUgV2ViS2l0CisgICAg
ICAgIGltcGxlbWVudGF0aW9uLCBmcm9tIGEgdHdvLXN0ZXAgb3BlbigpIC8gc2V0VmVyc2lvbigp
IHByb2Nlc3MgdG8gc2ltcGx5IGluY2x1ZGluZworICAgICAgICB0aGUgdmVyc2lvbiBpbiB0aGUg
b3BlbigpIGNhbGwuIFdoaWxlIHdlIHBsYW4gdG8gc3VwcG9ydCBib3RoIGZvciBhIHRyYW5zaXRp
b24KKyAgICAgICAgcGVyaW9kLCB2ZXJpZnlpbmcgdGhlIG5ldyBiZWhhdmlvciB3aGVuIGl0IGxh
bmRzIGFuZCBjb21wYXJpbmcgdGVzdCByZXN1bHRzIGFnYWluc3QKKyAgICAgICAgb3RoZXIgaW1w
bGVtZW50YXRpb25zICh3aGljaCBvbmx5IGltcGxlbWVudCB0aGUgbmV3IFVJKSBpcyBkZXNpcmFi
bGUuCisKKyAgICAgICAgVGhpcyBwYXRjaCBpbnRyb2R1Y2VzIGEgaGVscGVyIGZvciBJbmRleGVk
REIgdGVzdHMgd2hpY2ggaGFuZGxlcyB0aGUgdmVyc2lvbmluZywKKyAgICAgICAgYWxsb3dpbmcg
dGVzdHMgdG8gYmUgcnVuIHVzaW5nIGJvdGggdGhlIG9sZCBhbmQgbmV3IEFQSS4gTm90ZSB0aGF0
IHRoZSBleHBlY3RhdGlvbnMKKyAgICAgICAgZmlsZXMgd2lsbCBzdGlsbCBuZWVkIHRvIGJlIHVw
ZGF0ZWQuCisKKyAgICAgICAgKiBzdG9yYWdlL2luZGV4ZWRkYi9jcmVhdGUtb2JqZWN0LXN0b3Jl
LW9wdGlvbnMtZXhwZWN0ZWQudHh0OgorICAgICAgICAqIHN0b3JhZ2UvaW5kZXhlZGRiL2NyZWF0
ZU9iamVjdFN0b3JlLW5hbWUtYXJndW1lbnQtcmVxdWlyZWQtZXhwZWN0ZWQudHh0OgorICAgICAg
ICAqIHN0b3JhZ2UvaW5kZXhlZGRiL2NyZWF0ZU9iamVjdFN0b3JlLW51bGwtbmFtZS1leHBlY3Rl
ZC50eHQ6CisgICAgICAgICogc3RvcmFnZS9pbmRleGVkZGIvY3Vyc29yLWFkZGVkLWJ1Zy1leHBl
Y3RlZC50eHQ6CisgICAgICAgICogc3RvcmFnZS9pbmRleGVkZGIvY3Vyc29yLWFkdmFuY2UtZXhw
ZWN0ZWQudHh0OgorICAgICAgICAqIHN0b3JhZ2UvaW5kZXhlZGRiL2N1cnNvci1jb250aW51ZS1l
eHBlY3RlZC50eHQ6CisgICAgICAgICogc3RvcmFnZS9pbmRleGVkZGIvY3Vyc29yLWNvbnRpbnVl
LXZhbGlkaXR5LWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiBzdG9yYWdlL2luZGV4ZWRkYi9jdXJz
b3ItZGVsZXRlLWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiBzdG9yYWdlL2luZGV4ZWRkYi9jdXJz
b3ItaW5jb25zaXN0ZW5jeS1leHBlY3RlZC50eHQ6CisgICAgICAgICogc3RvcmFnZS9pbmRleGVk
ZGIvY3Vyc29yLWluZGV4LWRlbGV0ZS1leHBlY3RlZC50eHQ6CisgICAgICAgICogc3RvcmFnZS9p
bmRleGVkZGIvY3Vyc29yLWtleS1vcmRlci1leHBlY3RlZC50eHQ6CisgICAgICAgICogc3RvcmFn
ZS9pbmRleGVkZGIvY3Vyc29yLW92ZXJsb2Fkcy1leHBlY3RlZC50eHQ6CisgICAgICAgICogc3Rv
cmFnZS9pbmRleGVkZGIvY3Vyc29yLW92ZXJsb2Fkcy5odG1sOgorICAgICAgICAqIHN0b3JhZ2Uv
aW5kZXhlZGRiL2N1cnNvci1wcmV2LW5vLWR1cGxpY2F0ZS1leHBlY3RlZC50eHQ6CisgICAgICAg
ICogc3RvcmFnZS9pbmRleGVkZGIvY3Vyc29yLXByaW1hcnkta2V5LW9yZGVyLWV4cGVjdGVkLnR4
dDoKKyAgICAgICAgKiBzdG9yYWdlL2luZGV4ZWRkYi9jdXJzb3ItcmV2ZXJzZS1idWctZXhwZWN0
ZWQudHh0OgorICAgICAgICAqIHN0b3JhZ2UvaW5kZXhlZGRiL2N1cnNvci1za2lwLWRlbGV0ZWQt
ZXhwZWN0ZWQudHh0OgorICAgICAgICAqIHN0b3JhZ2UvaW5kZXhlZGRiL2N1cnNvci11cGRhdGUt
ZXhwZWN0ZWQudHh0OgorICAgICAgICAqIHN0b3JhZ2UvaW5kZXhlZGRiL2N1cnNvci11cGRhdGUt
dmFsdWUtYXJndW1lbnQtcmVxdWlyZWQtZXhwZWN0ZWQudHh0OgorICAgICAgICAqIHN0b3JhZ2Uv
aW5kZXhlZGRiL2N1cnNvci12YWx1ZS1leHBlY3RlZC50eHQ6CisgICAgICAgICogc3RvcmFnZS9p
bmRleGVkZGIvZGF0YS1jb3JydXB0aW9uLWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiBzdG9yYWdl
L2luZGV4ZWRkYi9kZWxldGUtcmFuZ2UtZXhwZWN0ZWQudHh0OgorICAgICAgICAqIHN0b3JhZ2Uv
aW5kZXhlZGRiL2RlbGV0ZUluZGV4LWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiBzdG9yYWdlL2lu
ZGV4ZWRkYi9kZWxldGVPYmplY3RTdG9yZS1uYW1lLWFyZ3VtZW50LXJlcXVpcmVkLWV4cGVjdGVk
LnR4dDoKKyAgICAgICAgKiBzdG9yYWdlL2luZGV4ZWRkYi9kZWxldGVPYmplY3RTdG9yZS1udWxs
LW5hbWUtZXhwZWN0ZWQudHh0OgorICAgICAgICAqIHN0b3JhZ2UvaW5kZXhlZGRiL2RlbGV0ZWQt
b2JqZWN0cy1leHBlY3RlZC50eHQ6CisgICAgICAgICogc3RvcmFnZS9pbmRleGVkZGIvZGVsZXRl
ZGF0YWJhc2UtdHJhbnNhY3Rpb24tZXhwZWN0ZWQudHh0OgorICAgICAgICAqIHN0b3JhZ2UvaW5k
ZXhlZGRiL2RlbGV0ZWRhdGFiYXNlLXRyYW5zYWN0aW9uLmh0bWw6CisgICAgICAgICogc3RvcmFn
ZS9pbmRleGVkZGIvZG9udC1jb21taXQtb24tYmxvY2tlZC1leHBlY3RlZC50eHQ6CisgICAgICAg
ICogc3RvcmFnZS9pbmRleGVkZGIvZG9udC1jb21taXQtb24tYmxvY2tlZC5odG1sOgorICAgICAg
ICAqIHN0b3JhZ2UvaW5kZXhlZGRiL2Vycm9yLWNhdXNlcy1hYm9ydC1ieS1kZWZhdWx0LWV4cGVj
dGVkLnR4dDoKKyAgICAgICAgKiBzdG9yYWdlL2luZGV4ZWRkYi9leGNlcHRpb24taW4tZXZlbnQt
YWJvcnRzLWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiBzdG9yYWdlL2luZGV4ZWRkYi9nZXQta2V5
cmFuZ2UtZXhwZWN0ZWQudHh0OgorICAgICAgICAqIHN0b3JhZ2UvaW5kZXhlZGRiL2luZGV4LWJh
c2ljcy1leHBlY3RlZC50eHQ6CisgICAgICAgICogc3RvcmFnZS9pbmRleGVkZGIvaW5kZXgtYmFz
aWNzLXdvcmtlcnMtZXhwZWN0ZWQudHh0OgorICAgICAgICAqIHN0b3JhZ2UvaW5kZXhlZGRiL2lu
ZGV4LWNvdW50LWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiBzdG9yYWdlL2luZGV4ZWRkYi9pbmRl
eC1jdXJzb3ItZXhwZWN0ZWQudHh0OgorICAgICAgICAqIHN0b3JhZ2UvaW5kZXhlZGRiL2luZGV4
LWdldC1rZXktYXJndW1lbnQtcmVxdWlyZWQtZXhwZWN0ZWQudHh0OgorICAgICAgICAqIHN0b3Jh
Z2UvaW5kZXhlZGRiL2luZGV4LXVuaXF1ZS1leHBlY3RlZC50eHQ6CisgICAgICAgICogc3RvcmFn
ZS9pbmRleGVkZGIvaW52YWxpZC1rZXlzLWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiBzdG9yYWdl
L2luZGV4ZWRkYi9rZXktZ2VuZXJhdG9yLWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiBzdG9yYWdl
L2luZGV4ZWRkYi9rZXktc29ydC1vcmRlci1hY3Jvc3MtdHlwZXMtZXhwZWN0ZWQudHh0OgorICAg
ICAgICAqIHN0b3JhZ2UvaW5kZXhlZGRiL2tleS1zb3J0LW9yZGVyLWRhdGUtZXhwZWN0ZWQudHh0
OgorICAgICAgICAqIHN0b3JhZ2UvaW5kZXhlZGRiL2tleS10eXBlLWFycmF5LWV4cGVjdGVkLnR4
dDoKKyAgICAgICAgKiBzdG9yYWdlL2luZGV4ZWRkYi9rZXktdHlwZS1pbmZpbml0eS1leHBlY3Rl
ZC50eHQ6CisgICAgICAgICogc3RvcmFnZS9pbmRleGVkZGIva2V5cGF0aC1hcnJheXMtZXhwZWN0
ZWQudHh0OgorICAgICAgICAqIHN0b3JhZ2UvaW5kZXhlZGRiL2tleXBhdGgtYmFzaWNzLWV4cGVj
dGVkLnR4dDoKKyAgICAgICAgKiBzdG9yYWdlL2luZGV4ZWRkYi9rZXlwYXRoLWVkZ2VzLWV4cGVj
dGVkLnR4dDoKKyAgICAgICAgKiBzdG9yYWdlL2luZGV4ZWRkYi9rZXlwYXRoLWZldGNoLWtleS1l
eHBlY3RlZC50eHQ6CisgICAgICAgICogc3RvcmFnZS9pbmRleGVkZGIva2V5cGF0aC1pbnRyaW5z
aWMtcHJvcGVydGllcy1leHBlY3RlZC50eHQ6CisgICAgICAgICogc3RvcmFnZS9pbmRleGVkZGIv
bGVnYWN5LWNvbnN0YW50cy1leHBlY3RlZC50eHQ6CisgICAgICAgICogc3RvcmFnZS9pbmRleGVk
ZGIvbGlzdC1vcmRlcmluZy1leHBlY3RlZC50eHQ6CisgICAgICAgICogc3RvcmFnZS9pbmRleGVk
ZGIvbW96aWxsYS9hZGQtdHdpY2UtZmFpbHVyZS1leHBlY3RlZC50eHQ6CisgICAgICAgICogc3Rv
cmFnZS9pbmRleGVkZGIvbW96aWxsYS9hdXRvaW5jcmVtZW50LWluZGV4ZXMtZXhwZWN0ZWQudHh0
OgorICAgICAgICAqIHN0b3JhZ2UvaW5kZXhlZGRiL21vemlsbGEvYmFkLWtleXBhdGgtZXhwZWN0
ZWQudHh0OgorICAgICAgICAqIHN0b3JhZ2UvaW5kZXhlZGRiL21vemlsbGEvY2xlYXItZXhwZWN0
ZWQudHh0OgorICAgICAgICAqIHN0b3JhZ2UvaW5kZXhlZGRiL21vemlsbGEvY3JlYXRlLWluZGV4
LXVuaXF1ZS1leHBlY3RlZC50eHQ6CisgICAgICAgICogc3RvcmFnZS9pbmRleGVkZGIvbW96aWxs
YS9jcmVhdGUtaW5kZXgtd2l0aC1pbnRlZ2VyLWtleXMtZXhwZWN0ZWQudHh0OgorICAgICAgICAq
IHN0b3JhZ2UvaW5kZXhlZGRiL21vemlsbGEvY3JlYXRlLW9iamVjdHN0b3JlLWJhc2ljcy1leHBl
Y3RlZC50eHQ6CisgICAgICAgICogc3RvcmFnZS9pbmRleGVkZGIvbW96aWxsYS9jcmVhdGUtb2Jq
ZWN0c3RvcmUtbnVsbC1uYW1lLWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiBzdG9yYWdlL2luZGV4
ZWRkYi9tb3ppbGxhL2N1cnNvci1tdXRhdGlvbi1leHBlY3RlZC50eHQ6CisgICAgICAgICogc3Rv
cmFnZS9pbmRleGVkZGIvbW96aWxsYS9jdXJzb3ItbXV0YXRpb24tb2JqZWN0c3RvcmUtb25seS1l
eHBlY3RlZC50eHQ6CisgICAgICAgICogc3RvcmFnZS9pbmRleGVkZGIvbW96aWxsYS9jdXJzb3Jz
LWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiBzdG9yYWdlL2luZGV4ZWRkYi9tb3ppbGxhL2RlbGV0
ZS1yZXN1bHQtZXhwZWN0ZWQudHh0OgorICAgICAgICAqIHN0b3JhZ2UvaW5kZXhlZGRiL21vemls
bGEvZXZlbnQtc291cmNlLWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiBzdG9yYWdlL2luZGV4ZWRk
Yi9tb3ppbGxhL2luZGV4ZXMtZXhwZWN0ZWQudHh0OgorICAgICAgICAqIHN0b3JhZ2UvaW5kZXhl
ZGRiL21vemlsbGEva2V5LXJlcXVpcmVtZW50cy1kZWxldGUtbnVsbC1rZXktZXhwZWN0ZWQudHh0
OgorICAgICAgICAqIHN0b3JhZ2UvaW5kZXhlZGRiL21vemlsbGEva2V5LXJlcXVpcmVtZW50cy1l
eHBlY3RlZC50eHQ6CisgICAgICAgICogc3RvcmFnZS9pbmRleGVkZGIvbW96aWxsYS9rZXktcmVx
dWlyZW1lbnRzLWlubGluZS1hbmQtcGFzc2VkLWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiBzdG9y
YWdlL2luZGV4ZWRkYi9tb3ppbGxhL2tleS1yZXF1aXJlbWVudHMtcHV0LW5vLWtleS1leHBlY3Rl
ZC50eHQ6CisgICAgICAgICogc3RvcmFnZS9pbmRleGVkZGIvbW96aWxsYS9rZXktcmVxdWlyZW1l
bnRzLXB1dC1udWxsLWtleS1leHBlY3RlZC50eHQ6CisgICAgICAgICogc3RvcmFnZS9pbmRleGVk
ZGIvbW96aWxsYS9vYmplY3QtY3Vyc29ycy1leHBlY3RlZC50eHQ6CisgICAgICAgICogc3RvcmFn
ZS9pbmRleGVkZGIvbW96aWxsYS9vYmplY3QtaWRlbnRpdHktZXhwZWN0ZWQudHh0OgorICAgICAg
ICAqIHN0b3JhZ2UvaW5kZXhlZGRiL21vemlsbGEvb2JqZWN0LXN0b3JlLWlubGluZS1hdXRvaW5j
cmVtZW50LWtleS1hZGRlZC1vbi1wdXQtZXhwZWN0ZWQudHh0OgorICAgICAgICAqIHN0b3JhZ2Uv
aW5kZXhlZGRiL21vemlsbGEvb2JqZWN0c3RvcmVuYW1lcy1leHBlY3RlZC50eHQ6CisgICAgICAg
ICogc3RvcmFnZS9pbmRleGVkZGIvbW96aWxsYS9vZGQtcmVzdWx0LW9yZGVyLWV4cGVjdGVkLnR4
dDoKKyAgICAgICAgKiBzdG9yYWdlL2luZGV4ZWRkYi9tb3ppbGxhL3B1dC1nZXQtdmFsdWVzLWV4
cGVjdGVkLnR4dDoKKyAgICAgICAgKiBzdG9yYWdlL2luZGV4ZWRkYi9tb3ppbGxhL3JlYWRvbmx5
LXRyYW5zYWN0aW9ucy1leHBlY3RlZC50eHQ6CisgICAgICAgICogc3RvcmFnZS9pbmRleGVkZGIv
bW96aWxsYS9yZWFkd3JpdGUtdHJhbnNhY3Rpb25zLWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiBz
dG9yYWdlL2luZGV4ZWRkYi9tb3ppbGxhL3JlbW92ZS1pbmRleC1leHBlY3RlZC50eHQ6CisgICAg
ICAgICogc3RvcmFnZS9pbmRleGVkZGIvbW96aWxsYS9yZXNvdXJjZXMvYWRkLXR3aWNlLWZhaWx1
cmUuanM6CisgICAgICAgICogc3RvcmFnZS9pbmRleGVkZGIvbW96aWxsYS9yZXNvdXJjZXMvYXV0
b2luY3JlbWVudC1pbmRleGVzLmpzOgorICAgICAgICAqIHN0b3JhZ2UvaW5kZXhlZGRiL21vemls
bGEvcmVzb3VyY2VzL2JhZC1rZXlwYXRoLmpzOgorICAgICAgICAqIHN0b3JhZ2UvaW5kZXhlZGRi
L21vemlsbGEvcmVzb3VyY2VzL2NsZWFyLmpzOgorICAgICAgICAqIHN0b3JhZ2UvaW5kZXhlZGRi
L21vemlsbGEvcmVzb3VyY2VzL2NyZWF0ZS1pbmRleC11bmlxdWUuanM6CisgICAgICAgICogc3Rv
cmFnZS9pbmRleGVkZGIvbW96aWxsYS9yZXNvdXJjZXMvY3JlYXRlLWluZGV4LXdpdGgtaW50ZWdl
ci1rZXlzLmpzOgorICAgICAgICAqIHN0b3JhZ2UvaW5kZXhlZGRiL21vemlsbGEvcmVzb3VyY2Vz
L2NyZWF0ZS1vYmplY3RzdG9yZS1iYXNpY3MuanM6CisgICAgICAgICogc3RvcmFnZS9pbmRleGVk
ZGIvbW96aWxsYS9yZXNvdXJjZXMvY3JlYXRlLW9iamVjdHN0b3JlLW51bGwtbmFtZS5qczoKKyAg
ICAgICAgKiBzdG9yYWdlL2luZGV4ZWRkYi9tb3ppbGxhL3Jlc291cmNlcy9jdXJzb3ItbXV0YXRp
b24tb2JqZWN0c3RvcmUtb25seS5qczoKKyAgICAgICAgKiBzdG9yYWdlL2luZGV4ZWRkYi9tb3pp
bGxhL3Jlc291cmNlcy9jdXJzb3ItbXV0YXRpb24uanM6CisgICAgICAgICogc3RvcmFnZS9pbmRl
eGVkZGIvbW96aWxsYS9yZXNvdXJjZXMvY3Vyc29ycy5qczoKKyAgICAgICAgKiBzdG9yYWdlL2lu
ZGV4ZWRkYi9tb3ppbGxhL3Jlc291cmNlcy9kZWxldGUtcmVzdWx0LmpzOgorICAgICAgICAqIHN0
b3JhZ2UvaW5kZXhlZGRiL21vemlsbGEvcmVzb3VyY2VzL2V2ZW50LXNvdXJjZS5qczoKKyAgICAg
ICAgKiBzdG9yYWdlL2luZGV4ZWRkYi9tb3ppbGxhL3Jlc291cmNlcy9pbmRleGVzLmpzOgorICAg
ICAgICAqIHN0b3JhZ2UvaW5kZXhlZGRiL21vemlsbGEvcmVzb3VyY2VzL2tleS1yZXF1aXJlbWVu
dHMtZGVsZXRlLW51bGwta2V5LmpzOgorICAgICAgICAqIHN0b3JhZ2UvaW5kZXhlZGRiL21vemls
bGEvcmVzb3VyY2VzL2tleS1yZXF1aXJlbWVudHMtaW5saW5lLWFuZC1wYXNzZWQuanM6CisgICAg
ICAgICogc3RvcmFnZS9pbmRleGVkZGIvbW96aWxsYS9yZXNvdXJjZXMva2V5LXJlcXVpcmVtZW50
cy1wdXQtbm8ta2V5LmpzOgorICAgICAgICAqIHN0b3JhZ2UvaW5kZXhlZGRiL21vemlsbGEvcmVz
b3VyY2VzL2tleS1yZXF1aXJlbWVudHMtcHV0LW51bGwta2V5LmpzOgorICAgICAgICAqIHN0b3Jh
Z2UvaW5kZXhlZGRiL21vemlsbGEvcmVzb3VyY2VzL2tleS1yZXF1aXJlbWVudHMuanM6CisgICAg
ICAgICogc3RvcmFnZS9pbmRleGVkZGIvbW96aWxsYS9yZXNvdXJjZXMvb2JqZWN0LWN1cnNvcnMu
anM6CisgICAgICAgICogc3RvcmFnZS9pbmRleGVkZGIvbW96aWxsYS9yZXNvdXJjZXMvb2JqZWN0
LWlkZW50aXR5LmpzOgorICAgICAgICAqIHN0b3JhZ2UvaW5kZXhlZGRiL21vemlsbGEvcmVzb3Vy
Y2VzL29iamVjdC1zdG9yZS1pbmxpbmUtYXV0b2luY3JlbWVudC1rZXktYWRkZWQtb24tcHV0Lmpz
OgorICAgICAgICAqIHN0b3JhZ2UvaW5kZXhlZGRiL21vemlsbGEvcmVzb3VyY2VzL29iamVjdHN0
b3JlbmFtZXMuanM6CisgICAgICAgICogc3RvcmFnZS9pbmRleGVkZGIvbW96aWxsYS9yZXNvdXJj
ZXMvb2RkLXJlc3VsdC1vcmRlci5qczoKKyAgICAgICAgKiBzdG9yYWdlL2luZGV4ZWRkYi9tb3pp
bGxhL3Jlc291cmNlcy9wdXQtZ2V0LXZhbHVlcy5qczoKKyAgICAgICAgKiBzdG9yYWdlL2luZGV4
ZWRkYi9tb3ppbGxhL3Jlc291cmNlcy9yZWFkb25seS10cmFuc2FjdGlvbnMuanM6CisgICAgICAg
ICogc3RvcmFnZS9pbmRleGVkZGIvbW96aWxsYS9yZXNvdXJjZXMvcmVhZHdyaXRlLXRyYW5zYWN0
aW9ucy5qczoKKyAgICAgICAgKiBzdG9yYWdlL2luZGV4ZWRkYi9tb3ppbGxhL3Jlc291cmNlcy9y
ZW1vdmUtaW5kZXguanM6CisgICAgICAgICogc3RvcmFnZS9pbmRleGVkZGIvbXV0YXRpbmctY3Vy
c29yLWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiBzdG9yYWdlL2luZGV4ZWRkYi9ub2Jsb2JzLWV4
cGVjdGVkLnR4dDoKKyAgICAgICAgKiBzdG9yYWdlL2luZGV4ZWRkYi9ub2Jsb2JzLmh0bWw6Cisg
ICAgICAgICogc3RvcmFnZS9pbmRleGVkZGIvb2JqZWN0U3RvcmUtcmVxdWlyZWQtYXJndW1lbnRz
LWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiBzdG9yYWdlL2luZGV4ZWRkYi9vYmplY3RzdG9yZS1h
dXRvaW5jcmVtZW50LWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiBzdG9yYWdlL2luZGV4ZWRkYi9v
YmplY3RzdG9yZS1jbGVhci1leHBlY3RlZC50eHQ6CisgICAgICAgICogc3RvcmFnZS9pbmRleGVk
ZGIvb2JqZWN0c3RvcmUtY291bnQtZXhwZWN0ZWQudHh0OgorICAgICAgICAqIHN0b3JhZ2UvaW5k
ZXhlZGRiL29iamVjdHN0b3JlLWN1cnNvci1leHBlY3RlZC50eHQ6CisgICAgICAgICogc3RvcmFn
ZS9pbmRleGVkZGIvb3Blbi1jdXJzb3ItZXhwZWN0ZWQudHh0OgorICAgICAgICAqIHN0b3JhZ2Uv
aW5kZXhlZGRiL29wZW5jdXJzb3Ita2V5LWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiBzdG9yYWdl
L2luZGV4ZWRkYi9wcmVmZXRjaC1idWdmaXgtMTA4MDcxLWV4cGVjdGVkLnR4dDoKKyAgICAgICAg
KiBzdG9yYWdlL2luZGV4ZWRkYi9xdWV1ZWQtY29tbWFuZHMtZXhwZWN0ZWQudHh0OgorICAgICAg
ICAqIHN0b3JhZ2UvaW5kZXhlZGRiL3JlYWRvbmx5LXByb3BlcnRpZXMtZXhwZWN0ZWQudHh0Ogor
ICAgICAgICAqIHN0b3JhZ2UvaW5kZXhlZGRiL3JlcXVlc3QtZXZlbnQtcHJvcGFnYXRpb24tZXhw
ZWN0ZWQudHh0OgorICAgICAgICAqIHN0b3JhZ2UvaW5kZXhlZGRiL3Jlc291cmNlcy9jcmVhdGUt
YW5kLXJlbW92ZS1vYmplY3Qtc3RvcmUuanM6CisgICAgICAgICogc3RvcmFnZS9pbmRleGVkZGIv
cmVzb3VyY2VzL2NyZWF0ZS1vYmplY3Qtc3RvcmUtb3B0aW9ucy5qczoKKyAgICAgICAgKiBzdG9y
YWdlL2luZGV4ZWRkYi9yZXNvdXJjZXMvY3JlYXRlT2JqZWN0U3RvcmUtbmFtZS1hcmd1bWVudC1y
ZXF1aXJlZC5qczoKKyAgICAgICAgKiBzdG9yYWdlL2luZGV4ZWRkYi9yZXNvdXJjZXMvY3JlYXRl
T2JqZWN0U3RvcmUtbnVsbC1uYW1lLmpzOgorICAgICAgICAqIHN0b3JhZ2UvaW5kZXhlZGRiL3Jl
c291cmNlcy9jdXJzb3ItYWRkZWQtYnVnLmpzOgorICAgICAgICAqIHN0b3JhZ2UvaW5kZXhlZGRi
L3Jlc291cmNlcy9jdXJzb3ItYWR2YW5jZS5qczoKKyAgICAgICAgKiBzdG9yYWdlL2luZGV4ZWRk
Yi9yZXNvdXJjZXMvY3Vyc29yLWNvbnRpbnVlLXZhbGlkaXR5LmpzOgorICAgICAgICAqIHN0b3Jh
Z2UvaW5kZXhlZGRiL3Jlc291cmNlcy9jdXJzb3ItY29udGludWUuanM6CisgICAgICAgICogc3Rv
cmFnZS9pbmRleGVkZGIvcmVzb3VyY2VzL2N1cnNvci1kZWxldGUuanM6CisgICAgICAgICogc3Rv
cmFnZS9pbmRleGVkZGIvcmVzb3VyY2VzL2N1cnNvci1pbmNvbnNpc3RlbmN5LmpzOgorICAgICAg
ICAqIHN0b3JhZ2UvaW5kZXhlZGRiL3Jlc291cmNlcy9jdXJzb3ItaW5kZXgtZGVsZXRlLmpzOgor
ICAgICAgICAqIHN0b3JhZ2UvaW5kZXhlZGRiL3Jlc291cmNlcy9jdXJzb3Ita2V5LW9yZGVyLmpz
OgorICAgICAgICAqIHN0b3JhZ2UvaW5kZXhlZGRiL3Jlc291cmNlcy9jdXJzb3ItcHJldi1uby1k
dXBsaWNhdGUuanM6CisgICAgICAgICogc3RvcmFnZS9pbmRleGVkZGIvcmVzb3VyY2VzL2N1cnNv
ci1wcmltYXJ5LWtleS1vcmRlci5qczoKKyAgICAgICAgKiBzdG9yYWdlL2luZGV4ZWRkYi9yZXNv
dXJjZXMvY3Vyc29yLXJldmVyc2UtYnVnLmpzOgorICAgICAgICAqIHN0b3JhZ2UvaW5kZXhlZGRi
L3Jlc291cmNlcy9jdXJzb3Itc2tpcC1kZWxldGVkLmpzOgorICAgICAgICAqIHN0b3JhZ2UvaW5k
ZXhlZGRiL3Jlc291cmNlcy9jdXJzb3ItdXBkYXRlLXZhbHVlLWFyZ3VtZW50LXJlcXVpcmVkLmpz
OgorICAgICAgICAqIHN0b3JhZ2UvaW5kZXhlZGRiL3Jlc291cmNlcy9jdXJzb3ItdXBkYXRlLmpz
OgorICAgICAgICAqIHN0b3JhZ2UvaW5kZXhlZGRiL3Jlc291cmNlcy9jdXJzb3ItdmFsdWUuanM6
CisgICAgICAgICogc3RvcmFnZS9pbmRleGVkZGIvcmVzb3VyY2VzL2RhdGEtY29ycnVwdGlvbi5q
czoKKyAgICAgICAgKiBzdG9yYWdlL2luZGV4ZWRkYi9yZXNvdXJjZXMvZGF0YWJhc2UtbmFtZS11
bmRlZmluZWQuanM6CisgICAgICAgICogc3RvcmFnZS9pbmRleGVkZGIvcmVzb3VyY2VzL2RlbGV0
ZS1jbG9zZWQtZGF0YWJhc2Utb2JqZWN0LmpzOgorICAgICAgICAqIHN0b3JhZ2UvaW5kZXhlZGRi
L3Jlc291cmNlcy9kZWxldGUtcmFuZ2UuanM6CisgICAgICAgICogc3RvcmFnZS9pbmRleGVkZGIv
cmVzb3VyY2VzL2RlbGV0ZUluZGV4LmpzOgorICAgICAgICAqIHN0b3JhZ2UvaW5kZXhlZGRiL3Jl
c291cmNlcy9kZWxldGVPYmplY3RTdG9yZS1uYW1lLWFyZ3VtZW50LXJlcXVpcmVkLmpzOgorICAg
ICAgICAqIHN0b3JhZ2UvaW5kZXhlZGRiL3Jlc291cmNlcy9kZWxldGVPYmplY3RTdG9yZS1udWxs
LW5hbWUuanM6CisgICAgICAgICogc3RvcmFnZS9pbmRleGVkZGIvcmVzb3VyY2VzL2RlbGV0ZWQt
b2JqZWN0cy5qczoKKyAgICAgICAgKiBzdG9yYWdlL2luZGV4ZWRkYi9yZXNvdXJjZXMvZHVwbGlj
YXRlcy5qczoKKyAgICAgICAgKiBzdG9yYWdlL2luZGV4ZWRkYi9yZXNvdXJjZXMvZXJyb3ItY2F1
c2VzLWFib3J0LWJ5LWRlZmF1bHQuanM6CisgICAgICAgICogc3RvcmFnZS9pbmRleGVkZGIvcmVz
b3VyY2VzL2V4Y2VwdGlvbi1pbi1ldmVudC1hYm9ydHMuanM6CisgICAgICAgICogc3RvcmFnZS9p
bmRleGVkZGIvcmVzb3VyY2VzL2dldC1rZXlyYW5nZS5qczoKKyAgICAgICAgKiBzdG9yYWdlL2lu
ZGV4ZWRkYi9yZXNvdXJjZXMvaW5kZXgtYmFzaWNzLmpzOgorICAgICAgICAqIHN0b3JhZ2UvaW5k
ZXhlZGRiL3Jlc291cmNlcy9pbmRleC1jb3VudC5qczoKKyAgICAgICAgKiBzdG9yYWdlL2luZGV4
ZWRkYi9yZXNvdXJjZXMvaW5kZXgtY3Vyc29yLmpzOgorICAgICAgICAqIHN0b3JhZ2UvaW5kZXhl
ZGRiL3Jlc291cmNlcy9pbmRleC1nZXQta2V5LWFyZ3VtZW50LXJlcXVpcmVkLmpzOgorICAgICAg
ICAqIHN0b3JhZ2UvaW5kZXhlZGRiL3Jlc291cmNlcy9pbmRleC11bmlxdWUuanM6CisgICAgICAg
ICogc3RvcmFnZS9pbmRleGVkZGIvcmVzb3VyY2VzL2ludmFsaWQta2V5cy5qczoKKyAgICAgICAg
KiBzdG9yYWdlL2luZGV4ZWRkYi9yZXNvdXJjZXMva2V5LWdlbmVyYXRvci5qczoKKyAgICAgICAg
KiBzdG9yYWdlL2luZGV4ZWRkYi9yZXNvdXJjZXMva2V5LXNvcnQtb3JkZXItYWNyb3NzLXR5cGVz
LmpzOgorICAgICAgICAqIHN0b3JhZ2UvaW5kZXhlZGRiL3Jlc291cmNlcy9rZXktc29ydC1vcmRl
ci1kYXRlLmpzOgorICAgICAgICAqIHN0b3JhZ2UvaW5kZXhlZGRiL3Jlc291cmNlcy9rZXktdHlw
ZS1hcnJheS5qczoKKyAgICAgICAgKiBzdG9yYWdlL2luZGV4ZWRkYi9yZXNvdXJjZXMva2V5LXR5
cGUtaW5maW5pdHkuanM6CisgICAgICAgICogc3RvcmFnZS9pbmRleGVkZGIvcmVzb3VyY2VzL2tl
eXBhdGgtYXJyYXlzLmpzOgorICAgICAgICAqIHN0b3JhZ2UvaW5kZXhlZGRiL3Jlc291cmNlcy9r
ZXlwYXRoLWJhc2ljcy5qczoKKyAgICAgICAgKiBzdG9yYWdlL2luZGV4ZWRkYi9yZXNvdXJjZXMv
a2V5cGF0aC1lZGdlcy5qczoKKyAgICAgICAgKiBzdG9yYWdlL2luZGV4ZWRkYi9yZXNvdXJjZXMv
a2V5cGF0aC1mZXRjaC1rZXkuanM6CisgICAgICAgICogc3RvcmFnZS9pbmRleGVkZGIvcmVzb3Vy
Y2VzL2tleXBhdGgtaW50cmluc2ljLXByb3BlcnRpZXMuanM6CisgICAgICAgICogc3RvcmFnZS9p
bmRleGVkZGIvcmVzb3VyY2VzL2xlZ2FjeS1jb25zdGFudHMuanM6CisgICAgICAgICogc3RvcmFn
ZS9pbmRleGVkZGIvcmVzb3VyY2VzL2xpc3Qtb3JkZXJpbmcuanM6CisgICAgICAgICogc3RvcmFn
ZS9pbmRleGVkZGIvcmVzb3VyY2VzL211dGF0aW5nLWN1cnNvci5qczoKKyAgICAgICAgKiBzdG9y
YWdlL2luZGV4ZWRkYi9yZXNvdXJjZXMvb2JqZWN0U3RvcmUtcmVxdWlyZWQtYXJndW1lbnRzLmpz
OgorICAgICAgICAqIHN0b3JhZ2UvaW5kZXhlZGRiL3Jlc291cmNlcy9vYmplY3RzdG9yZS1hdXRv
aW5jcmVtZW50LmpzOgorICAgICAgICAqIHN0b3JhZ2UvaW5kZXhlZGRiL3Jlc291cmNlcy9vYmpl
Y3RzdG9yZS1jbGVhci5qczoKKyAgICAgICAgKiBzdG9yYWdlL2luZGV4ZWRkYi9yZXNvdXJjZXMv
b2JqZWN0c3RvcmUtY291bnQuanM6CisgICAgICAgICogc3RvcmFnZS9pbmRleGVkZGIvcmVzb3Vy
Y2VzL29iamVjdHN0b3JlLWN1cnNvci5qczoKKyAgICAgICAgKiBzdG9yYWdlL2luZGV4ZWRkYi9y
ZXNvdXJjZXMvb3Blbi1jdXJzb3IuanM6CisgICAgICAgICogc3RvcmFnZS9pbmRleGVkZGIvcmVz
b3VyY2VzL29wZW5jdXJzb3Ita2V5LmpzOgorICAgICAgICAqIHN0b3JhZ2UvaW5kZXhlZGRiL3Jl
c291cmNlcy9wcmVmZXRjaC1idWdmaXgtMTA4MDcxLmpzOgorICAgICAgICAqIHN0b3JhZ2UvaW5k
ZXhlZGRiL3Jlc291cmNlcy9xdWV1ZWQtY29tbWFuZHMuanM6CisgICAgICAgICogc3RvcmFnZS9p
bmRleGVkZGIvcmVzb3VyY2VzL3JlYWRvbmx5LXByb3BlcnRpZXMuanM6CisgICAgICAgICogc3Rv
cmFnZS9pbmRleGVkZGIvcmVzb3VyY2VzL3JlcXVlc3QtZXZlbnQtcHJvcGFnYXRpb24uanM6Cisg
ICAgICAgICogc3RvcmFnZS9pbmRleGVkZGIvcmVzb3VyY2VzL3NoYXJlZC5qczoKKyAgICAgICAg
KiBzdG9yYWdlL2luZGV4ZWRkYi9yZXNvdXJjZXMvdHJhbnNhY3Rpb24tYWJvcnQuanM6CisgICAg
ICAgICogc3RvcmFnZS9pbmRleGVkZGIvcmVzb3VyY2VzL3RyYW5zYWN0aW9uLWFjdGl2ZS1mbGFn
LmpzOgorICAgICAgICAqIHN0b3JhZ2UvaW5kZXhlZGRiL3Jlc291cmNlcy90cmFuc2FjdGlvbi1h
ZnRlci1jbG9zZS5qczoKKyAgICAgICAgKiBzdG9yYWdlL2luZGV4ZWRkYi9yZXNvdXJjZXMvdHJh
bnNhY3Rpb24tYW5kLW9iamVjdHN0b3JlLWNhbGxzLmpzOgorICAgICAgICAqIHN0b3JhZ2UvaW5k
ZXhlZGRiL3Jlc291cmNlcy90cmFuc2FjdGlvbi1jb21wbGV0ZS13b3JrZXJzLmpzOgorICAgICAg
ICAqIHN0b3JhZ2UvaW5kZXhlZGRiL3Jlc291cmNlcy90cmFuc2FjdGlvbi1jcmFzaC1vbi1hYm9y
dC5qczoKKyAgICAgICAgKiBzdG9yYWdlL2luZGV4ZWRkYi9yZXNvdXJjZXMvdHJhbnNhY3Rpb24t
ZXJyb3IuanM6CisgICAgICAgICogc3RvcmFnZS9pbmRleGVkZGIvcmVzb3VyY2VzL3RyYW5zYWN0
aW9uLWV2ZW50LXByb3BhZ2F0aW9uLmpzOgorICAgICAgICAqIHN0b3JhZ2UvaW5kZXhlZGRiL3Jl
c291cmNlcy90cmFuc2FjdGlvbi1yZWFkLW9ubHkuanM6CisgICAgICAgICogc3RvcmFnZS9pbmRl
eGVkZGIvcmVzb3VyY2VzL3RyYW5zYWN0aW9uLXJvbGxiYWNrLmpzOgorICAgICAgICAqIHN0b3Jh
Z2UvaW5kZXhlZGRiL3Jlc291cmNlcy90cmFuc2FjdGlvbi1zdG9yZU5hbWVzLXJlcXVpcmVkLmpz
OgorICAgICAgICAqIHN0b3JhZ2UvaW5kZXhlZGRiL3Jlc291cmNlcy92YWx1ZS11bmRlZmluZWQu
anM6CisgICAgICAgICogc3RvcmFnZS9pbmRleGVkZGIvcmVzb3VyY2VzL3ZhbHVlcy1vZGQtdHlw
ZXMuanM6CisgICAgICAgICogc3RvcmFnZS9pbmRleGVkZGIvc3RydWN0dXJlZC1jbG9uZS1leHBl
Y3RlZC50eHQ6CisgICAgICAgICogc3RvcmFnZS9pbmRleGVkZGIvc3RydWN0dXJlZC1jbG9uZS5o
dG1sOgorICAgICAgICAqIHN0b3JhZ2UvaW5kZXhlZGRiL3RyYW5zYWN0aW9uLWFib3J0LWV4cGVj
dGVkLnR4dDoKKyAgICAgICAgKiBzdG9yYWdlL2luZGV4ZWRkYi90cmFuc2FjdGlvbi1hY3RpdmUt
ZmxhZy1leHBlY3RlZC50eHQ6CisgICAgICAgICogc3RvcmFnZS9pbmRleGVkZGIvdHJhbnNhY3Rp
b24tYWZ0ZXItY2xvc2UtZXhwZWN0ZWQudHh0OgorICAgICAgICAqIHN0b3JhZ2UvaW5kZXhlZGRi
L3RyYW5zYWN0aW9uLWFuZC1vYmplY3RzdG9yZS1jYWxscy1leHBlY3RlZC50eHQ6CisgICAgICAg
ICogc3RvcmFnZS9pbmRleGVkZGIvdHJhbnNhY3Rpb24tY29tcGxldGUtd2l0aC1qcy1yZWN1cnNp
b24tY3Jvc3MtZnJhbWUtZXhwZWN0ZWQudHh0OgorICAgICAgICAqIHN0b3JhZ2UvaW5kZXhlZGRi
L3RyYW5zYWN0aW9uLWNvbXBsZXRlLXdpdGgtanMtcmVjdXJzaW9uLWNyb3NzLWZyYW1lLmh0bWw6
CisgICAgICAgICogc3RvcmFnZS9pbmRleGVkZGIvdHJhbnNhY3Rpb24tY29tcGxldGUtd2l0aC1q
cy1yZWN1cnNpb24tZXhwZWN0ZWQudHh0OgorICAgICAgICAqIHN0b3JhZ2UvaW5kZXhlZGRiL3Ry
YW5zYWN0aW9uLWNvbXBsZXRlLXdpdGgtanMtcmVjdXJzaW9uLmh0bWw6CisgICAgICAgICogc3Rv
cmFnZS9pbmRleGVkZGIvdHJhbnNhY3Rpb24tY29tcGxldGUtd29ya2Vycy1leHBlY3RlZC50eHQ6
CisgICAgICAgICogc3RvcmFnZS9pbmRleGVkZGIvdHJhbnNhY3Rpb24tY3Jhc2gtb24tYWJvcnQt
ZXhwZWN0ZWQudHh0OgorICAgICAgICAqIHN0b3JhZ2UvaW5kZXhlZGRiL3RyYW5zYWN0aW9uLWVy
cm9yLWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiBzdG9yYWdlL2luZGV4ZWRkYi90cmFuc2FjdGlv
bi1ldmVudC1wcm9wYWdhdGlvbi1leHBlY3RlZC50eHQ6CisgICAgICAgICogc3RvcmFnZS9pbmRl
eGVkZGIvdHJhbnNhY3Rpb24tcmVhZC1vbmx5LWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiBzdG9y
YWdlL2luZGV4ZWRkYi90cmFuc2FjdGlvbi1yb2xsYmFjay1leHBlY3RlZC50eHQ6CisgICAgICAg
ICogc3RvcmFnZS9pbmRleGVkZGIvdHJhbnNhY3Rpb24tc3RvcmVOYW1lcy1yZXF1aXJlZC1leHBl
Y3RlZC50eHQ6CisgICAgICAgICogc3RvcmFnZS9pbmRleGVkZGIvdmFsdWUtdW5kZWZpbmVkLWV4
cGVjdGVkLnR4dDoKKyAgICAgICAgKiBzdG9yYWdlL2luZGV4ZWRkYi92YWx1ZXMtb2RkLXR5cGVz
LWV4cGVjdGVkLnR4dDoKKwogMjAxMi0wNy0yMCAgWmFuIERvYmVyc2VrICA8emFuZG9iZXJzZWtA
Z21haWwuY29tPgogCiAgICAgICAgIFVucmV2aWV3ZWQgR1RLIGdhcmRlbmluZywgYWRkaW5nIGlt
YWdlIGJhc2VsaW5lIGZvcgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVk
ZGIvY3JlYXRlLW9iamVjdC1zdG9yZS1vcHRpb25zLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3Rz
L3N0b3JhZ2UvaW5kZXhlZGRiL2NyZWF0ZS1vYmplY3Qtc3RvcmUtb3B0aW9ucy1leHBlY3RlZC50
eHQKaW5kZXggZWVlMDgxMjZlNmEzZmViMmM5YTg3YmEwOThmMmQ2MWJjMjNiM2Q5Ni4uMzY1MGJh
ZGQwMTY4MjQ0MjU4NTk5ZDFiMzMyYWFiYTc3NTZiYTRkOCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVz
dHMvc3RvcmFnZS9pbmRleGVkZGIvY3JlYXRlLW9iamVjdC1zdG9yZS1vcHRpb25zLWV4cGVjdGVk
LnR4dAorKysgYi9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9jcmVhdGUtb2JqZWN0LXN0
b3JlLW9wdGlvbnMtZXhwZWN0ZWQudHh0CkBAIC01LDEwICs1LDEwIEBAIE9uIHN1Y2Nlc3MsIHlv
dSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNU
IENPTVBMRVRFCiAKIGluZGV4ZWREQiA9IHNlbGYuaW5kZXhlZERCIHx8IHNlbGYud2Via2l0SW5k
ZXhlZERCIHx8IHNlbGYubW96SW5kZXhlZERCIHx8IHNlbGYubXNJbmRleGVkREIgfHwgc2VsZi5P
SW5kZXhlZERCOwogCi1pbmRleGVkREIub3BlbignY3JlYXRlLW9iamVjdC1zdG9yZS1vcHRpb25z
JykKLWRiID0gZXZlbnQudGFyZ2V0LnJlc3VsdAotcmVxdWVzdCA9IGRiLnNldFZlcnNpb24oJ3Zl
cnNpb24gMScpCi1EZWxldGVkIGFsbCBvYmplY3Qgc3RvcmVzLgorZGJuYW1lID0gc2VsZi5sb2Nh
dGlvbi5wYXRobmFtZQoraW5kZXhlZERCLmRlbGV0ZURhdGFiYXNlKGRibmFtZSkKK2luZGV4ZWRE
Qi5vcGVuKGRibmFtZSkKK2RiLnNldFZlcnNpb24oJzEnKQogZGIuY3JlYXRlT2JqZWN0U3RvcmUo
J2EnLCB7a2V5UGF0aDogJ2EnfSkKIGRiLmNyZWF0ZU9iamVjdFN0b3JlKCdiJykKIGRiLmNyZWF0
ZU9iamVjdFN0b3JlKCdjJywge2F1dG9JbmNyZW1lbnQ6IHRydWV9KTsKZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL2NyZWF0ZU9iamVjdFN0b3JlLW5hbWUtYXJndW1l
bnQtcmVxdWlyZWQtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIv
Y3JlYXRlT2JqZWN0U3RvcmUtbmFtZS1hcmd1bWVudC1yZXF1aXJlZC1leHBlY3RlZC50eHQKaW5k
ZXggNWY4ZjkzOGUxYjdhZjY3YjFjYTA0MWI2NzU4NzI2OWIyZmVlNGU1NC4uNzcyODI2OGY0YmNm
ODhhYTQ4ZThkNzY0MjNiZjRhYjY2YTNhMDA4NSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvc3Rv
cmFnZS9pbmRleGVkZGIvY3JlYXRlT2JqZWN0U3RvcmUtbmFtZS1hcmd1bWVudC1yZXF1aXJlZC1l
eHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvY3JlYXRlT2Jq
ZWN0U3RvcmUtbmFtZS1hcmd1bWVudC1yZXF1aXJlZC1leHBlY3RlZC50eHQKQEAgLTUsMTEgKzUs
MTEgQEAgT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdl
cywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUKIAogaW5kZXhlZERCID0gc2VsZi5pbmRleGVk
REIgfHwgc2VsZi53ZWJraXRJbmRleGVkREIgfHwgc2VsZi5tb3pJbmRleGVkREIgfHwgc2VsZi5t
c0luZGV4ZWREQiB8fCBzZWxmLk9JbmRleGVkREI7CiAKLWluZGV4ZWREQi5vcGVuKG5hbWUpCi1k
YiA9IGV2ZW50LnRhcmdldC5yZXN1bHQKLXJlcXVlc3QgPSBkYi5zZXRWZXJzaW9uKCcxJykKLURl
bGV0ZWQgYWxsIG9iamVjdCBzdG9yZXMuCi1QQVNTIGRiLmNyZWF0ZU9iamVjdFN0b3JlKCk7IHRo
cmV3IGV4Y2VwdGlvbiBUeXBlRXJyb3I6IE5vdCBlbm91Z2ggYXJndW1lbnRzLgorZGJuYW1lID0g
c2VsZi5sb2NhdGlvbi5wYXRobmFtZQoraW5kZXhlZERCLmRlbGV0ZURhdGFiYXNlKGRibmFtZSkK
K2luZGV4ZWREQi5vcGVuKGRibmFtZSkKK2RiLnNldFZlcnNpb24oJzEnKQorUEFTUyBkYi5jcmVh
dGVPYmplY3RTdG9yZSgpIHRocmV3IGV4Y2VwdGlvbiBUeXBlRXJyb3I6IE5vdCBlbm91Z2ggYXJn
dW1lbnRzLgogUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQogCiBURVNUIENPTVBMRVRF
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9jcmVhdGVPYmplY3RT
dG9yZS1udWxsLW5hbWUtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVk
ZGIvY3JlYXRlT2JqZWN0U3RvcmUtbnVsbC1uYW1lLWV4cGVjdGVkLnR4dAppbmRleCBmYzQ1MzZj
Yjg5YzMzMGVhYjNmNzJlYjQ1MjRhZjk1YTc4ZjJiYmQxLi4wM2MyNzBhMzI0OGQzOGVmMjkwZTFl
NDczZDNmMzY0YjljMTdhNmI2IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4
ZWRkYi9jcmVhdGVPYmplY3RTdG9yZS1udWxsLW5hbWUtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91
dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL2NyZWF0ZU9iamVjdFN0b3JlLW51bGwtbmFtZS1leHBl
Y3RlZC50eHQKQEAgLTUsMTAgKzUsMTAgQEAgT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2Vy
aWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUKIAogaW5k
ZXhlZERCID0gc2VsZi5pbmRleGVkREIgfHwgc2VsZi53ZWJraXRJbmRleGVkREIgfHwgc2VsZi5t
b3pJbmRleGVkREIgfHwgc2VsZi5tc0luZGV4ZWREQiB8fCBzZWxmLk9JbmRleGVkREI7CiAKLWlu
ZGV4ZWREQi5vcGVuKG5hbWUpCi1kYiA9IGV2ZW50LnRhcmdldC5yZXN1bHQKLXJlcXVlc3QgPSBk
Yi5zZXRWZXJzaW9uKCcxJykKLURlbGV0ZWQgYWxsIG9iamVjdCBzdG9yZXMuCitkYm5hbWUgPSBz
ZWxmLmxvY2F0aW9uLnBhdGhuYW1lCitpbmRleGVkREIuZGVsZXRlRGF0YWJhc2UoZGJuYW1lKQor
aW5kZXhlZERCLm9wZW4oZGJuYW1lKQorZGIuc2V0VmVyc2lvbignMScpCiBkYi5jcmVhdGVPYmpl
Y3RTdG9yZShudWxsKTsKIFBBU1Mgb2JqZWN0U3RvcmUubmFtZSBpcyAibnVsbCIKIFBBU1Mgc3Vj
Y2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3N0b3JhZ2Uv
aW5kZXhlZGRiL2N1cnNvci1hZGRlZC1idWctZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvc3Rv
cmFnZS9pbmRleGVkZGIvY3Vyc29yLWFkZGVkLWJ1Zy1leHBlY3RlZC50eHQKaW5kZXggY2E3YzU2
NzE4YjllNmViZGRlOTdhZWYyMjQ4OWNjMDRiZmYyYmJjMC4uZjMxMDE1ZDA0NjkzZWUzOWFjMDMw
Y2NlYWNlYjRlOTdiZjg0NDMyOCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRl
eGVkZGIvY3Vyc29yLWFkZGVkLWJ1Zy1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvc3Rv
cmFnZS9pbmRleGVkZGIvY3Vyc29yLWFkZGVkLWJ1Zy1leHBlY3RlZC50eHQKQEAgLTUsMTIgKzUs
MTAgQEAgT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdl
cywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUKIAogaW5kZXhlZERCID0gc2VsZi5pbmRleGVk
REIgfHwgc2VsZi53ZWJraXRJbmRleGVkREIgfHwgc2VsZi5tb3pJbmRleGVkREIgfHwgc2VsZi5t
c0luZGV4ZWREQiB8fCBzZWxmLk9JbmRleGVkREI7CiAKLWluZGV4ZWREQi5vcGVuKCdjdXJzb3It
ZGVsZXRlJykKLWRiID0gZXZlbnQudGFyZ2V0LnJlc3VsdAotZGIuc2V0VmVyc2lvbignbmV3IHZl
cnNpb24nKQotdHJhbnMgPSBldmVudC50YXJnZXQucmVzdWx0Ci1QQVNTIHRyYW5zIGlzIG5vbi1u
dWxsLgotRGVsZXRlZCBhbGwgb2JqZWN0IHN0b3Jlcy4KK2RibmFtZSA9IHNlbGYubG9jYXRpb24u
cGF0aG5hbWUKK2luZGV4ZWREQi5kZWxldGVEYXRhYmFzZShkYm5hbWUpCitpbmRleGVkREIub3Bl
bihkYm5hbWUpCitkYi5zZXRWZXJzaW9uKCcxJykKIG9iamVjdFN0b3JlID0gZGIuY3JlYXRlT2Jq
ZWN0U3RvcmUoJ3Rlc3QnKQogb2JqZWN0U3RvcmUuYWRkKDEsIDEpCiBvYmplY3RTdG9yZS5hZGQo
MiwgMikKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL2N1cnNvci1h
ZHZhbmNlLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL2N1cnNv
ci1hZHZhbmNlLWV4cGVjdGVkLnR4dAppbmRleCA1ZDUzZmI0NTA1OTJjMjI5NWQ5OTdkNmYyZGVi
ZTAyZWMwYmFkNzQ1Li4yYmQ5ZDhiNWYxZjk5YzM3YzhhMTg5YjUwNWNlOTM0NmJjNjJiODU5IDEw
MDY0NAotLS0gYS9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9jdXJzb3ItYWR2YW5jZS1l
eHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvY3Vyc29yLWFk
dmFuY2UtZXhwZWN0ZWQudHh0CkBAIC01LDEyICs1LDEwIEBAIE9uIHN1Y2Nlc3MsIHlvdSB3aWxs
IHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBM
RVRFCiAKIGluZGV4ZWREQiA9IHNlbGYuaW5kZXhlZERCIHx8IHNlbGYud2Via2l0SW5kZXhlZERC
IHx8IHNlbGYubW96SW5kZXhlZERCIHx8IHNlbGYubXNJbmRleGVkREIgfHwgc2VsZi5PSW5kZXhl
ZERCOwogCi1pbmRleGVkREIub3BlbihuYW1lKQotb3BlblN1Y2Nlc3MoKToKLWRiID0gZXZlbnQu
dGFyZ2V0LnJlc3VsdAotcmVxdWVzdCA9IGRiLnNldFZlcnNpb24oJzEnKQotRGVsZXRlZCBhbGwg
b2JqZWN0IHN0b3Jlcy4KLXRyYW5zID0gcmVxdWVzdC5yZXN1bHQKK2RibmFtZSA9IHNlbGYubG9j
YXRpb24ucGF0aG5hbWUKK2luZGV4ZWREQi5kZWxldGVEYXRhYmFzZShkYm5hbWUpCitpbmRleGVk
REIub3BlbihkYm5hbWUpCitkYi5zZXRWZXJzaW9uKCcxJykKIG9iamVjdFN0b3JlID0gZGIuY3Jl
YXRlT2JqZWN0U3RvcmUob2JqZWN0U3RvcmVOYW1lKTsKIE5vdyBjcmVhdGUgdGhlIGluZGV4ZXMu
CiBvYmplY3RTdG9yZS5jcmVhdGVJbmRleChpbmRleERhdGFbaV0ubmFtZSwgaW5kZXhEYXRhW2ld
LmtleVBhdGgsIGluZGV4RGF0YVtpXS5vcHRpb25zKTsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L3N0b3JhZ2UvaW5kZXhlZGRiL2N1cnNvci1jb250aW51ZS1leHBlY3RlZC50eHQgYi9MYXlvdXRU
ZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9jdXJzb3ItY29udGludWUtZXhwZWN0ZWQudHh0CmluZGV4
IDA0NjU5NGNmYjgxNDNmMDlkYjNhMjFjMGE2YmFhMDFlZDY3ZTJhMmIuLjE2NjI2NGMyYjc5N2Vl
NmVjNmVlOWJjNmZlMDczOTdjYmNjYTFjNDEgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3N0b3Jh
Z2UvaW5kZXhlZGRiL2N1cnNvci1jb250aW51ZS1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVz
dHMvc3RvcmFnZS9pbmRleGVkZGIvY3Vyc29yLWNvbnRpbnVlLWV4cGVjdGVkLnR4dApAQCAtNSwx
MiArNSwxMCBAQCBPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1l
c3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURQogCiBpbmRleGVkREIgPSBzZWxmLmlu
ZGV4ZWREQiB8fCBzZWxmLndlYmtpdEluZGV4ZWREQiB8fCBzZWxmLm1vekluZGV4ZWREQiB8fCBz
ZWxmLm1zSW5kZXhlZERCIHx8IHNlbGYuT0luZGV4ZWREQjsKIAotaW5kZXhlZERCLm9wZW4oJ2N1
cnNvci1jb250aW51ZScpCi1kYiA9IGV2ZW50LnRhcmdldC5yZXN1bHQKLWRiLnNldFZlcnNpb24o
J25ldyB2ZXJzaW9uJykKLXRyYW5zID0gZXZlbnQudGFyZ2V0LnJlc3VsdAotUEFTUyB0cmFucyBp
cyBub24tbnVsbC4KLURlbGV0ZWQgYWxsIG9iamVjdCBzdG9yZXMuCitkYm5hbWUgPSBzZWxmLmxv
Y2F0aW9uLnBhdGhuYW1lCitpbmRleGVkREIuZGVsZXRlRGF0YWJhc2UoZGJuYW1lKQoraW5kZXhl
ZERCLm9wZW4oZGJuYW1lKQorZGIuc2V0VmVyc2lvbignMScpCiBkYi5jcmVhdGVPYmplY3RTdG9y
ZSgnc29tZU9iamVjdFN0b3JlJykKIG9iamVjdFN0b3JlLmNyZWF0ZUluZGV4KCdzb21lSW5kZXgn
LCAneCcpCiBvYmplY3RTdG9yZS5hZGQoeyd4JzogdGVzdERhdGFbbmV4dFRvQWRkXX0sIG5leHRU
b0FkZCkKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL2N1cnNvci1j
b250aW51ZS12YWxpZGl0eS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4
ZWRkYi9jdXJzb3ItY29udGludWUtdmFsaWRpdHktZXhwZWN0ZWQudHh0CmluZGV4IGI3Njc2NDU3
MGQ3ZWQ5ODcyMGQ5YTliMmIzZDBmM2Y4MDI0ZWYwYWQuLmY2ZjdkMjIwOTMyYzAxNGEzODVmMGYy
OTY0NDMyZGY2MTRjYjYwNTYgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhl
ZGRiL2N1cnNvci1jb250aW51ZS12YWxpZGl0eS1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVz
dHMvc3RvcmFnZS9pbmRleGVkZGIvY3Vyc29yLWNvbnRpbnVlLXZhbGlkaXR5LWV4cGVjdGVkLnR4
dApAQCAtNSwxMiArNSwxMCBAQCBPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2Yg
IlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURQogCiBpbmRleGVkREIg
PSBzZWxmLmluZGV4ZWREQiB8fCBzZWxmLndlYmtpdEluZGV4ZWREQiB8fCBzZWxmLm1vekluZGV4
ZWREQiB8fCBzZWxmLm1zSW5kZXhlZERCIHx8IHNlbGYuT0luZGV4ZWREQjsKIAotaW5kZXhlZERC
Lm9wZW4oJ2N1cnNvci1jb250aW51ZScpCi1kYiA9IGV2ZW50LnRhcmdldC5yZXN1bHQKLWRiLnNl
dFZlcnNpb24oJ25ldyB2ZXJzaW9uJykKLXRyYW5zID0gZXZlbnQudGFyZ2V0LnJlc3VsdAotUEFT
UyB0cmFucyBpcyBub24tbnVsbC4KLURlbGV0ZWQgYWxsIG9iamVjdCBzdG9yZXMuCitkYm5hbWUg
PSBzZWxmLmxvY2F0aW9uLnBhdGhuYW1lCitpbmRleGVkREIuZGVsZXRlRGF0YWJhc2UoZGJuYW1l
KQoraW5kZXhlZERCLm9wZW4oZGJuYW1lKQorZGIuc2V0VmVyc2lvbignMScpCiBkYi5jcmVhdGVP
YmplY3RTdG9yZSgnc29tZU9iamVjdFN0b3JlJykKIG9iamVjdFN0b3JlLmNyZWF0ZUluZGV4KCdz
b21lSW5kZXgnLCAneCcpCiBvYmplY3RTdG9yZS5hZGQoeyd4JzogMCB9LCAwKQpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvY3Vyc29yLWRlbGV0ZS1leHBlY3RlZC50
eHQgYi9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9jdXJzb3ItZGVsZXRlLWV4cGVjdGVk
LnR4dAppbmRleCA4NzA3NDc1M2FmYjk3NDEyZmQwZmZhZmNkYzVhNmQ3ZDViZGMyOGFmLi4yNjAz
OTJiN2MwM2YzNzczOTIwMWQxMzMyOWJjZWExMmYxZjE5NzIwIDEwMDY0NAotLS0gYS9MYXlvdXRU
ZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9jdXJzb3ItZGVsZXRlLWV4cGVjdGVkLnR4dAorKysgYi9M
YXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9jdXJzb3ItZGVsZXRlLWV4cGVjdGVkLnR4dApA
QCAtNSwxMyArNSwxMCBAQCBPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBB
U1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURQogCiBpbmRleGVkREIgPSBz
ZWxmLmluZGV4ZWREQiB8fCBzZWxmLndlYmtpdEluZGV4ZWREQiB8fCBzZWxmLm1vekluZGV4ZWRE
QiB8fCBzZWxmLm1zSW5kZXhlZERCIHx8IHNlbGYuT0luZGV4ZWREQjsKIAotaW5kZXhlZERCLm9w
ZW4oJ2N1cnNvci1kZWxldGUnKQotZGIgPSBldmVudC50YXJnZXQucmVzdWx0Ci1kYi5zZXRWZXJz
aW9uKCduZXcgdmVyc2lvbicpCi1zZXRWZXJzaW9uU3VjY2VzcygpOgotdHJhbnMgPSBldmVudC50
YXJnZXQucmVzdWx0Ci1QQVNTIHRyYW5zIGlzIG5vbi1udWxsLgotRGVsZXRlZCBhbGwgb2JqZWN0
IHN0b3Jlcy4KK2RibmFtZSA9IHNlbGYubG9jYXRpb24ucGF0aG5hbWUKK2luZGV4ZWREQi5kZWxl
dGVEYXRhYmFzZShkYm5hbWUpCitpbmRleGVkREIub3BlbihkYm5hbWUpCitkYi5zZXRWZXJzaW9u
KCcxJykKIG9iamVjdFN0b3JlID0gZGIuY3JlYXRlT2JqZWN0U3RvcmUoJ3Rlc3QnKQogb2JqZWN0
U3RvcmUuYWRkKCdteVZhbHVlMScsICdteUtleTEnKQogb2JqZWN0U3RvcmUuYWRkKCdteVZhbHVl
MicsICdteUtleTInKQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIv
Y3Vyc29yLWluY29uc2lzdGVuY3ktZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvc3RvcmFnZS9p
bmRleGVkZGIvY3Vyc29yLWluY29uc2lzdGVuY3ktZXhwZWN0ZWQudHh0CmluZGV4IGFiODY3ZmEy
YzcyZjMzOTg5Y2I1NzI1NDNlNGNmZjY5YTc1N2VlYmUuLjlkMGI0NDViODA4ZGVjYWFkNzk0YTE0
ZjRlNWJhMTgzMWQ4MzZjYTkgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhl
ZGRiL2N1cnNvci1pbmNvbnNpc3RlbmN5LWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9z
dG9yYWdlL2luZGV4ZWRkYi9jdXJzb3ItaW5jb25zaXN0ZW5jeS1leHBlY3RlZC50eHQKQEAgLTUs
MTMgKzUsMTAgQEAgT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBt
ZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUKIAogaW5kZXhlZERCID0gc2VsZi5p
bmRleGVkREIgfHwgc2VsZi53ZWJraXRJbmRleGVkREIgfHwgc2VsZi5tb3pJbmRleGVkREIgfHwg
c2VsZi5tc0luZGV4ZWREQiB8fCBzZWxmLk9JbmRleGVkREI7CiAKLWluZGV4ZWREQi5vcGVuKCdj
dXJzb3ItaW5jb25zaXN0ZW5jeScpCi1kYiA9IGV2ZW50LnRhcmdldC5yZXN1bHQKLWRiLnNldFZl
cnNpb24oJ25ldyB2ZXJzaW9uJykKLXNldFZlcnNpb25TdWNjZXNzKCk6Ci10cmFucyA9IGV2ZW50
LnRhcmdldC5yZXN1bHQKLVBBU1MgdHJhbnMgaXMgbm9uLW51bGwuCi1EZWxldGVkIGFsbCBvYmpl
Y3Qgc3RvcmVzLgorZGJuYW1lID0gc2VsZi5sb2NhdGlvbi5wYXRobmFtZQoraW5kZXhlZERCLmRl
bGV0ZURhdGFiYXNlKGRibmFtZSkKK2luZGV4ZWREQi5vcGVuKGRibmFtZSkKK2RiLnNldFZlcnNp
b24oJzEnKQogb2JqZWN0U3RvcmUgPSBkYi5jcmVhdGVPYmplY3RTdG9yZSgnYmFzaWNTdG9yZScp
CiBvYmplY3RTdG9yZS5hZGQoJ3NvbWVWYWx1ZTEnLCAnc29tZUtleTEnKS5vbmVycm9yID0gdW5l
eHBlY3RlZEVycm9yQ2FsbGJhY2sKIG9iamVjdFN0b3JlLmFkZCgnc29tZVZhbHVlMicsICdzb21l
S2V5MicpLm9uZXJyb3IgPSB1bmV4cGVjdGVkRXJyb3JDYWxsYmFjawpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvY3Vyc29yLWluZGV4LWRlbGV0ZS1leHBlY3RlZC50
eHQgYi9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9jdXJzb3ItaW5kZXgtZGVsZXRlLWV4
cGVjdGVkLnR4dAppbmRleCAzNzFiNmMzMDBiOGFlODQ1ZTEyZTVhYWQ1YTU5ZmZiMjEwNGZmNTU1
Li4zMDY2MWM5YmI4MjEzZmQ2NDkxOGQyN2YyZTY1YjJmNmI3MzIyMTg5IDEwMDY0NAotLS0gYS9M
YXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9jdXJzb3ItaW5kZXgtZGVsZXRlLWV4cGVjdGVk
LnR4dAorKysgYi9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9jdXJzb3ItaW5kZXgtZGVs
ZXRlLWV4cGVjdGVkLnR4dApAQCAtNSwxMyArNSwxMCBAQCBPbiBzdWNjZXNzLCB5b3Ugd2lsbCBz
ZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVU
RQogCiBpbmRleGVkREIgPSBzZWxmLmluZGV4ZWREQiB8fCBzZWxmLndlYmtpdEluZGV4ZWREQiB8
fCBzZWxmLm1vekluZGV4ZWREQiB8fCBzZWxmLm1zSW5kZXhlZERCIHx8IHNlbGYuT0luZGV4ZWRE
QjsKIAotaW5kZXhlZERCLm9wZW4oJ2N1cnNvci1pbmRleC1kZWxldGUnKQotZGIgPSBldmVudC50
YXJnZXQucmVzdWx0Ci1kYi5zZXRWZXJzaW9uKCduZXcgdmVyc2lvbicpCi1zZXRWZXJzaW9uU3Vj
Y2VzcygpOgotdHJhbnMgPSBldmVudC50YXJnZXQucmVzdWx0Ci1QQVNTIHRyYW5zIGlzIG5vbi1u
dWxsLgotRGVsZXRlZCBhbGwgb2JqZWN0IHN0b3Jlcy4KK2RibmFtZSA9IHNlbGYubG9jYXRpb24u
cGF0aG5hbWUKK2luZGV4ZWREQi5kZWxldGVEYXRhYmFzZShkYm5hbWUpCitpbmRleGVkREIub3Bl
bihkYm5hbWUpCitkYi5zZXRWZXJzaW9uKCcxJykKIG9iamVjdFN0b3JlID0gZGIuY3JlYXRlT2Jq
ZWN0U3RvcmUoJ3Rlc3QnKQogb2JqZWN0U3RvcmUuY3JlYXRlSW5kZXgoJ3Rlc3RJbmRleCcsICd4
JykKIG9iamVjdFN0b3JlLmFkZCh7eDogMX0sICdteUtleTEnKQpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvY3Vyc29yLWtleS1vcmRlci1leHBlY3RlZC50eHQgYi9M
YXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9jdXJzb3Ita2V5LW9yZGVyLWV4cGVjdGVkLnR4
dAppbmRleCA4NDFmOTE3ZmE3MzM1ZjFkODE5Y2JlYTU0MGM5NDliZjZiZjE3MjEzLi45NGE2M2Jh
N2I5OGI3MjM2MDYyMTE3MTVkMTEzOGMyNTU3Y2JiZWVjIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0
cy9zdG9yYWdlL2luZGV4ZWRkYi9jdXJzb3Ita2V5LW9yZGVyLWV4cGVjdGVkLnR4dAorKysgYi9M
YXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9jdXJzb3Ita2V5LW9yZGVyLWV4cGVjdGVkLnR4
dApAQCAtNSwxMSArNSwxMCBAQCBPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2Yg
IlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURQogCiBpbmRleGVkREIg
PSBzZWxmLmluZGV4ZWREQiB8fCBzZWxmLndlYmtpdEluZGV4ZWREQiB8fCBzZWxmLm1vekluZGV4
ZWREQiB8fCBzZWxmLm1zSW5kZXhlZERCIHx8IHNlbGYuT0luZGV4ZWREQjsKIAotCi1pbmRleGVk
REIuZGVsZXRlRGF0YWJhc2UoJ2N1cnNvci1rZXktb3JkZXInKQotb3BlbnJlcSA9IGluZGV4ZWRE
Qi5vcGVuKCdjdXJzb3Ita2V5LW9yZGVyJykKLWRiID0gb3BlbnJlcS5yZXN1bHQKLXZlcnJlcSA9
IGRiLnNldFZlcnNpb24oJzEnKQorZGJuYW1lID0gc2VsZi5sb2NhdGlvbi5wYXRobmFtZQoraW5k
ZXhlZERCLmRlbGV0ZURhdGFiYXNlKGRibmFtZSkKK2luZGV4ZWREQi5vcGVuKGRibmFtZSkKK2Ri
LnNldFZlcnNpb24oJzEnKQogZGIuY3JlYXRlT2JqZWN0U3RvcmUoJ3N0b3JlJykKIAogcG9wdWxh
dGluZyBzdG9yZS4uLgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIv
Y3Vyc29yLW92ZXJsb2Fkcy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4
ZWRkYi9jdXJzb3Itb3ZlcmxvYWRzLWV4cGVjdGVkLnR4dAppbmRleCAzM2NiYjRjNjQ2NzQwYjE4
NTM2YmY2M2YwODEyOTU1YmUxODUyM2I5Li42NjhiMDE4OGI2YjgwZjNjYjI4Y2ZiZDMxYTk1NGI2
NWIyMDU3ODViIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9jdXJz
b3Itb3ZlcmxvYWRzLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4
ZWRkYi9jdXJzb3Itb3ZlcmxvYWRzLWV4cGVjdGVkLnR4dApAQCAtMjksMTEgKzI5LDkgQEAgT24g
c3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93
ZWQgYnkgIlRFU1QgQ09NUExFVEUKIAogaW5kZXhlZERCID0gc2VsZi5pbmRleGVkREIgfHwgc2Vs
Zi53ZWJraXRJbmRleGVkREIgfHwgc2VsZi5tb3pJbmRleGVkREIgfHwgc2VsZi5tc0luZGV4ZWRE
QiB8fCBzZWxmLk9JbmRleGVkREI7CiAKLWRibmFtZSA9ICdjdXJzb3Itb3ZlcmxvYWRzJworZGJu
YW1lID0gc2VsZi5sb2NhdGlvbi5wYXRobmFtZQogaW5kZXhlZERCLmRlbGV0ZURhdGFiYXNlKGRi
bmFtZSkKIGluZGV4ZWREQi5vcGVuKGRibmFtZSkKLWRiID0gcmVxdWVzdC5yZXN1bHQKLVBBU1Mg
ZGIudmVyc2lvbiBpcyAiIgogZGIuc2V0VmVyc2lvbignMScpCiBzdG9yZSA9IGRiLmNyZWF0ZU9i
amVjdFN0b3JlKCdzdG9yZScpCiBpbmRleCA9IHN0b3JlLmNyZWF0ZUluZGV4KCdpbmRleCcsICd2
YWx1ZScpCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9jdXJzb3It
b3ZlcmxvYWRzLmh0bWwgYi9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9jdXJzb3Itb3Zl
cmxvYWRzLmh0bWwKaW5kZXggNjM0MTZhMzdkZWEwZDA1ODc3MjQ4MWRkMDVjM2FlN2UzYmFkMjIw
Ni4uODg2YWMxNjAwOTNmM2UzMWMxNjFlYzY3ZDQ4ZjNjNjAxZGFlNjc5NSAxMDA2NDQKLS0tIGEv
TGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvY3Vyc29yLW92ZXJsb2Fkcy5odG1sCisrKyBi
L0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL2N1cnNvci1vdmVybG9hZHMuaHRtbApAQCAt
NCwzNSArNCwxMSBAQAogPHNjcmlwdD4KIGRlc2NyaXB0aW9uKCJWYWxpZGF0ZSB0aGUgb3Zlcmxv
YWRzIG9mIElEQk9iamVjdFN0b3JlLm9wZW5DdXJzb3IoKSwgSURCSW5kZXgub3BlbkN1cnNvcigp
IGFuZCBJREJJbmRleC5vcGVuS2V5Q3Vyc29yKCkuIik7CiAKLWZ1bmN0aW9uIHRlc3QoKQotewot
ICAgIHJlbW92ZVZlbmRvclByZWZpeGVzKCk7Ci0gICAgcHJlcGFyZURhdGFiYXNlKCk7Ci19Ci0K
IGZ1bmN0aW9uIHByZXBhcmVEYXRhYmFzZSgpCiB7Ci0gICAgZXZhbEFuZExvZygiZGJuYW1lID0g
J2N1cnNvci1vdmVybG9hZHMnIik7Ci0gICAgcmVxdWVzdCA9IGV2YWxBbmRMb2coImluZGV4ZWRE
Qi5kZWxldGVEYXRhYmFzZShkYm5hbWUpIik7Ci0gICAgcmVxdWVzdC5vbmVycm9yID0gdW5leHBl
Y3RlZEVycm9yQ2FsbGJhY2s7Ci0gICAgcmVxdWVzdC5vbnN1Y2Nlc3MgPSBmdW5jdGlvbihlKSB7
Ci0gICAgICAgIHJlcXVlc3QgPSBldmFsQW5kTG9nKCJpbmRleGVkREIub3BlbihkYm5hbWUpIik7
Ci0gICAgICAgIHJlcXVlc3Qub25lcnJvciA9IHVuZXhwZWN0ZWRFcnJvckNhbGxiYWNrOwotICAg
ICAgICByZXF1ZXN0Lm9uc3VjY2VzcyA9IGZ1bmN0aW9uKGUpIHsKLSAgICAgICAgICAgIGV2YWxB
bmRMb2coImRiID0gcmVxdWVzdC5yZXN1bHQiKTsKLSAgICAgICAgICAgIHNob3VsZEJlRXF1YWxU
b1N0cmluZygiZGIudmVyc2lvbiIsICIiKTsKLSAgICAgICAgICAgIHJlcXVlc3QgPSBldmFsQW5k
TG9nKCJkYi5zZXRWZXJzaW9uKCcxJykiKTsKLSAgICAgICAgICAgIHJlcXVlc3Qub25lcnJvciA9
IHVuZXhwZWN0ZWRFcnJvckNhbGxiYWNrOwotICAgICAgICAgICAgcmVxdWVzdC5vbnN1Y2Nlc3Mg
PSBmdW5jdGlvbihlKSB7Ci0gICAgICAgICAgICAgICAgdHJhbnMgPSByZXF1ZXN0LnJlc3VsdDsK
LSAgICAgICAgICAgICAgICBldmFsQW5kTG9nKCJzdG9yZSA9IGRiLmNyZWF0ZU9iamVjdFN0b3Jl
KCdzdG9yZScpIik7Ci0gICAgICAgICAgICAgICAgZXZhbEFuZExvZygiaW5kZXggPSBzdG9yZS5j
cmVhdGVJbmRleCgnaW5kZXgnLCAndmFsdWUnKSIpOwotICAgICAgICAgICAgICAgIGV2YWxBbmRM
b2coInN0b3JlLnB1dCh7dmFsdWU6IDB9LCAwKSIpOwotICAgICAgICAgICAgICAgIHRyYW5zLm9u
Y29tcGxldGUgPSB2ZXJpZnlPdmVybG9hZHM7Ci0KLSAgICAgICAgICAgIH07Ci0gICAgICAgIH07
Ci0gICAgfTsKKyAgICBldmFsQW5kTG9nKCJzdG9yZSA9IGRiLmNyZWF0ZU9iamVjdFN0b3JlKCdz
dG9yZScpIik7CisgICAgZXZhbEFuZExvZygiaW5kZXggPSBzdG9yZS5jcmVhdGVJbmRleCgnaW5k
ZXgnLCAndmFsdWUnKSIpOworICAgIGV2YWxBbmRMb2coInN0b3JlLnB1dCh7dmFsdWU6IDB9LCAw
KSIpOwogfQogCiBmdW5jdGlvbiB2ZXJpZnlPdmVybG9hZHMoKQpAQCAtMTIzLDcgKzk5LDcgQEAg
ZnVuY3Rpb24gY2hlY2tDdXJzb3JEaXJlY3Rpb24oc3RhdGVtZW50LCBkaXJlY3Rpb24pCiAgICAg
fTsKIH0KIAotdGVzdCgpOworaW5kZXhlZERCVGVzdChwcmVwYXJlRGF0YWJhc2UsIHZlcmlmeU92
ZXJsb2Fkcyk7CiAKIDwvc2NyaXB0PgogPHNjcmlwdCBzcmM9Ii4uLy4uL2Zhc3QvanMvcmVzb3Vy
Y2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9z
dG9yYWdlL2luZGV4ZWRkYi9jdXJzb3ItcHJldi1uby1kdXBsaWNhdGUtZXhwZWN0ZWQudHh0IGIv
TGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvY3Vyc29yLXByZXYtbm8tZHVwbGljYXRlLWV4
cGVjdGVkLnR4dAppbmRleCAyNjZmMjQ4Y2FjYjZmZDY2MzI2OWNkODg5MTZjOGE1NTIyMmJhYzQz
Li5lZTBhNWEyMjgzYmJmM2VhNTZkZDQ1Yzk4Y2QzOWNhMDhhNGM1OWQ4IDEwMDY0NAotLS0gYS9M
YXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9jdXJzb3ItcHJldi1uby1kdXBsaWNhdGUtZXhw
ZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL2N1cnNvci1wcmV2
LW5vLWR1cGxpY2F0ZS1leHBlY3RlZC50eHQKQEAgLTUsMTEgKzUsMTAgQEAgT24gc3VjY2Vzcywg
eW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRF
U1QgQ09NUExFVEUKIAogaW5kZXhlZERCID0gc2VsZi5pbmRleGVkREIgfHwgc2VsZi53ZWJraXRJ
bmRleGVkREIgfHwgc2VsZi5tb3pJbmRleGVkREIgfHwgc2VsZi5tc0luZGV4ZWREQiB8fCBzZWxm
Lk9JbmRleGVkREI7CiAKLQotb3BlbnJlcSA9IGluZGV4ZWREQi5vcGVuKCdjdXJzb3ItcHJldi1u
by1kdXBsaWNhdGUnKQotZGIgPSBvcGVucmVxLnJlc3VsdAotdmVycmVxID0gZGIuc2V0VmVyc2lv
bignMScpCi1EZWxldGVkIGFsbCBvYmplY3Qgc3RvcmVzLgorZGJuYW1lID0gc2VsZi5sb2NhdGlv
bi5wYXRobmFtZQoraW5kZXhlZERCLmRlbGV0ZURhdGFiYXNlKGRibmFtZSkKK2luZGV4ZWREQi5v
cGVuKGRibmFtZSkKK2RiLnNldFZlcnNpb24oJzEnKQogc3RvcmUgPSBkYi5jcmVhdGVPYmplY3RT
dG9yZSgnc3RvcmUnKQogc3RvcmUuY3JlYXRlSW5kZXgoJ2luZGV4JywgJ3NvcnRlZCcpCiAKZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL2N1cnNvci1wcmltYXJ5LWtl
eS1vcmRlci1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9jdXJz
b3ItcHJpbWFyeS1rZXktb3JkZXItZXhwZWN0ZWQudHh0CmluZGV4IGI3NjcwMWU3YTEzZmU4MDg0
M2U2ZDFhNmM0N2Q1MTdjOTI3NTEzMDMuLjJlZjM1NTVlN2E1ODY3NzJjMDkxODlkY2Y5ZTQ5NTNl
ZjMzNDM3YTcgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL2N1cnNv
ci1wcmltYXJ5LWtleS1vcmRlci1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvc3RvcmFn
ZS9pbmRleGVkZGIvY3Vyc29yLXByaW1hcnkta2V5LW9yZGVyLWV4cGVjdGVkLnR4dApAQCAtNSwx
MSArNSwxMCBAQCBPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1l
c3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURQogCiBpbmRleGVkREIgPSBzZWxmLmlu
ZGV4ZWREQiB8fCBzZWxmLndlYmtpdEluZGV4ZWREQiB8fCBzZWxmLm1vekluZGV4ZWREQiB8fCBz
ZWxmLm1zSW5kZXhlZERCIHx8IHNlbGYuT0luZGV4ZWREQjsKIAotCi1pbmRleGVkREIuZGVsZXRl
RGF0YWJhc2UoJ2N1cnNvci1wcmltYXJ5LWtleS1vcmRlcicpCi1vcGVuUmVxdWVzdCA9IGluZGV4
ZWREQi5vcGVuKCdjdXJzb3ItcHJpbWFyeS1rZXktb3JkZXInKQotZGIgPSBvcGVuUmVxdWVzdC5y
ZXN1bHQKLXZlcnNpb25DaGFuZ2VSZXF1ZXN0ID0gZGIuc2V0VmVyc2lvbignMScpCitkYm5hbWUg
PSBzZWxmLmxvY2F0aW9uLnBhdGhuYW1lCitpbmRleGVkREIuZGVsZXRlRGF0YWJhc2UoZGJuYW1l
KQoraW5kZXhlZERCLm9wZW4oZGJuYW1lKQorZGIuc2V0VmVyc2lvbignMScpCiBzdG9yZSA9IGRi
LmNyZWF0ZU9iamVjdFN0b3JlKCdzdG9yZScpCiBpbmRleCA9IHN0b3JlLmNyZWF0ZUluZGV4KCdp
bmRleCcsICdpbmRleEtleScpCiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5k
ZXhlZGRiL2N1cnNvci1yZXZlcnNlLWJ1Zy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9zdG9y
YWdlL2luZGV4ZWRkYi9jdXJzb3ItcmV2ZXJzZS1idWctZXhwZWN0ZWQudHh0CmluZGV4IDE2MTkw
OGRhNDg0NGY0YjUzYmMxNTRjOTllMDYxOWM0M2IyMWU0ZmQuLmMzYjZjYTZkOWQ0NzQwN2MxYjE2
MWVjMDkxZGI2ZTU0YmFiNjQyOWUgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5k
ZXhlZGRiL2N1cnNvci1yZXZlcnNlLWJ1Zy1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMv
c3RvcmFnZS9pbmRleGVkZGIvY3Vyc29yLXJldmVyc2UtYnVnLWV4cGVjdGVkLnR4dApAQCAtNSwx
MSArNSwxMCBAQCBPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1l
c3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURQogCiBpbmRleGVkREIgPSBzZWxmLmlu
ZGV4ZWREQiB8fCBzZWxmLndlYmtpdEluZGV4ZWREQiB8fCBzZWxmLm1vekluZGV4ZWREQiB8fCBz
ZWxmLm1zSW5kZXhlZERCIHx8IHNlbGYuT0luZGV4ZWREQjsKIAotCi1vcGVucmVxID0gaW5kZXhl
ZERCLm9wZW4oJ2N1cnNvci1yZXZlcnNlLWJ1ZycpCi1kYiA9IG9wZW5yZXEucmVzdWx0Ci12ZXJy
ZXEgPSBkYi5zZXRWZXJzaW9uKCcxJykKLURlbGV0ZWQgYWxsIG9iamVjdCBzdG9yZXMuCitkYm5h
bWUgPSBzZWxmLmxvY2F0aW9uLnBhdGhuYW1lCitpbmRleGVkREIuZGVsZXRlRGF0YWJhc2UoZGJu
YW1lKQoraW5kZXhlZERCLm9wZW4oZGJuYW1lKQorZGIuc2V0VmVyc2lvbignMScpCiBzdG9yZSA9
IGRiLmNyZWF0ZU9iamVjdFN0b3JlKCdzdG9yZScpCiBzdG9yZS5jcmVhdGVJbmRleCgnaW5kZXgn
LCAnJykKIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvY3Vyc29y
LXNraXAtZGVsZXRlZC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRk
Yi9jdXJzb3Itc2tpcC1kZWxldGVkLWV4cGVjdGVkLnR4dAppbmRleCBhMGRiOWVhMTI0MDBmMzAy
MzlhN2FkMTUwYjhhODI1YTVhZThkMGE5Li45MmU5N2YxMzI2ZmFhNDdlODk4ODhkMzliODYyNTJm
ZDE2M2MwNTQ3IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9jdXJz
b3Itc2tpcC1kZWxldGVkLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9zdG9yYWdlL2lu
ZGV4ZWRkYi9jdXJzb3Itc2tpcC1kZWxldGVkLWV4cGVjdGVkLnR4dApAQCAtNSwxMyArNSwxMCBA
QCBPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBm
b2xsb3dlZCBieSAiVEVTVCBDT01QTEVURQogCiBpbmRleGVkREIgPSBzZWxmLmluZGV4ZWREQiB8
fCBzZWxmLndlYmtpdEluZGV4ZWREQiB8fCBzZWxmLm1vekluZGV4ZWREQiB8fCBzZWxmLm1zSW5k
ZXhlZERCIHx8IHNlbGYuT0luZGV4ZWREQjsKIAotaW5kZXhlZERCLm9wZW4oJ2N1cnNvci1za2lw
LWRlbGV0ZWQnKQotZGIgPSBldmVudC50YXJnZXQucmVzdWx0Ci1kYi5zZXRWZXJzaW9uKCduZXcg
dmVyc2lvbicpCi1zZXRWZXJzaW9uU3VjY2VzcygpOgotdHJhbnMgPSBldmVudC50YXJnZXQucmVz
dWx0Ci1QQVNTIHRyYW5zIGlzIG5vbi1udWxsLgotRGVsZXRlZCBhbGwgb2JqZWN0IHN0b3Jlcy4K
K2RibmFtZSA9IHNlbGYubG9jYXRpb24ucGF0aG5hbWUKK2luZGV4ZWREQi5kZWxldGVEYXRhYmFz
ZShkYm5hbWUpCitpbmRleGVkREIub3BlbihkYm5hbWUpCitkYi5zZXRWZXJzaW9uKCcxJykKIG9i
amVjdFN0b3JlID0gZGIuY3JlYXRlT2JqZWN0U3RvcmUoJ3N0b3JlJywge2tleVBhdGg6ICdpZCd9
KQogb2JqZWN0U3RvcmUuY3JlYXRlSW5kZXgoJ25hbWVJbmRleCcsICduYW1lJykKIApkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvY3Vyc29yLXVwZGF0ZS1leHBlY3Rl
ZC50eHQgYi9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9jdXJzb3ItdXBkYXRlLWV4cGVj
dGVkLnR4dAppbmRleCA1NzEyMjg3MTUyZmM0NzRhZjJiNWVlOTUwYjcxYjIwM2Y5OTg3NWFlLi42
NWI4ZjliZDQyOGE3NDEzMzI0NWY0YjM2OWJkZmYyOGU1NWIyY2M1IDEwMDY0NAotLS0gYS9MYXlv
dXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9jdXJzb3ItdXBkYXRlLWV4cGVjdGVkLnR4dAorKysg
Yi9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9jdXJzb3ItdXBkYXRlLWV4cGVjdGVkLnR4
dApAQCAtNSwxMyArNSwxMCBAQCBPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2Yg
IlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURQogCiBpbmRleGVkREIg
PSBzZWxmLmluZGV4ZWREQiB8fCBzZWxmLndlYmtpdEluZGV4ZWREQiB8fCBzZWxmLm1vekluZGV4
ZWREQiB8fCBzZWxmLm1zSW5kZXhlZERCIHx8IHNlbGYuT0luZGV4ZWREQjsKIAotaW5kZXhlZERC
Lm9wZW4oJ2N1cnNvci11cGRhdGUnKQotZGIgPSBldmVudC50YXJnZXQucmVzdWx0Ci1kYi5zZXRW
ZXJzaW9uKCduZXcgdmVyc2lvbicpCi1zZXRWZXJzaW9uU3VjY2VzcygpOgotdHJhbnMgPSBldmVu
dC50YXJnZXQucmVzdWx0Ci1QQVNTIHRyYW5zIGlzIG5vbi1udWxsLgotRGVsZXRlZCBhbGwgb2Jq
ZWN0IHN0b3Jlcy4KK2RibmFtZSA9IHNlbGYubG9jYXRpb24ucGF0aG5hbWUKK2luZGV4ZWREQi5k
ZWxldGVEYXRhYmFzZShkYm5hbWUpCitpbmRleGVkREIub3BlbihkYm5hbWUpCitkYi5zZXRWZXJz
aW9uKCcxJykKIG9iamVjdFN0b3JlID0gZGIuY3JlYXRlT2JqZWN0U3RvcmUoJ2Jhc2ljU3RvcmUn
KQogb2JqZWN0U3RvcmUuYWRkKCdteVZhbHVlMScsICdteUtleTEnKS5vbmVycm9yID0gdW5leHBl
Y3RlZEVycm9yQ2FsbGJhY2sKIG9iamVjdFN0b3JlLmFkZCgnbXlWYWx1ZTInLCAnbXlLZXkyJyku
b25lcnJvciA9IHVuZXhwZWN0ZWRFcnJvckNhbGxiYWNrCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9zdG9yYWdlL2luZGV4ZWRkYi9jdXJzb3ItdXBkYXRlLXZhbHVlLWFyZ3VtZW50LXJlcXVpcmVk
LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL2N1cnNvci11cGRh
dGUtdmFsdWUtYXJndW1lbnQtcmVxdWlyZWQtZXhwZWN0ZWQudHh0CmluZGV4IGI3ZGE1M2I1Yjgw
MTk2MjFiZWUwOTUxMDMxZDk3NWMwMzI4NzBhMzEuLjQwOTZmYjMxNjdkMGY1ZGY5NTFhZGFkMGQ2
MDQ3NDNmOWYwODI5YTkgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRi
L2N1cnNvci11cGRhdGUtdmFsdWUtYXJndW1lbnQtcmVxdWlyZWQtZXhwZWN0ZWQudHh0CisrKyBi
L0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL2N1cnNvci11cGRhdGUtdmFsdWUtYXJndW1l
bnQtcmVxdWlyZWQtZXhwZWN0ZWQudHh0CkBAIC01LDEwICs1LDEwIEBAIE9uIHN1Y2Nlc3MsIHlv
dSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNU
IENPTVBMRVRFCiAKIGluZGV4ZWREQiA9IHNlbGYuaW5kZXhlZERCIHx8IHNlbGYud2Via2l0SW5k
ZXhlZERCIHx8IHNlbGYubW96SW5kZXhlZERCIHx8IHNlbGYubXNJbmRleGVkREIgfHwgc2VsZi5P
SW5kZXhlZERCOwogCi1pbmRleGVkREIub3BlbihuYW1lKQotZGIgPSBldmVudC50YXJnZXQucmVz
dWx0Ci1yZXF1ZXN0ID0gZGIuc2V0VmVyc2lvbignMScpCi1EZWxldGVkIGFsbCBvYmplY3Qgc3Rv
cmVzLgorZGJuYW1lID0gc2VsZi5sb2NhdGlvbi5wYXRobmFtZQoraW5kZXhlZERCLmRlbGV0ZURh
dGFiYXNlKGRibmFtZSkKK2luZGV4ZWREQi5vcGVuKGRibmFtZSkKK2RiLnNldFZlcnNpb24oJzEn
KQogZGIuY3JlYXRlT2JqZWN0U3RvcmUoJ2F1dG9JbmNyZW1lbnQnLCB7IGF1dG9JbmNyZW1lbnQ6
IHRydWUgfSk7CiByZXF1ZXN0ID0gb2JqZWN0U3RvcmUub3BlbkN1cnNvcigpOwoga2V5cyA9IFsx
LCAtMSwgMCwgMTAsIDIwMDAsICdxJywgJ3onLCAndHdvJywgJ2InLCAnYSddOwpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvY3Vyc29yLXZhbHVlLWV4cGVjdGVkLnR4
dCBiL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL2N1cnNvci12YWx1ZS1leHBlY3RlZC50
eHQKaW5kZXggMzAzYTQyMTVhY2U2ZTc0MzFjM2MxYzhlMjI4MTJmN2YxYzFiN2Q3Yy4uOTU5Yzk5
MzYyNTg2MzkyZWU1NGE4NzA1YmQzNWQwODY0NjVjMDhlNSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVz
dHMvc3RvcmFnZS9pbmRleGVkZGIvY3Vyc29yLXZhbHVlLWV4cGVjdGVkLnR4dAorKysgYi9MYXlv
dXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9jdXJzb3ItdmFsdWUtZXhwZWN0ZWQudHh0CkBAIC01
LDExICs1LDEwIEBAIE9uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIg
bWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFCiAKIGluZGV4ZWREQiA9IHNlbGYu
aW5kZXhlZERCIHx8IHNlbGYud2Via2l0SW5kZXhlZERCIHx8IHNlbGYubW96SW5kZXhlZERCIHx8
IHNlbGYubXNJbmRleGVkREIgfHwgc2VsZi5PSW5kZXhlZERCOwogCi1yZXF1ZXN0ID0gaW5kZXhl
ZERCLm9wZW4oJ2N1cnNvci12YWx1ZScpCi1kYiA9IHJlcXVlc3QucmVzdWx0Ci1yZXF1ZXN0ID0g
ZGIuc2V0VmVyc2lvbignbmV3IHZlcnNpb24nKQotdHJhbnNhY3Rpb24gPSByZXF1ZXN0LnJlc3Vs
dAotRGVsZXRlZCBhbGwgb2JqZWN0IHN0b3Jlcy4KK2RibmFtZSA9IHNlbGYubG9jYXRpb24ucGF0
aG5hbWUKK2luZGV4ZWREQi5kZWxldGVEYXRhYmFzZShkYm5hbWUpCitpbmRleGVkREIub3Blbihk
Ym5hbWUpCitkYi5zZXRWZXJzaW9uKCcxJykKIGRiLmNyZWF0ZU9iamVjdFN0b3JlKCdzdG9yZScp
CiAKIHRlc3RDdXJzb3IoKToKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhl
ZGRiL2RhdGEtY29ycnVwdGlvbi1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9zdG9yYWdlL2lu
ZGV4ZWRkYi9kYXRhLWNvcnJ1cHRpb24tZXhwZWN0ZWQudHh0CmluZGV4IGVkZmYxZDMxYzRhZmJl
NzVjZjhmMjI5MGIwNGU1N2UyNzMyMzJkMjUuLjA5NGQyN2U2Mzk2MDNiN2FlNWI4NWQwODRkYTI2
Njc4Yjc4NGNkZjYgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL2Rh
dGEtY29ycnVwdGlvbi1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRl
eGVkZGIvZGF0YS1jb3JydXB0aW9uLWV4cGVjdGVkLnR4dApAQCAtNSwxNCArNSwxMCBAQCBPbiBz
dWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dl
ZCBieSAiVEVTVCBDT01QTEVURQogCiBpbmRleGVkREIgPSBzZWxmLmluZGV4ZWREQiB8fCBzZWxm
LndlYmtpdEluZGV4ZWREQiB8fCBzZWxmLm1vekluZGV4ZWREQiB8fCBzZWxmLm1zSW5kZXhlZERC
IHx8IHNlbGYuT0luZGV4ZWREQjsKIAotaW5kZXhlZERCLm9wZW4oJ2RhdGEtY29ycnVwdGlvbicp
Ci1vcGVuU3VjY2VzcygpOgotZGIgPSBldmVudC50YXJnZXQucmVzdWx0Ci1kYi5zZXRWZXJzaW9u
KCduZXcgdmVyc2lvbicpCi1zZXRWZXJzaW9uU3VjY2VzcygpOgotdHJhbnMgPSBldmVudC50YXJn
ZXQucmVzdWx0Ci1QQVNTIHRyYW5zIGlzIG5vbi1udWxsLgotRGVsZXRlZCBhbGwgb2JqZWN0IHN0
b3Jlcy4KK2RibmFtZSA9IHNlbGYubG9jYXRpb24ucGF0aG5hbWUKK2luZGV4ZWREQi5kZWxldGVE
YXRhYmFzZShkYm5hbWUpCitpbmRleGVkREIub3BlbihkYm5hbWUpCitkYi5zZXRWZXJzaW9uKCcx
JykKIGRiLmNyZWF0ZU9iamVjdFN0b3JlKCdzdG9yZU5hbWUnKQogYWRkRGF0YSgpOgogdHJhbnNh
Y3Rpb24gPSBkYi50cmFuc2FjdGlvbihbJ3N0b3JlTmFtZSddLCAncmVhZHdyaXRlJykKZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL2RlbGV0ZS1yYW5nZS1leHBlY3Rl
ZC50eHQgYi9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9kZWxldGUtcmFuZ2UtZXhwZWN0
ZWQudHh0CmluZGV4IGMzYzgyMDI1YjQ4ODdhMjE3MGNkZjgxMGQwZjMzZGQxMWFlODc1N2MuLmVm
YzMwMTJlZDgzZjk3MzNlZDJiZDE3OWJhZjA2MjcwYWI2MmIyZGMgMTAwNjQ0Ci0tLSBhL0xheW91
dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL2RlbGV0ZS1yYW5nZS1leHBlY3RlZC50eHQKKysrIGIv
TGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvZGVsZXRlLXJhbmdlLWV4cGVjdGVkLnR4dApA
QCAtNSwxMSArNSwxMCBAQCBPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBB
U1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURQogCiBpbmRleGVkREIgPSBz
ZWxmLmluZGV4ZWREQiB8fCBzZWxmLndlYmtpdEluZGV4ZWREQiB8fCBzZWxmLm1vekluZGV4ZWRE
QiB8fCBzZWxmLm1zSW5kZXhlZERCIHx8IHNlbGYuT0luZGV4ZWREQjsKIAotcmVxdWVzdCA9IGlu
ZGV4ZWREQi5kZWxldGVEYXRhYmFzZSgnZGVsZXRlLXJhbmdlJykKLXJlcXVlc3QgPSBpbmRleGVk
REIub3BlbignZGVsZXRlLXJhbmdlJykKLWRiID0gcmVxdWVzdC5yZXN1bHQKLXJlcXVlc3QgPSBk
Yi5zZXRWZXJzaW9uKCcxJykKLXRyYW5zID0gcmVxdWVzdC5yZXN1bHQKK2RibmFtZSA9IHNlbGYu
bG9jYXRpb24ucGF0aG5hbWUKK2luZGV4ZWREQi5kZWxldGVEYXRhYmFzZShkYm5hbWUpCitpbmRl
eGVkREIub3BlbihkYm5hbWUpCitkYi5zZXRWZXJzaW9uKCcxJykKIGRiLmNyZWF0ZU9iamVjdFN0
b3JlKCdzdG9yZScpCiAKIHRyYW5zID0gZGIudHJhbnNhY3Rpb24oJ3N0b3JlJywgJ3JlYWR3cml0
ZScpCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9kZWxldGVJbmRl
eC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9kZWxldGVJbmRl
eC1leHBlY3RlZC50eHQKaW5kZXggM2MxYjhjZDJmNjU2OWJkMDk5NTNjZDZjM2Q0ZTIyZWU3Mjlm
YTI1Ny4uNzc3MDgwNTJjMTQ1ZWI2NTVlZGM1ODBkMWQwMmQxMDhmNTFlOTY1ZiAxMDA2NDQKLS0t
IGEvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvZGVsZXRlSW5kZXgtZXhwZWN0ZWQudHh0
CisrKyBiL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL2RlbGV0ZUluZGV4LWV4cGVjdGVk
LnR4dApAQCAtNSwxMSArNSwxMCBAQCBPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMg
b2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURQogCiBpbmRleGVk
REIgPSBzZWxmLmluZGV4ZWREQiB8fCBzZWxmLndlYmtpdEluZGV4ZWREQiB8fCBzZWxmLm1veklu
ZGV4ZWREQiB8fCBzZWxmLm1zSW5kZXhlZERCIHx8IHNlbGYuT0luZGV4ZWREQjsKIAotaW5kZXhl
ZERCLm9wZW4oJ2RlbGV0ZUluZGV4JykKLWRiID0gZXZlbnQudGFyZ2V0LnJlc3VsdAotcmVxdWVz
dCA9IGRiLnNldFZlcnNpb24oJzEnKQotdHJhbnNhY3Rpb24gPSBldmVudC50YXJnZXQucmVzdWx0
OwotRGVsZXRlZCBhbGwgb2JqZWN0IHN0b3Jlcy4KK2RibmFtZSA9IHNlbGYubG9jYXRpb24ucGF0
aG5hbWUKK2luZGV4ZWREQi5kZWxldGVEYXRhYmFzZShkYm5hbWUpCitpbmRleGVkREIub3Blbihk
Ym5hbWUpCitkYi5zZXRWZXJzaW9uKCcxJykKIG9iamVjdFN0b3JlID0gZGIuY3JlYXRlT2JqZWN0
U3RvcmUoJ2ZvbycpOwogRXhwZWN0aW5nIGV4Y2VwdGlvbiBmcm9tIG9iamVjdFN0b3JlLmRlbGV0
ZUluZGV4KCdmaXJzdCcpCiBQQVNTIEV4Y2VwdGlvbiB3YXMgdGhyb3duLgpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvZGVsZXRlT2JqZWN0U3RvcmUtbmFtZS1hcmd1
bWVudC1yZXF1aXJlZC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRk
Yi9kZWxldGVPYmplY3RTdG9yZS1uYW1lLWFyZ3VtZW50LXJlcXVpcmVkLWV4cGVjdGVkLnR4dApp
bmRleCA2N2FjNjczMTdjMTQ1YmEwNmVjYzU1MGEwZGI4MjVhMzI1YWU4Zjg2Li40YTliMGEwNmU5
NzQ5Njc0YTY5ZjhjYWQ3ZTQ2MmUxZjAzYjZiMWI0IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9z
dG9yYWdlL2luZGV4ZWRkYi9kZWxldGVPYmplY3RTdG9yZS1uYW1lLWFyZ3VtZW50LXJlcXVpcmVk
LWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9kZWxldGVP
YmplY3RTdG9yZS1uYW1lLWFyZ3VtZW50LXJlcXVpcmVkLWV4cGVjdGVkLnR4dApAQCAtNSwxMCAr
NSwxMCBAQCBPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3Nh
Z2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURQogCiBpbmRleGVkREIgPSBzZWxmLmluZGV4
ZWREQiB8fCBzZWxmLndlYmtpdEluZGV4ZWREQiB8fCBzZWxmLm1vekluZGV4ZWREQiB8fCBzZWxm
Lm1zSW5kZXhlZERCIHx8IHNlbGYuT0luZGV4ZWREQjsKIAotaW5kZXhlZERCLm9wZW4obmFtZSkK
LWRiID0gZXZlbnQudGFyZ2V0LnJlc3VsdAotcmVxdWVzdCA9IGRiLnNldFZlcnNpb24oJzEnKQot
RGVsZXRlZCBhbGwgb2JqZWN0IHN0b3Jlcy4KK2RibmFtZSA9IHNlbGYubG9jYXRpb24ucGF0aG5h
bWUKK2luZGV4ZWREQi5kZWxldGVEYXRhYmFzZShkYm5hbWUpCitpbmRleGVkREIub3BlbihkYm5h
bWUpCitkYi5zZXRWZXJzaW9uKCcxJykKIFBBU1MgZGIuZGVsZXRlT2JqZWN0U3RvcmUoKTsgdGhy
ZXcgZXhjZXB0aW9uIFR5cGVFcnJvcjogTm90IGVub3VnaCBhcmd1bWVudHMuCiBQQVNTIHN1Y2Nl
c3NmdWxseVBhcnNlZCBpcyB0cnVlCiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3N0b3JhZ2Uv
aW5kZXhlZGRiL2RlbGV0ZU9iamVjdFN0b3JlLW51bGwtbmFtZS1leHBlY3RlZC50eHQgYi9MYXlv
dXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9kZWxldGVPYmplY3RTdG9yZS1udWxsLW5hbWUtZXhw
ZWN0ZWQudHh0CmluZGV4IDdiYzM2NDk5OGY4OTQ1OGRlODBiZGE2YWIwNTAyZWMyOTc3ZmNlZDUu
LjdmMmQxYTFjNjlmNmJmMWRhYjFkMTAzZjQ1OTFlNGQ3YTJkMjQxZWYgMTAwNjQ0Ci0tLSBhL0xh
eW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL2RlbGV0ZU9iamVjdFN0b3JlLW51bGwtbmFtZS1l
eHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvZGVsZXRlT2Jq
ZWN0U3RvcmUtbnVsbC1uYW1lLWV4cGVjdGVkLnR4dApAQCAtNSwxMCArNSwxMCBAQCBPbiBzdWNj
ZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBi
eSAiVEVTVCBDT01QTEVURQogCiBpbmRleGVkREIgPSBzZWxmLmluZGV4ZWREQiB8fCBzZWxmLndl
YmtpdEluZGV4ZWREQiB8fCBzZWxmLm1vekluZGV4ZWREQiB8fCBzZWxmLm1zSW5kZXhlZERCIHx8
IHNlbGYuT0luZGV4ZWREQjsKIAotaW5kZXhlZERCLm9wZW4obmFtZSkKLWRiID0gZXZlbnQudGFy
Z2V0LnJlc3VsdAotcmVxdWVzdCA9IGRiLnNldFZlcnNpb24oJzEnKQotRGVsZXRlZCBhbGwgb2Jq
ZWN0IHN0b3Jlcy4KK2RibmFtZSA9IHNlbGYubG9jYXRpb24ucGF0aG5hbWUKK2luZGV4ZWREQi5k
ZWxldGVEYXRhYmFzZShkYm5hbWUpCitpbmRleGVkREIub3BlbihkYm5hbWUpCitkYi5zZXRWZXJz
aW9uKCcxJykKIGRiLmNyZWF0ZU9iamVjdFN0b3JlKCdudWxsJyk7CiBkYi5kZWxldGVPYmplY3RT
dG9yZShudWxsKTsKIFBBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL2RlbGV0ZWQtb2JqZWN0cy1leHBlY3RlZC50
eHQgYi9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9kZWxldGVkLW9iamVjdHMtZXhwZWN0
ZWQudHh0CmluZGV4IGI4ZmUyNGU5M2NkNTg1ZGMzYjg3ODIwN2Y0ODkwM2VjOWQ2N2Y4YjAuLjFk
MjUwNmQxMmRmM2E0ZTI0NzIzYmNhOWFhNWM3N2VmZjY5ZjkwODQgMTAwNjQ0Ci0tLSBhL0xheW91
dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL2RlbGV0ZWQtb2JqZWN0cy1leHBlY3RlZC50eHQKKysr
IGIvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvZGVsZXRlZC1vYmplY3RzLWV4cGVjdGVk
LnR4dApAQCAtNiwxOCArNiwxNCBAQCBPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMg
b2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURQogaW5kZXhlZERC
ID0gc2VsZi5pbmRleGVkREIgfHwgc2VsZi53ZWJraXRJbmRleGVkREIgfHwgc2VsZi5tb3pJbmRl
eGVkREIgfHwgc2VsZi5tc0luZGV4ZWREQiB8fCBzZWxmLk9JbmRleGVkREI7CiAKIGRibmFtZSA9
IHNlbGYubG9jYXRpb24ucGF0aG5hbWUKLXJlcXVlc3QgPSBpbmRleGVkREIuZGVsZXRlRGF0YWJh
c2UoZGJuYW1lKQotCi1vcGVuRGF0YWJhc2UoKToKLXJlcXVlc3QgPSBpbmRleGVkREIub3Blbihk
Ym5hbWUpCi1jb25uZWN0aW9uID0gcmVxdWVzdC5yZXN1bHQKLXJlcXVlc3QgPSBjb25uZWN0aW9u
LnNldFZlcnNpb24oJzEnKQotCi1kZWxldGVkU3RvcmUgPSBjb25uZWN0aW9uLmNyZWF0ZU9iamVj
dFN0b3JlKCdkZWxldGVkU3RvcmUnKQotc3RvcmUgPSBjb25uZWN0aW9uLmNyZWF0ZU9iamVjdFN0
b3JlKCdzdG9yZScpCitpbmRleGVkREIuZGVsZXRlRGF0YWJhc2UoZGJuYW1lKQoraW5kZXhlZERC
Lm9wZW4oZGJuYW1lKQorZGIuc2V0VmVyc2lvbignMScpCitkZWxldGVkU3RvcmUgPSBkYi5jcmVh
dGVPYmplY3RTdG9yZSgnZGVsZXRlZFN0b3JlJykKK3N0b3JlID0gZGIuY3JlYXRlT2JqZWN0U3Rv
cmUoJ3N0b3JlJykKIGRlbGV0ZWRJbmRleCA9IHN0b3JlLmNyZWF0ZUluZGV4KCdkZWxldGVkSW5k
ZXgnLCAncGF0aCcpCiAKLWNvbm5lY3Rpb24uZGVsZXRlT2JqZWN0U3RvcmUoJ2RlbGV0ZWRTdG9y
ZScpCitkYi5kZWxldGVPYmplY3RTdG9yZSgnZGVsZXRlZFN0b3JlJykKIHN0b3JlLmRlbGV0ZUlu
ZGV4KCdkZWxldGVkSW5kZXgnKQogCiBFeHBlY3RpbmcgZXhjZXB0aW9uIGZyb20gZGVsZXRlZFN0
b3JlLnB1dCgwLCAwKQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIv
ZGVsZXRlZGF0YWJhc2UtdHJhbnNhY3Rpb24tZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvc3Rv
cmFnZS9pbmRleGVkZGIvZGVsZXRlZGF0YWJhc2UtdHJhbnNhY3Rpb24tZXhwZWN0ZWQudHh0Cmlu
ZGV4IDkxZjljZjAwZmM5MWFlZWViZTgyNjFlMTFhMWIxNGViNjc0MzU5YmEuLjU4NDZjZTc5NGE4
MDEzNDIxMTUzZTNhYTA1ZjdiZDdmNDE5YzJkYTAgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3N0
b3JhZ2UvaW5kZXhlZGRiL2RlbGV0ZWRhdGFiYXNlLXRyYW5zYWN0aW9uLWV4cGVjdGVkLnR4dAor
KysgYi9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9kZWxldGVkYXRhYmFzZS10cmFuc2Fj
dGlvbi1leHBlY3RlZC50eHQKQEAgLTUsMTQgKzUsMTEgQEAgT24gc3VjY2VzcywgeW91IHdpbGwg
c2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExF
VEUKIAogaW5kZXhlZERCID0gc2VsZi5pbmRleGVkREIgfHwgc2VsZi53ZWJraXRJbmRleGVkREIg
fHwgc2VsZi5tb3pJbmRleGVkREIgfHwgc2VsZi5tc0luZGV4ZWREQiB8fCBzZWxmLk9JbmRleGVk
REI7CiAKLWRibmFtZTEgPSAnZGVsZXRlZGF0YWJhc2UtdHJhbnNhY3Rpb24nCi1kYm5hbWUyID0g
J2RlbGV0ZWRhdGFiYXNlLXRyYW5zYWN0aW9uMicKLQotUHJlcGFyZSBkYXRhYmFzZToKLWluZGV4
ZWREQi5kZWxldGVEYXRhYmFzZShkYm5hbWUxKQotcmVxdWVzdCA9IGluZGV4ZWREQi5vcGVuKGRi
bmFtZTEpCi1kYiA9IHJlcXVlc3QucmVzdWx0CitkYm5hbWUgPSBzZWxmLmxvY2F0aW9uLnBhdGhu
YW1lCitpbmRleGVkREIuZGVsZXRlRGF0YWJhc2UoZGJuYW1lKQoraW5kZXhlZERCLm9wZW4oZGJu
YW1lKQogZGIuc2V0VmVyc2lvbignMScpCitkYm5hbWUyID0gZGIubmFtZSArICcyJwogZGIuY3Jl
YXRlT2JqZWN0U3RvcmUoJ3N0b3JlJykKIAogU3RhcnQgYSB0cmFuc2FjdGlvbiBhZ2FpbnN0IHRo
ZSBmaXJzdCBkYXRhYmFzZToKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhl
ZGRiL2RlbGV0ZWRhdGFiYXNlLXRyYW5zYWN0aW9uLmh0bWwgYi9MYXlvdXRUZXN0cy9zdG9yYWdl
L2luZGV4ZWRkYi9kZWxldGVkYXRhYmFzZS10cmFuc2FjdGlvbi5odG1sCmluZGV4IGNlNDJhMWY5
Zjc1OTM1NmM3ZjA0MDEzMmFiNjY3MDc5YWFiMTQ3NzEuLjlkYzk3NzU5Y2QxM2FmZGE0NGVhMThk
YWU2NTBmOThlNjVjZjYzZjQgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhl
ZGRiL2RlbGV0ZWRhdGFiYXNlLXRyYW5zYWN0aW9uLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvc3Rv
cmFnZS9pbmRleGVkZGIvZGVsZXRlZGF0YWJhc2UtdHJhbnNhY3Rpb24uaHRtbApAQCAtMywyOCAr
MywxMSBAQAogPHNjcmlwdCBzcmM9InJlc291cmNlcy9zaGFyZWQuanMiPjwvc2NyaXB0PgogPHNj
cmlwdD4KIGRlc2NyaXB0aW9uKCJFbnN1cmUgZGVsZXRlRGF0YWJhc2UoKSBjYW4gcnVuIGNvbmN1
cnJlbnRseSB3aXRoIHRyYW5zYWN0aW9ucyBpbiBvdGhlciBkYXRhYmFzZXMiKTsKKwogZnVuY3Rp
b24gdGVzdCgpCiB7Ci0gICAgcmVtb3ZlVmVuZG9yUHJlZml4ZXMoKTsKLQotICAgIGV2YWxBbmRM
b2coImRibmFtZTEgPSAnZGVsZXRlZGF0YWJhc2UtdHJhbnNhY3Rpb24nIik7Ci0gICAgZXZhbEFu
ZExvZygiZGJuYW1lMiA9ICdkZWxldGVkYXRhYmFzZS10cmFuc2FjdGlvbjInIik7Ci0gICAgZGVi
dWcoIiIpOwotICAgIGRlYnVnKCJQcmVwYXJlIGRhdGFiYXNlOiIpOwotCi0gICAgcmVxdWVzdCA9
IGV2YWxBbmRMb2coImluZGV4ZWREQi5kZWxldGVEYXRhYmFzZShkYm5hbWUxKSIpOwotICAgIHJl
cXVlc3Qub25zdWNjZXNzID0gZnVuY3Rpb24oKSB7Ci0gICAgICAgIHJlcXVlc3QgPSBldmFsQW5k
TG9nKCJyZXF1ZXN0ID0gaW5kZXhlZERCLm9wZW4oZGJuYW1lMSkiKTsKLSAgICAgICAgcmVxdWVz
dC5vbnN1Y2Nlc3MgPSBmdW5jdGlvbigpIHsKLSAgICAgICAgICAgIGV2YWxBbmRMb2coImRiID0g
cmVxdWVzdC5yZXN1bHQiKTsKLSAgICAgICAgICAgIHJlcXVlc3QgPSBldmFsQW5kTG9nKCJkYi5z
ZXRWZXJzaW9uKCcxJykiKTsKLSAgICAgICAgICAgIHJlcXVlc3Qub25zdWNjZXNzID0gZnVuY3Rp
b24gKCkgewotICAgICAgICAgICAgICAgIHRyYW5zID0gcmVxdWVzdC5yZXN1bHQ7Ci0gICAgICAg
ICAgICAgICAgZXZhbEFuZExvZygiZGIuY3JlYXRlT2JqZWN0U3RvcmUoJ3N0b3JlJykiKTsKLSAg
ICAgICAgICAgICAgICB0cmFucy5vbmNvbXBsZXRlID0gc3RhcnRUcmFuc2FjdGlvbjsKLSAgICAg
ICAgICAgIH07Ci0gICAgICAgIH07Ci0gICAgfTsKKyAgICBldmFsQW5kTG9nKCJkYm5hbWUyID0g
ZGIubmFtZSArICcyJyIpOworICAgIGV2YWxBbmRMb2coImRiLmNyZWF0ZU9iamVjdFN0b3JlKCdz
dG9yZScpIik7CiB9CiAKIGZ1bmN0aW9uIHN0YXJ0VHJhbnNhY3Rpb24oKSB7CkBAIC00NSw2ICsy
OCw3IEBAIGZ1bmN0aW9uIHN0YXJ0VHJhbnNhY3Rpb24oKSB7CiAgICAgdHJhbnMub25jb21wbGV0
ZSA9IGZpbmlzaEpTVGVzdDsKIH0KIAotdGVzdCgpOworaW5kZXhlZERCVGVzdCh0ZXN0LCBzdGFy
dFRyYW5zYWN0aW9uKTsKKwogPC9zY3JpcHQ+CiA8c2NyaXB0IHNyYz0iLi4vLi4vZmFzdC9qcy9y
ZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL3N0b3JhZ2UvaW5kZXhlZGRiL2RvbnQtY29tbWl0LW9uLWJsb2NrZWQtZXhwZWN0ZWQudHh0
IGIvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvZG9udC1jb21taXQtb24tYmxvY2tlZC1l
eHBlY3RlZC50eHQKaW5kZXggNzQzZWIyYjIwZTk2NGEyMWMxZTIwNWMxMzVjZDViZmUyNTc5N2Zh
MS4uNzBmMTcwNjc0OTE2M2E4NDIzNjBhZGI0OTU2YWEwZWJiODE0YzliNSAxMDA2NDQKLS0tIGEv
TGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvZG9udC1jb21taXQtb24tYmxvY2tlZC1leHBl
Y3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvZG9udC1jb21taXQt
b24tYmxvY2tlZC1leHBlY3RlZC50eHQKQEAgLTUsMTIgKzUsOSBAQCBPbiBzdWNjZXNzLCB5b3Ug
d2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBD
T01QTEVURQogCiBpbmRleGVkREIgPSBzZWxmLmluZGV4ZWREQiB8fCBzZWxmLndlYmtpdEluZGV4
ZWREQiB8fCBzZWxmLm1vekluZGV4ZWREQiB8fCBzZWxmLm1zSW5kZXhlZERCIHx8IHNlbGYuT0lu
ZGV4ZWREQjsKIAotUHJlcGFyZSBEYXRhYmFzZQotcmVxdWVzdCA9IGluZGV4ZWREQi5kZWxldGVE
YXRhYmFzZSgnZG9udC1jb21taXQtb24tYmxvY2tlZCcpCi1yZXF1ZXN0ID0gaW5kZXhlZERCLm9w
ZW4oJ2RvbnQtY29tbWl0LW9uLWJsb2NrZWQnKQotZGIgPSByZXF1ZXN0LnJlc3VsdAotZGIub252
ZXJzaW9uY2hhbmdlID0gb25WZXJzaW9uQ2hhbmdlCi1QQVNTIGRiLnZlcnNpb24gaXMgIiIKK2Ri
bmFtZSA9IHNlbGYubG9jYXRpb24ucGF0aG5hbWUKK2luZGV4ZWREQi5kZWxldGVEYXRhYmFzZShk
Ym5hbWUpCitpbmRleGVkREIub3BlbihkYm5hbWUpCiBkYi5zZXRWZXJzaW9uKCcxJykKIHN0b3Jl
ID0gZGIuY3JlYXRlT2JqZWN0U3RvcmUoJ3N0b3JlMScpCiAKQEAgLTMwLDEyICsyNyw4IEBAIFN0
YXJ0aW5nIHdvcmtlcjogcmVzb3VyY2VzL2RvbnQtY29tbWl0LW9uLWJsb2NrZWQtd29ya2VyLmpz
CiBbV29ya2VyXSBzcGlubmluZyBmb3IgMTAwbXMgdG8gbGV0IGV2ZW50cyBiZSBxdWV1ZWQgYnV0
IHByZXZlbnQgZGlzcGF0Y2gKIFtXb3JrZXJdIGRvbmUgc3Bpbm5pbmcKIFtXb3JrZXJdIAotW1dv
cmtlcl0gb25TZXRWZXJzaW9uQmxvY2tlZCgpOgotUEFTUyBbV29ya2VyXSBzdGF0ZSBpcyAic2V0
dmVyc2lvbiIKLVtXb3JrZXJdIHN0YXRlID0gJ2Jsb2NrZWQnCi1bV29ya2VyXSAKIFtXb3JrZXJd
IG9uU2V0VmVyc2lvblN1Y2Nlc3MoKToKLVBBU1MgW1dvcmtlcl0gc3RhdGUgaXMgImJsb2NrZWQi
CitGQUlMIFtXb3JrZXJdIHN0YXRlIHNob3VsZCBiZSBibG9ja2VkLiBXYXMgc2V0dmVyc2lvbi4K
IFtXb3JrZXJdIHN0YXRlID0gJ3N1Y2Nlc3MnCiBbV29ya2VyXSBjcmVhdGluZyBvYmplY3Qgc3Rv
cmUgLSB3aWxsIGZhaWwgaWYgdHJhbnNhY3Rpb24gY29tbWl0ZWQgYWZ0ZXIgYmxvY2tlZCBldmVu
dAogW1dvcmtlcl0gZGIuY3JlYXRlT2JqZWN0U3RvcmUoJ3N0b3JlMicpCkBAIC00NSw3ICszOCw3
IEBAIFBBU1MgW1dvcmtlcl0gc3RhdGUgaXMgImJsb2NrZWQiCiBbV29ya2VyXSBvblRyYW5zYWN0
aW9uQ29tcGxldGUKIFBBU1MgW1dvcmtlcl0gc3RhdGUgaXMgInN1Y2Nlc3MiCiBQQVNTIFtXb3Jr
ZXJdIE51bWJlcihkYi52ZXJzaW9uKSBpcyAyCi1QQVNTIFtXb3JrZXJdIGRiLm9iamVjdFN0b3Jl
TmFtZXMuY29udGFpbnMoJ3N0b3JlMScpIGlzIHRydWUKK0ZBSUwgW1dvcmtlcl0gZGIub2JqZWN0
U3RvcmVOYW1lcy5jb250YWlucygnc3RvcmUxJykgc2hvdWxkIGJlIHRydWUuIFdhcyBmYWxzZS4K
IFBBU1MgW1dvcmtlcl0gZGIub2JqZWN0U3RvcmVOYW1lcy5jb250YWlucygnc3RvcmUyJykgaXMg
dHJ1ZQogUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQogCmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9kb250LWNvbW1pdC1vbi1ibG9ja2VkLmh0bWwgYi9M
YXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9kb250LWNvbW1pdC1vbi1ibG9ja2VkLmh0bWwK
aW5kZXggOWQ1NzViOWJhMzY1YTE0ZDExYjEzMTgxMTlhNmIzZWUwNzBlYWZlNy4uZDg4ZGIxYzFk
OTEzMjYzM2QzMGU2ZTNmZjFiODc1YjFlODg4ODU0ZSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMv
c3RvcmFnZS9pbmRleGVkZGIvZG9udC1jb21taXQtb24tYmxvY2tlZC5odG1sCisrKyBiL0xheW91
dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL2RvbnQtY29tbWl0LW9uLWJsb2NrZWQuaHRtbApAQCAt
OCwzNiArOCw5IEBACiAKIGRlc2NyaXB0aW9uKCJSZWdyZXNzaW9uIHRlc3QgZm9yIFdLODI2Nzgg
LSBkb24ndCBjb21taXQgYWZ0ZXIgYSBibG9ja2VkIGV2ZW50Iik7CiAKLWZ1bmN0aW9uIHRlc3Qo
KQotewotICAgIHJlbW92ZVZlbmRvclByZWZpeGVzKCk7Ci0gICAgcHJlcGFyZURhdGFiYXNlKCk7
Ci19Ci0KIGZ1bmN0aW9uIHByZXBhcmVEYXRhYmFzZSgpCiB7Ci0gICAgZGVidWcoIlByZXBhcmUg
RGF0YWJhc2UiKTsKLSAgICBldmFsQW5kTG9nKCJyZXF1ZXN0ID0gaW5kZXhlZERCLmRlbGV0ZURh
dGFiYXNlKCdkb250LWNvbW1pdC1vbi1ibG9ja2VkJykiKTsKLSAgICByZXF1ZXN0Lm9uZXJyb3Ig
PSB1bmV4cGVjdGVkRXJyb3JDYWxsYmFjazsKLSAgICByZXF1ZXN0Lm9uc3VjY2VzcyA9IGZ1bmN0
aW9uKGUpIHsKLSAgICAgICAgZXZhbEFuZExvZygicmVxdWVzdCA9IGluZGV4ZWREQi5vcGVuKCdk
b250LWNvbW1pdC1vbi1ibG9ja2VkJykiKTsKLSAgICAgICAgcmVxdWVzdC5vbmVycm9yID0gdW5l
eHBlY3RlZEVycm9yQ2FsbGJhY2s7Ci0gICAgICAgIHJlcXVlc3Qub25zdWNjZXNzID0gZnVuY3Rp
b24oZSkgewotICAgICAgICAgICAgZXZhbEFuZExvZygiZGIgPSByZXF1ZXN0LnJlc3VsdCIpOwot
ICAgICAgICAgICAgZGIub25lcnJvciA9IHVuZXhwZWN0ZWRFcnJvckNhbGxiYWNrOwotICAgICAg
ICAgICAgZXZhbEFuZExvZygiZGIub252ZXJzaW9uY2hhbmdlID0gb25WZXJzaW9uQ2hhbmdlIik7
Ci0gICAgICAgICAgICBzaG91bGRCZUVxdWFsVG9TdHJpbmcoImRiLnZlcnNpb24iLCAiIik7Ci0g
ICAgICAgICAgICByZXF1ZXN0ID0gZXZhbEFuZExvZygiZGIuc2V0VmVyc2lvbignMScpIik7Ci0g
ICAgICAgICAgICByZXF1ZXN0Lm9uZXJyb3IgPSB1bmV4cGVjdGVkRXJyb3JDYWxsYmFjazsKLSAg
ICAgICAgICAgIHJlcXVlc3Qub25zdWNjZXNzID0gZnVuY3Rpb24oZSkgewotICAgICAgICAgICAg
ICAgIHZhciB0cmFucyA9IHJlcXVlc3QucmVzdWx0OwotICAgICAgICAgICAgICAgIGV2YWxBbmRM
b2coInN0b3JlID0gZGIuY3JlYXRlT2JqZWN0U3RvcmUoJ3N0b3JlMScpIik7Ci0gICAgICAgICAg
ICAgICAgdHJhbnMub25lcnJvciA9IHVuZXhwZWN0ZWRFcnJvckNhbGxiYWNrOwotICAgICAgICAg
ICAgICAgIHRyYW5zLm9uYWJvcnQgPSB1bmV4cGVjdGVkQWJvcnRDYWxsYmFjazsKLSAgICAgICAg
ICAgICAgICB0cmFucy5vbmNvbXBsZXRlID0gaG9sZENvbm5lY3Rpb247Ci0gICAgICAgICAgICB9
OwotICAgICAgICB9OwotICAgIH07CisgICAgZXZhbEFuZExvZygic3RvcmUgPSBkYi5jcmVhdGVP
YmplY3RTdG9yZSgnc3RvcmUxJykiKTsKIH0KIAogZnVuY3Rpb24gaG9sZENvbm5lY3Rpb24oKQpA
QCAtNTUsNyArMjgsNyBAQCBmdW5jdGlvbiBvblZlcnNpb25DaGFuZ2UoZSkKICAgICBkYi5jbG9z
ZSgpOwogfQogCi10ZXN0KCk7CitpbmRleGVkREJUZXN0KHByZXBhcmVEYXRhYmFzZSwgaG9sZENv
bm5lY3Rpb24pOwogCiA8L3NjcmlwdD4KIDxzY3JpcHQgc3JjPSIuLi8uLi9mYXN0L2pzL3Jlc291
cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
c3RvcmFnZS9pbmRleGVkZGIvZXJyb3ItY2F1c2VzLWFib3J0LWJ5LWRlZmF1bHQtZXhwZWN0ZWQu
dHh0IGIvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvZXJyb3ItY2F1c2VzLWFib3J0LWJ5
LWRlZmF1bHQtZXhwZWN0ZWQudHh0CmluZGV4IGIyNDQwZWQ3NzhjZTM5MzQ5OTdjMWZlZDdmZjZi
M2Q5ZTc1NDUxNDAuLmMzZDBhNmUwOTUzMzRlMmRlMTI1ODRhNDc3NDI2M2Y0NTMzZjU4OTYgMTAw
NjQ0Ci0tLSBhL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL2Vycm9yLWNhdXNlcy1hYm9y
dC1ieS1kZWZhdWx0LWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4
ZWRkYi9lcnJvci1jYXVzZXMtYWJvcnQtYnktZGVmYXVsdC1leHBlY3RlZC50eHQKQEAgLTUsMTQg
KzUsMTAgQEAgT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNz
YWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUKIAogaW5kZXhlZERCID0gc2VsZi5pbmRl
eGVkREIgfHwgc2VsZi53ZWJraXRJbmRleGVkREIgfHwgc2VsZi5tb3pJbmRleGVkREIgfHwgc2Vs
Zi5tc0luZGV4ZWREQiB8fCBzZWxmLk9JbmRleGVkREI7CiAKLWluZGV4ZWREQi5vcGVuKCdlcnJv
ci1jYXVzZXMtYWJvcnQtYnktZGVmYXVsdCcpCi1kYiA9IGV2ZW50LnRhcmdldC5yZXN1bHQKLWRi
LnNldFZlcnNpb24oJ25ldyB2ZXJzaW9uJykKLXNldFZlcnNpb25TdWNjZXNzKCk6Ci10cmFucyA9
IGV2ZW50LnRhcmdldC5yZXN1bHQKLVBBU1MgdHJhbnMgaXMgbm9uLW51bGwuCi10cmFucy5vbmNv
bXBsZXRlID0gYWRkRGF0YQotRGVsZXRlZCBhbGwgb2JqZWN0IHN0b3Jlcy4KK2RibmFtZSA9IHNl
bGYubG9jYXRpb24ucGF0aG5hbWUKK2luZGV4ZWREQi5kZWxldGVEYXRhYmFzZShkYm5hbWUpCitp
bmRleGVkREIub3BlbihkYm5hbWUpCitkYi5zZXRWZXJzaW9uKCcxJykKIGRiLmNyZWF0ZU9iamVj
dFN0b3JlKCdzdG9yZU5hbWUnLCBudWxsKQogdHJhbnMgPSBkYi50cmFuc2FjdGlvbihbJ3N0b3Jl
TmFtZSddLCAncmVhZHdyaXRlJykKIHRyYW5zLm9uYWJvcnQgPSB1bmV4cGVjdGVkQWJvcnRDYWxs
YmFjawpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvZXhjZXB0aW9u
LWluLWV2ZW50LWFib3J0cy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4
ZWRkYi9leGNlcHRpb24taW4tZXZlbnQtYWJvcnRzLWV4cGVjdGVkLnR4dAppbmRleCBiOWI4ZWI3
NmUyNTUwNWFhODQ5YmJlYWZiNWIzYTZkNDgyZmRhY2VhLi5jMmJmOWYzZjY1M2I5ZjFmMDQwYjk3
YjM4NTQyOTg3YzQ3MjY1YTBkIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4
ZWRkYi9leGNlcHRpb24taW4tZXZlbnQtYWJvcnRzLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRU
ZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9leGNlcHRpb24taW4tZXZlbnQtYWJvcnRzLWV4cGVjdGVk
LnR4dApAQCAtMSw1ICsxLDUgQEAKLUNPTlNPTEUgTUVTU0FHRTogbGluZSA1NzogVW5jYXVnaHQg
dGhpcyBleGNlcHRpb24gaXMgZXhwZWN0ZWQKLUNPTlNPTEUgTUVTU0FHRTogbGluZSA1NzogVW5j
YXVnaHQgdGhpcyBleGNlcHRpb24gaXMgZXhwZWN0ZWQKK0NPTlNPTEUgTUVTU0FHRTogbGluZSAz
MjogVW5jYXVnaHQgdGhpcyBleGNlcHRpb24gaXMgZXhwZWN0ZWQKK0NPTlNPTEUgTUVTU0FHRTog
bGluZSAzMjogVW5jYXVnaHQgdGhpcyBleGNlcHRpb24gaXMgZXhwZWN0ZWQKIFRlc3QgZXhjZXB0
aW9ucyBpbiBJREJSZXF1ZXN0IGhhbmRsZXJzIGNhdXNlIGFib3J0cy4KIAogT24gc3VjY2Vzcywg
eW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRF
U1QgQ09NUExFVEUiLgpAQCAtNywxNCArNywxMCBAQCBPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUg
YSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURQog
CiBpbmRleGVkREIgPSBzZWxmLmluZGV4ZWREQiB8fCBzZWxmLndlYmtpdEluZGV4ZWREQiB8fCBz
ZWxmLm1vekluZGV4ZWREQiB8fCBzZWxmLm1zSW5kZXhlZERCIHx8IHNlbGYuT0luZGV4ZWREQjsK
IAotaW5kZXhlZERCLm9wZW4oJ2V4Y2VwdGlvbi1pbi1ldmVudC1hYm9ydHMnKQotZGIgPSBldmVu
dC50YXJnZXQucmVzdWx0Ci1kYi5zZXRWZXJzaW9uKCduZXcgdmVyc2lvbicpCi1zZXRWZXJzaW9u
U3VjY2VzcygpOgotdHJhbnMgPSBldmVudC50YXJnZXQucmVzdWx0Ci1QQVNTIHRyYW5zIGlzIG5v
bi1udWxsLgotdHJhbnMub25jb21wbGV0ZSA9IHN0YXJ0VGVzdAotRGVsZXRlZCBhbGwgb2JqZWN0
IHN0b3Jlcy4KK2RibmFtZSA9IHNlbGYubG9jYXRpb24ucGF0aG5hbWUKK2luZGV4ZWREQi5kZWxl
dGVEYXRhYmFzZShkYm5hbWUpCitpbmRleGVkREIub3BlbihkYm5hbWUpCitkYi5zZXRWZXJzaW9u
KCcxJykKIHN0b3JlID0gZGIuY3JlYXRlT2JqZWN0U3RvcmUoJ3N0b3JlTmFtZScsIG51bGwpCiBz
dG9yZS5hZGQoe3g6ICd2YWx1ZScsIHk6ICd6enonfSwgJ2tleScpCiAKZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL2dldC1rZXlyYW5nZS1leHBlY3RlZC50eHQgYi9M
YXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9nZXQta2V5cmFuZ2UtZXhwZWN0ZWQudHh0Cmlu
ZGV4IDRjMTExMDI2ZDkzMWJiYzA2N2IzM2RkYjhmYzVkZmNjMDRkNmQ5MTYuLjJiZGQxZDg3NDEy
ZTY0MGU3YmZhYjlkOTVjZGUzMmIyMzA4MmZiYjcgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3N0
b3JhZ2UvaW5kZXhlZGRiL2dldC1rZXlyYW5nZS1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVz
dHMvc3RvcmFnZS9pbmRleGVkZGIvZ2V0LWtleXJhbmdlLWV4cGVjdGVkLnR4dApAQCAtNSwxMiAr
NSwxMCBAQCBPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3Nh
Z2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURQogCiBpbmRleGVkREIgPSBzZWxmLmluZGV4
ZWREQiB8fCBzZWxmLndlYmtpdEluZGV4ZWREQiB8fCBzZWxmLm1vekluZGV4ZWREQiB8fCBzZWxm
Lm1zSW5kZXhlZERCIHx8IHNlbGYuT0luZGV4ZWREQjsKIAotaW5kZXhlZERCLm9wZW4oJ2N1cnNv
ci1jb250aW51ZScpCi1kYiA9IGV2ZW50LnRhcmdldC5yZXN1bHQKLWRiLnNldFZlcnNpb24oJ25l
dyB2ZXJzaW9uJykKLXRyYW5zID0gZXZlbnQudGFyZ2V0LnJlc3VsdAotUEFTUyB0cmFucyBpcyBu
b24tbnVsbC4KLURlbGV0ZWQgYWxsIG9iamVjdCBzdG9yZXMuCitkYm5hbWUgPSBzZWxmLmxvY2F0
aW9uLnBhdGhuYW1lCitpbmRleGVkREIuZGVsZXRlRGF0YWJhc2UoZGJuYW1lKQoraW5kZXhlZERC
Lm9wZW4oZGJuYW1lKQorZGIuc2V0VmVyc2lvbignMScpCiBkYi5jcmVhdGVPYmplY3RTdG9yZSgn
c29tZU9iamVjdFN0b3JlJykKIG9iamVjdFN0b3JlLmNyZWF0ZUluZGV4KCdzb21lSW5kZXgnLCAn
eCcpCiBvYmplY3RTdG9yZS5hZGQoeyd4JzogMCB9LCAwKQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvc3RvcmFnZS9pbmRleGVkZGIvaW5kZXgtYmFzaWNzLWV4cGVjdGVkLnR4dCBiL0xheW91dFRl
c3RzL3N0b3JhZ2UvaW5kZXhlZGRiL2luZGV4LWJhc2ljcy1leHBlY3RlZC50eHQKaW5kZXggOWY2
ZjM4ZWNlNjkxZTQ2MDI0YTViZTZkMWE2ZGYyZTExNTVjN2VmMy4uNmY3M2Q0MWRjY2NhMzNiNmM0
ODFmMDkzZDE1NDkxYTU5N2JmYWRmNSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvc3RvcmFnZS9p
bmRleGVkZGIvaW5kZXgtYmFzaWNzLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9zdG9y
YWdlL2luZGV4ZWRkYi9pbmRleC1iYXNpY3MtZXhwZWN0ZWQudHh0CkBAIC01LDEzICs1LDEwIEBA
IE9uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZv
bGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFCiAKIGluZGV4ZWREQiA9IHNlbGYuaW5kZXhlZERCIHx8
IHNlbGYud2Via2l0SW5kZXhlZERCIHx8IHNlbGYubW96SW5kZXhlZERCIHx8IHNlbGYubXNJbmRl
eGVkREIgfHwgc2VsZi5PSW5kZXhlZERCOwogCi1pbmRleGVkREIub3BlbignaW5kZXgtYmFzaWNz
JykKLWRiID0gZXZlbnQudGFyZ2V0LnJlc3VsdAotZGIuc2V0VmVyc2lvbignbmV3IHZlcnNpb24n
KQotc2V0VmVyc2lvblN1Y2Nlc3MoKToKLXRyYW5zID0gZXZlbnQudGFyZ2V0LnJlc3VsdAotUEFT
UyB0cmFucyBpcyBub24tbnVsbC4KLURlbGV0ZWQgYWxsIG9iamVjdCBzdG9yZXMuCitkYm5hbWUg
PSBzZWxmLmxvY2F0aW9uLnBhdGhuYW1lCitpbmRleGVkREIuZGVsZXRlRGF0YWJhc2UoZGJuYW1l
KQoraW5kZXhlZERCLm9wZW4oZGJuYW1lKQorZGIuc2V0VmVyc2lvbignMScpCiBkYi5jcmVhdGVP
YmplY3RTdG9yZSgnc3RvcmVOYW1lJywgbnVsbCkKIHN0b3JlLmNyZWF0ZUluZGV4KCdpbmRleE5h
bWUnLCAneCcpCiBzdG9yZS5jcmVhdGVJbmRleCgnaW5kZXhOYW1lMicsICd5Jywge3VuaXF1ZTog
ZmFsc2V9KQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvaW5kZXgt
YmFzaWNzLXdvcmtlcnMtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVk
ZGIvaW5kZXgtYmFzaWNzLXdvcmtlcnMtZXhwZWN0ZWQudHh0CmluZGV4IGI3ZmQ3YWU2ZWY3OTMx
YjUxNTIyMjU0YzNkZTBhZDhmZjU3ZjkyY2QuLjZiMDY5NzkzYzI5NGE1ODM4MTA2NTNkN2I0MTJl
Y2NkYzAwNjJhYWQgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL2lu
ZGV4LWJhc2ljcy13b3JrZXJzLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9zdG9yYWdl
L2luZGV4ZWRkYi9pbmRleC1iYXNpY3Mtd29ya2Vycy1leHBlY3RlZC50eHQKQEAgLTYsMTMgKzYs
MTAgQEAgT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdl
cywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUKIFN0YXJ0aW5nIHdvcmtlcjogcmVzb3VyY2Vz
L2luZGV4LWJhc2ljcy5qcwogW1dvcmtlcl0gaW5kZXhlZERCID0gc2VsZi5pbmRleGVkREIgfHwg
c2VsZi53ZWJraXRJbmRleGVkREIgfHwgc2VsZi5tb3pJbmRleGVkREIgfHwgc2VsZi5tc0luZGV4
ZWREQiB8fCBzZWxmLk9JbmRleGVkREI7CiBbV29ya2VyXSAKLVtXb3JrZXJdIGluZGV4ZWREQi5v
cGVuKCdpbmRleC1iYXNpY3MnKQotW1dvcmtlcl0gZGIgPSBldmVudC50YXJnZXQucmVzdWx0Ci1b
V29ya2VyXSBkYi5zZXRWZXJzaW9uKCduZXcgdmVyc2lvbicpCi1bV29ya2VyXSBzZXRWZXJzaW9u
U3VjY2VzcygpOgotW1dvcmtlcl0gdHJhbnMgPSBldmVudC50YXJnZXQucmVzdWx0Ci1QQVNTIFtX
b3JrZXJdIHRyYW5zIGlzIG5vbi1udWxsLgotW1dvcmtlcl0gRGVsZXRlZCBhbGwgb2JqZWN0IHN0
b3Jlcy4KK1tXb3JrZXJdIGRibmFtZSA9IHNlbGYubG9jYXRpb24ucGF0aG5hbWUKK1tXb3JrZXJd
IGluZGV4ZWREQi5kZWxldGVEYXRhYmFzZShkYm5hbWUpCitbV29ya2VyXSBpbmRleGVkREIub3Bl
bihkYm5hbWUpCitbV29ya2VyXSBkYi5zZXRWZXJzaW9uKCcxJykKIFtXb3JrZXJdIGRiLmNyZWF0
ZU9iamVjdFN0b3JlKCdzdG9yZU5hbWUnLCBudWxsKQogW1dvcmtlcl0gc3RvcmUuY3JlYXRlSW5k
ZXgoJ2luZGV4TmFtZScsICd4JykKIFtXb3JrZXJdIHN0b3JlLmNyZWF0ZUluZGV4KCdpbmRleE5h
bWUyJywgJ3knLCB7dW5pcXVlOiBmYWxzZX0pCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9zdG9y
YWdlL2luZGV4ZWRkYi9pbmRleC1jb3VudC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9zdG9y
YWdlL2luZGV4ZWRkYi9pbmRleC1jb3VudC1leHBlY3RlZC50eHQKaW5kZXggOTAwYTkzODBiOWEx
NjMxMjRlZDlmYTFhMGZkNTgwMTY4YWJmOTUwMy4uNmZmMmQ2NmQyYjNkODI4YTliZDAxZDA1MmZi
YjMzYWIwZTJmYTAwZSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIv
aW5kZXgtY291bnQtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhl
ZGRiL2luZGV4LWNvdW50LWV4cGVjdGVkLnR4dApAQCAtNSwxNCArNSwxMCBAQCBPbiBzdWNjZXNz
LCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAi
VEVTVCBDT01QTEVURQogCiBpbmRleGVkREIgPSBzZWxmLmluZGV4ZWREQiB8fCBzZWxmLndlYmtp
dEluZGV4ZWREQiB8fCBzZWxmLm1vekluZGV4ZWREQiB8fCBzZWxmLm1zSW5kZXhlZERCIHx8IHNl
bGYuT0luZGV4ZWREQjsKIAotaW5kZXhlZERCLm9wZW4oJ2luZGV4LWNvdW50JykKLWRiID0gZXZl
bnQudGFyZ2V0LnJlc3VsdAotZGIuc2V0VmVyc2lvbignbmV3IHZlcnNpb24nKQotCi1wcmVwYXJp
bmcgZGF0YWJhc2UKLXRyYW5zID0gZXZlbnQudGFyZ2V0LnJlc3VsdAotUEFTUyB0cmFucyBpcyBu
b24tbnVsbC4KLURlbGV0ZWQgYWxsIG9iamVjdCBzdG9yZXMuCitkYm5hbWUgPSBzZWxmLmxvY2F0
aW9uLnBhdGhuYW1lCitpbmRleGVkREIuZGVsZXRlRGF0YWJhc2UoZGJuYW1lKQoraW5kZXhlZERC
Lm9wZW4oZGJuYW1lKQorZGIuc2V0VmVyc2lvbignMScpCiBzdG9yZSA9IGRiLmNyZWF0ZU9iamVj
dFN0b3JlKCdzdG9yZU5hbWUnLCBudWxsKQogc3RvcmUuY3JlYXRlSW5kZXgoJ2luZGV4TmFtZScs
ICcnKQogUEFTUyBzdG9yZS5pbmRleE5hbWVzLmNvbnRhaW5zKCdpbmRleE5hbWUnKSBpcyB0cnVl
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9pbmRleC1jdXJzb3It
ZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvaW5kZXgtY3Vyc29y
LWV4cGVjdGVkLnR4dAppbmRleCA3YmY4YzAwMzMzYjZiNzE5N2NjMjI5M2RjN2E5YmZiZjAwNDg2
YTliLi41ZDMwMWUzM2I0MDlmODY3ZGM0MWQ3ZWU3NWUyNGVkNzhmOWZkNWI5IDEwMDY0NAotLS0g
YS9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9pbmRleC1jdXJzb3ItZXhwZWN0ZWQudHh0
CisrKyBiL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL2luZGV4LWN1cnNvci1leHBlY3Rl
ZC50eHQKQEAgLTUsMTIgKzUsMTAgQEAgT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVz
IG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUKIAogaW5kZXhl
ZERCID0gc2VsZi5pbmRleGVkREIgfHwgc2VsZi53ZWJraXRJbmRleGVkREIgfHwgc2VsZi5tb3pJ
bmRleGVkREIgfHwgc2VsZi5tc0luZGV4ZWREQiB8fCBzZWxmLk9JbmRleGVkREI7CiAKLWluZGV4
ZWREQi5vcGVuKCdpbmRleC1jdXJzb3InKQotZGIgPSBldmVudC50YXJnZXQucmVzdWx0Ci1kYi5z
ZXRWZXJzaW9uKCduZXcgdmVyc2lvbicpCi10cmFucyA9IGV2ZW50LnRhcmdldC5yZXN1bHQKLVBB
U1MgdHJhbnMgaXMgbm9uLW51bGwuCi1EZWxldGVkIGFsbCBvYmplY3Qgc3RvcmVzLgorZGJuYW1l
ID0gc2VsZi5sb2NhdGlvbi5wYXRobmFtZQoraW5kZXhlZERCLmRlbGV0ZURhdGFiYXNlKGRibmFt
ZSkKK2luZGV4ZWREQi5vcGVuKGRibmFtZSkKK2RiLnNldFZlcnNpb24oJzEnKQogZGIuY3JlYXRl
T2JqZWN0U3RvcmUoJ3NvbWVPYmplY3RTdG9yZScpCiBvYmplY3RTdG9yZS5jcmVhdGVJbmRleCgn
c29tZUluZGV4JywgJ3gnKQogb2JqZWN0U3RvcmUuYWRkKHsneCc6IHRlc3REYXRhW25leHRUb0Fk
ZF19LCBuZXh0VG9BZGQpCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRk
Yi9pbmRleC1nZXQta2V5LWFyZ3VtZW50LXJlcXVpcmVkLWV4cGVjdGVkLnR4dCBiL0xheW91dFRl
c3RzL3N0b3JhZ2UvaW5kZXhlZGRiL2luZGV4LWdldC1rZXktYXJndW1lbnQtcmVxdWlyZWQtZXhw
ZWN0ZWQudHh0CmluZGV4IDQ2NmU0YWEwMTJhZDVkMDRhMzRhZWRmMzFkOTM5YjMwNmU4NGFiYjUu
LmNkMTY3ZjhkZTFlYWFlNTZkOTliOWQ5N2Y2ZDRiYjkxMzdhMTc2YjQgMTAwNjQ0Ci0tLSBhL0xh
eW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL2luZGV4LWdldC1rZXktYXJndW1lbnQtcmVxdWly
ZWQtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL2luZGV4
LWdldC1rZXktYXJndW1lbnQtcmVxdWlyZWQtZXhwZWN0ZWQudHh0CkBAIC01LDEwICs1LDEwIEBA
IE9uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZv
bGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFCiAKIGluZGV4ZWREQiA9IHNlbGYuaW5kZXhlZERCIHx8
IHNlbGYud2Via2l0SW5kZXhlZERCIHx8IHNlbGYubW96SW5kZXhlZERCIHx8IHNlbGYubXNJbmRl
eGVkREIgfHwgc2VsZi5PSW5kZXhlZERCOwogCi1pbmRleGVkREIub3BlbihuYW1lKQotZGIgPSBl
dmVudC50YXJnZXQucmVzdWx0Ci1yZXF1ZXN0ID0gZGIuc2V0VmVyc2lvbignMScpCi1EZWxldGVk
IGFsbCBvYmplY3Qgc3RvcmVzLgorZGJuYW1lID0gc2VsZi5sb2NhdGlvbi5wYXRobmFtZQoraW5k
ZXhlZERCLmRlbGV0ZURhdGFiYXNlKGRibmFtZSkKK2luZGV4ZWREQi5vcGVuKGRibmFtZSkKK2Ri
LnNldFZlcnNpb24oJzEnKQogb2JqZWN0U3RvcmUgPSBkYi5jcmVhdGVPYmplY3RTdG9yZSgnZm9v
JywgeyBrZXlQYXRoOiAnaWQnLCBhdXRvSW5jcmVtZW50OiB0cnVlIH0pOwogaW5kZXggPSBvYmpl
Y3RTdG9yZS5jcmVhdGVJbmRleCgnZmlyc3QnLCAnZmlyc3QnKTsKIFBBU1MgaW5kZXguZ2V0KCk7
IHRocmV3IGV4Y2VwdGlvbiBUeXBlRXJyb3I6IFR5cGUgZXJyb3IuCmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9pbmRleC11bmlxdWUtZXhwZWN0ZWQudHh0IGIvTGF5
b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvaW5kZXgtdW5pcXVlLWV4cGVjdGVkLnR4dAppbmRl
eCAyYjdlOTY0MmU5YmQ1OGUxNzljYTdlMmI1YjIxYzg0YmY3MWMyNjNhLi40OGNkYjZlMWE3NThj
Yzk4OGM1ZDZhYzkxMzg3ZDc3NDk5YzAxMDhjIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9zdG9y
YWdlL2luZGV4ZWRkYi9pbmRleC11bmlxdWUtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3Rz
L3N0b3JhZ2UvaW5kZXhlZGRiL2luZGV4LXVuaXF1ZS1leHBlY3RlZC50eHQKQEAgLTUsMTMgKzUs
MTAgQEAgT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdl
cywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUKIAogaW5kZXhlZERCID0gc2VsZi5pbmRleGVk
REIgfHwgc2VsZi53ZWJraXRJbmRleGVkREIgfHwgc2VsZi5tb3pJbmRleGVkREIgfHwgc2VsZi5t
c0luZGV4ZWREQiB8fCBzZWxmLk9JbmRleGVkREI7CiAKLWluZGV4ZWREQi5vcGVuKCdpbmRleC11
bmlxdWUnKQotZGIgPSBldmVudC50YXJnZXQucmVzdWx0Ci1kYi5zZXRWZXJzaW9uKCduZXcgdmVy
c2lvbicpCi1kZWxldGVFeGlzdGluZygpOgotdHJhbnMgPSBldmVudC50YXJnZXQucmVzdWx0Ci1Q
QVNTIHRyYW5zIGlzIG5vbi1udWxsLgotRGVsZXRlZCBhbGwgb2JqZWN0IHN0b3Jlcy4KK2RibmFt
ZSA9IHNlbGYubG9jYXRpb24ucGF0aG5hbWUKK2luZGV4ZWREQi5kZWxldGVEYXRhYmFzZShkYm5h
bWUpCitpbmRleGVkREIub3BlbihkYm5hbWUpCitkYi5zZXRWZXJzaW9uKCcxJykKIGRiLmNyZWF0
ZU9iamVjdFN0b3JlKCdzdG9yZScpCiBzdG9yZS5jcmVhdGVJbmRleCgnaW5kZXgnLCAneCcsIHt1
bmlxdWU6IHRydWV9KQogc2V0VmVyc2lvbkNvbXBsZXRlZCgpOgpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvaW52YWxpZC1rZXlzLWV4cGVjdGVkLnR4dCBiL0xheW91
dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL2ludmFsaWQta2V5cy1leHBlY3RlZC50eHQKaW5kZXgg
NGU1NTBhMjAwYmM4ZDM4MGIzZDE5NjY1NTQ2ZjYxYzZkMjkxZTU2MS4uMzAzODE5ZGQ1NGFhYWZm
NjkyOWUxY2I5MDkxY2ZjNzFkZjBiMTFmYSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvc3RvcmFn
ZS9pbmRleGVkZGIvaW52YWxpZC1rZXlzLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9z
dG9yYWdlL2luZGV4ZWRkYi9pbnZhbGlkLWtleXMtZXhwZWN0ZWQudHh0CkBAIC01LDEwICs1LDEw
IEBAIE9uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMs
IGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFCiAKIGluZGV4ZWREQiA9IHNlbGYuaW5kZXhlZERC
IHx8IHNlbGYud2Via2l0SW5kZXhlZERCIHx8IHNlbGYubW96SW5kZXhlZERCIHx8IHNlbGYubXNJ
bmRleGVkREIgfHwgc2VsZi5PSW5kZXhlZERCOwogCi1pbmRleGVkREIub3BlbihuYW1lKQotZGIg
PSBldmVudC50YXJnZXQucmVzdWx0Ci1yZXF1ZXN0ID0gZGIuc2V0VmVyc2lvbignMScpCi1EZWxl
dGVkIGFsbCBvYmplY3Qgc3RvcmVzLgorZGJuYW1lID0gc2VsZi5sb2NhdGlvbi5wYXRobmFtZQor
aW5kZXhlZERCLmRlbGV0ZURhdGFiYXNlKGRibmFtZSkKK2luZGV4ZWREQi5vcGVuKGRibmFtZSkK
K2RiLnNldFZlcnNpb24oJzEnKQogZGIuY3JlYXRlT2JqZWN0U3RvcmUoJ2ZvbycpOwogRXhwZWN0
aW5nIGV4Y2VwdGlvbiBmcm9tIHJlcXVlc3QgPSBvYmplY3RTdG9yZS5wdXQoJ3ZhbHVlJywgdm9p
ZCAwKQogUEFTUyBFeGNlcHRpb24gd2FzIHRocm93bi4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L3N0b3JhZ2UvaW5kZXhlZGRiL2tleS1nZW5lcmF0b3ItZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVz
dHMvc3RvcmFnZS9pbmRleGVkZGIva2V5LWdlbmVyYXRvci1leHBlY3RlZC50eHQKaW5kZXggNTJm
Y2M3Mjg2NmFhNmJmODM0OWEwZDg1OTYwMzg0MzJiNGI1ZTE4NS4uNzIxNDllM2MyZmZkMmI5M2Q0
OGRhYjYxY2QxYmZiNjNiYzA5ZTgxOCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvc3RvcmFnZS9p
bmRleGVkZGIva2V5LWdlbmVyYXRvci1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvc3Rv
cmFnZS9pbmRleGVkZGIva2V5LWdlbmVyYXRvci1leHBlY3RlZC50eHQKQEAgLTcsMTEgKzcsMTIg
QEAgaW5kZXhlZERCID0gc2VsZi5pbmRleGVkREIgfHwgc2VsZi53ZWJraXRJbmRleGVkREIgfHwg
c2VsZi5tb3pJbmRleGVkREIgfHwgc2VsZi4KIAogCiBWZXJpZnkgdGhhdCBlYWNoIG9iamVjdCBz
dG9yZSBoYXMgYW4gaW5kZXBlbmRlbnQga2V5IGdlbmVyYXRvci4KLXJlcXVlc3QgPSBpbmRleGVk
REIuZGVsZXRlRGF0YWJhc2UoJ2tleS1nZW5lcmF0b3InKQotcmVxdWVzdCA9IGluZGV4ZWREQi5v
cGVuKCdrZXktZ2VuZXJhdG9yJykKLWRiID0gcmVxdWVzdC5yZXN1bHQKLXJlcXVlc3QgPSBkYi5z
ZXRWZXJzaW9uKCcxJykKLXRyYW5zID0gcmVxdWVzdC5yZXN1bHQKK2luZGV4ZWREQiA9IHNlbGYu
aW5kZXhlZERCIHx8IHNlbGYud2Via2l0SW5kZXhlZERCIHx8IHNlbGYubW96SW5kZXhlZERCIHx8
IHNlbGYubXNJbmRleGVkREIgfHwgc2VsZi5PSW5kZXhlZERCOworCitkYm5hbWUgPSBzZWxmLmxv
Y2F0aW9uLnBhdGhuYW1lCitpbmRleGVkREIuZGVsZXRlRGF0YWJhc2UoZGJuYW1lKQoraW5kZXhl
ZERCLm9wZW4oZGJuYW1lKQorZGIuc2V0VmVyc2lvbignMScpCiBzdG9yZTEgPSBkYi5jcmVhdGVP
YmplY3RTdG9yZSgnc3RvcmUxJywgeyBhdXRvSW5jcmVtZW50OiB0cnVlIH0pCiBzdG9yZTEucHV0
KCdhJykKIHJlcXVlc3QgPSBzdG9yZS5nZXQoMSkKQEAgLTI5LDExICszMCwxMiBAQCBQQVNTIEdv
dCAiYiIgZm9yIGtleTogMgogZGIuY2xvc2UoKQogCiBWZXJpZnkgdGhhdCB0aGUga2V5IGdlbmVy
YXRvciBpcyBub3QgdXBkYXRlZCBpZiBpbnNlcnRpb24gZmFpbHMKLXJlcXVlc3QgPSBpbmRleGVk
REIuZGVsZXRlRGF0YWJhc2UoJ2tleS1nZW5lcmF0b3InKQotcmVxdWVzdCA9IGluZGV4ZWREQi5v
cGVuKCdrZXktZ2VuZXJhdG9yJykKLWRiID0gcmVxdWVzdC5yZXN1bHQKLXJlcXVlc3QgPSBkYi5z
ZXRWZXJzaW9uKCcxJykKLXRyYW5zID0gcmVxdWVzdC5yZXN1bHQKK2luZGV4ZWREQiA9IHNlbGYu
aW5kZXhlZERCIHx8IHNlbGYud2Via2l0SW5kZXhlZERCIHx8IHNlbGYubW96SW5kZXhlZERCIHx8
IHNlbGYubXNJbmRleGVkREIgfHwgc2VsZi5PSW5kZXhlZERCOworCitkYm5hbWUgPSBzZWxmLmxv
Y2F0aW9uLnBhdGhuYW1lCitpbmRleGVkREIuZGVsZXRlRGF0YWJhc2UoZGJuYW1lKQoraW5kZXhl
ZERCLm9wZW4oZGJuYW1lKQorZGIuc2V0VmVyc2lvbignMScpCiBzdG9yZSA9IGRiLmNyZWF0ZU9i
amVjdFN0b3JlKCdzdG9yZTEnLCB7IGF1dG9JbmNyZW1lbnQ6IHRydWUgfSkKIGluZGV4ID0gc3Rv
cmUuY3JlYXRlSW5kZXgoJ2luZGV4MScsICdpeCcsIHsgdW5pcXVlOiB0cnVlIH0pCiBzdG9yZS5w
dXQoeyBpeDogJ2EnfSkKQEAgLTQ2LDExICs0OCwxMiBAQCBQQVNTIEdvdCB7Iml4IjoiYiJ9IGZv
ciBrZXk6IDIKIGRiLmNsb3NlKCkKIAogVmVyaWZ5IHRoYXQgdGhlIGtleSBnZW5lcmF0b3IgaXMg
bm90IGFmZmVjdGVkIGJ5IGl0ZW0gcmVtb3ZhbCAoZGVsZXRlIG9yIGNsZWFyKS4KLXJlcXVlc3Qg
PSBpbmRleGVkREIuZGVsZXRlRGF0YWJhc2UoJ2tleS1nZW5lcmF0b3InKQotcmVxdWVzdCA9IGlu
ZGV4ZWREQi5vcGVuKCdrZXktZ2VuZXJhdG9yJykKLWRiID0gcmVxdWVzdC5yZXN1bHQKLXJlcXVl
c3QgPSBkYi5zZXRWZXJzaW9uKCcxJykKLXRyYW5zID0gcmVxdWVzdC5yZXN1bHQKK2luZGV4ZWRE
QiA9IHNlbGYuaW5kZXhlZERCIHx8IHNlbGYud2Via2l0SW5kZXhlZERCIHx8IHNlbGYubW96SW5k
ZXhlZERCIHx8IHNlbGYubXNJbmRleGVkREIgfHwgc2VsZi5PSW5kZXhlZERCOworCitkYm5hbWUg
PSBzZWxmLmxvY2F0aW9uLnBhdGhuYW1lCitpbmRleGVkREIuZGVsZXRlRGF0YWJhc2UoZGJuYW1l
KQoraW5kZXhlZERCLm9wZW4oZGJuYW1lKQorZGIuc2V0VmVyc2lvbignMScpCiBzdG9yZSA9IGRi
LmNyZWF0ZU9iamVjdFN0b3JlKCdzdG9yZTEnLCB7IGF1dG9JbmNyZW1lbnQ6IHRydWUgfSkKIHN0
b3JlLnB1dCgnYScpCiByZXF1ZXN0ID0gc3RvcmUuZ2V0KDEpCkBAIC03MCwxMSArNzMsMTIgQEAg
UEFTUyBHb3QgImQiIGZvciBrZXk6IDQKIGRiLmNsb3NlKCkKIAogVmVyaWZ5IHRoYXQgdGhlIGtl
eSBnZW5lcmF0b3IgaXMgb25seSBzZXQgaWYgYW5kIG9ubHkgaWYgYSBudW1lcmljIGtleSBncmVh
dGVyIHRoYW4gdGhlIGxhc3QgZ2VuZXJhdGVkIGtleSBpcyB1c2VkLgotcmVxdWVzdCA9IGluZGV4
ZWREQi5kZWxldGVEYXRhYmFzZSgna2V5LWdlbmVyYXRvcicpCi1yZXF1ZXN0ID0gaW5kZXhlZERC
Lm9wZW4oJ2tleS1nZW5lcmF0b3InKQotZGIgPSByZXF1ZXN0LnJlc3VsdAotcmVxdWVzdCA9IGRi
LnNldFZlcnNpb24oJzEnKQotdHJhbnMgPSByZXF1ZXN0LnJlc3VsdAoraW5kZXhlZERCID0gc2Vs
Zi5pbmRleGVkREIgfHwgc2VsZi53ZWJraXRJbmRleGVkREIgfHwgc2VsZi5tb3pJbmRleGVkREIg
fHwgc2VsZi5tc0luZGV4ZWREQiB8fCBzZWxmLk9JbmRleGVkREI7CisKK2RibmFtZSA9IHNlbGYu
bG9jYXRpb24ucGF0aG5hbWUKK2luZGV4ZWREQi5kZWxldGVEYXRhYmFzZShkYm5hbWUpCitpbmRl
eGVkREIub3BlbihkYm5hbWUpCitkYi5zZXRWZXJzaW9uKCcxJykKIHN0b3JlID0gZGIuY3JlYXRl
T2JqZWN0U3RvcmUoJ3N0b3JlMScsIHsgYXV0b0luY3JlbWVudDogdHJ1ZSB9KQogc3RvcmUucHV0
KCdhJykKIHJlcXVlc3QgPSBzdG9yZS5nZXQoMSkKQEAgLTExOCwxMSArMTIyLDEyIEBAIFBBU1Mg
R290ICJrIiBmb3Iga2V5OiAxMQogZGIuY2xvc2UoKQogCiBWZXJpZnkgdGhhdCBhYm9ydGluZyBh
IHRyYW5zYWN0aW9uIHJlc2V0cyB0aGUga2V5IGdlbmVyYXRvciBzdGF0ZS4KLXJlcXVlc3QgPSBp
bmRleGVkREIuZGVsZXRlRGF0YWJhc2UoJ2tleS1nZW5lcmF0b3InKQotcmVxdWVzdCA9IGluZGV4
ZWREQi5vcGVuKCdrZXktZ2VuZXJhdG9yJykKLWRiID0gcmVxdWVzdC5yZXN1bHQKLXJlcXVlc3Qg
PSBkYi5zZXRWZXJzaW9uKCcxJykKLXRyYW5zID0gcmVxdWVzdC5yZXN1bHQKK2luZGV4ZWREQiA9
IHNlbGYuaW5kZXhlZERCIHx8IHNlbGYud2Via2l0SW5kZXhlZERCIHx8IHNlbGYubW96SW5kZXhl
ZERCIHx8IHNlbGYubXNJbmRleGVkREIgfHwgc2VsZi5PSW5kZXhlZERCOworCitkYm5hbWUgPSBz
ZWxmLmxvY2F0aW9uLnBhdGhuYW1lCitpbmRleGVkREIuZGVsZXRlRGF0YWJhc2UoZGJuYW1lKQor
aW5kZXhlZERCLm9wZW4oZGJuYW1lKQorZGIuc2V0VmVyc2lvbignMScpCiB0cmFuczEgPSBkYi50
cmFuc2FjdGlvbihbJ3N0b3JlJ10sICdyZWFkd3JpdGUnKQogc3RvcmVfdDEgPSB0cmFuczEub2Jq
ZWN0U3RvcmUoJ3N0b3JlJykKIHN0b3JlX3QxLnB1dCgnYScpCkBAIC0xNDUsMTEgKzE1MCwxMiBA
QCBQQVNTIEdvdCAiZCIgZm9yIGtleTogMgogZGIuY2xvc2UoKQogCiBWZXJpZnkgdGhhdCBrZXlz
IGFib3ZlIDJeNTMgcmVzdWx0IGluIGVycm9ycy4KLXJlcXVlc3QgPSBpbmRleGVkREIuZGVsZXRl
RGF0YWJhc2UoJ2tleS1nZW5lcmF0b3InKQotcmVxdWVzdCA9IGluZGV4ZWREQi5vcGVuKCdrZXkt
Z2VuZXJhdG9yJykKLWRiID0gcmVxdWVzdC5yZXN1bHQKLXJlcXVlc3QgPSBkYi5zZXRWZXJzaW9u
KCcxJykKLXRyYW5zID0gcmVxdWVzdC5yZXN1bHQKK2luZGV4ZWREQiA9IHNlbGYuaW5kZXhlZERC
IHx8IHNlbGYud2Via2l0SW5kZXhlZERCIHx8IHNlbGYubW96SW5kZXhlZERCIHx8IHNlbGYubXNJ
bmRleGVkREIgfHwgc2VsZi5PSW5kZXhlZERCOworCitkYm5hbWUgPSBzZWxmLmxvY2F0aW9uLnBh
dGhuYW1lCitpbmRleGVkREIuZGVsZXRlRGF0YWJhc2UoZGJuYW1lKQoraW5kZXhlZERCLm9wZW4o
ZGJuYW1lKQorZGIuc2V0VmVyc2lvbignMScpCiB0cmFuczEgPSBkYi50cmFuc2FjdGlvbihbJ3N0
b3JlJ10sICdyZWFkd3JpdGUnKQogc3RvcmVfdDEgPSB0cmFuczEub2JqZWN0U3RvcmUoJ3N0b3Jl
JykKIHN0b3JlX3QxLnB1dCgnYScpCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9zdG9yYWdlL2lu
ZGV4ZWRkYi9rZXktc29ydC1vcmRlci1hY3Jvc3MtdHlwZXMtZXhwZWN0ZWQudHh0IGIvTGF5b3V0
VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIva2V5LXNvcnQtb3JkZXItYWNyb3NzLXR5cGVzLWV4cGVj
dGVkLnR4dAppbmRleCBiOWMxMTdlM2Y2OTk4Yjc1ODk5ZTQ5MDBiMGI2NTdmNTBhZTk3MDRmLi42
NmYxY2ZiZmI0ZDg1M2I5MTUzMmZjNjliNjlkYmU3NmU5ZWQwODUwIDEwMDY0NAotLS0gYS9MYXlv
dXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9rZXktc29ydC1vcmRlci1hY3Jvc3MtdHlwZXMtZXhw
ZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL2tleS1zb3J0LW9y
ZGVyLWFjcm9zcy10eXBlcy1leHBlY3RlZC50eHQKQEAgLTUsMTAgKzUsMTAgQEAgT24gc3VjY2Vz
cywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkg
IlRFU1QgQ09NUExFVEUKIAogaW5kZXhlZERCID0gc2VsZi5pbmRleGVkREIgfHwgc2VsZi53ZWJr
aXRJbmRleGVkREIgfHwgc2VsZi5tb3pJbmRleGVkREIgfHwgc2VsZi5tc0luZGV4ZWREQiB8fCBz
ZWxmLk9JbmRleGVkREI7CiAKLWluZGV4ZWREQi5vcGVuKG5hbWUpCi1kYiA9IGV2ZW50LnRhcmdl
dC5yZXN1bHQKLXJlcXVlc3QgPSBkYi5zZXRWZXJzaW9uKCcxJykKLURlbGV0ZWQgYWxsIG9iamVj
dCBzdG9yZXMuCitkYm5hbWUgPSBzZWxmLmxvY2F0aW9uLnBhdGhuYW1lCitpbmRleGVkREIuZGVs
ZXRlRGF0YWJhc2UoZGJuYW1lKQoraW5kZXhlZERCLm9wZW4oZGJuYW1lKQorZGIuc2V0VmVyc2lv
bignMScpCiBkYi5jcmVhdGVPYmplY3RTdG9yZSgnZm9vJyk7CiByZXF1ZXN0ID0gb2JqZWN0U3Rv
cmUuYWRkKFtdLCBJbmZpbml0eSk7CiByZXF1ZXN0ID0gb2JqZWN0U3RvcmUuYWRkKFtdLCAtSW5m
aW5pdHkpOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIva2V5LXNv
cnQtb3JkZXItZGF0ZS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRk
Yi9rZXktc29ydC1vcmRlci1kYXRlLWV4cGVjdGVkLnR4dAppbmRleCAzMmRiZTNiOWNhNTEyMjk3
OGY4MTQ1OTVkMGQzNzNmYWRhMjVmNDZhLi40OWE4NmRjMDdjY2IyOTg5ODA2YWI1MzQ5N2JhNGE3
M2Q1M2FkMjc2IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9rZXkt
c29ydC1vcmRlci1kYXRlLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9zdG9yYWdlL2lu
ZGV4ZWRkYi9rZXktc29ydC1vcmRlci1kYXRlLWV4cGVjdGVkLnR4dApAQCAtNSwxMCArNSwxMCBA
QCBPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBm
b2xsb3dlZCBieSAiVEVTVCBDT01QTEVURQogCiBpbmRleGVkREIgPSBzZWxmLmluZGV4ZWREQiB8
fCBzZWxmLndlYmtpdEluZGV4ZWREQiB8fCBzZWxmLm1vekluZGV4ZWREQiB8fCBzZWxmLm1zSW5k
ZXhlZERCIHx8IHNlbGYuT0luZGV4ZWREQjsKIAotaW5kZXhlZERCLm9wZW4obmFtZSkKLWRiID0g
ZXZlbnQudGFyZ2V0LnJlc3VsdAotcmVxdWVzdCA9IGRiLnNldFZlcnNpb24oJzEnKQotRGVsZXRl
ZCBhbGwgb2JqZWN0IHN0b3Jlcy4KK2RibmFtZSA9IHNlbGYubG9jYXRpb24ucGF0aG5hbWUKK2lu
ZGV4ZWREQi5kZWxldGVEYXRhYmFzZShkYm5hbWUpCitpbmRleGVkREIub3BlbihkYm5hbWUpCitk
Yi5zZXRWZXJzaW9uKCcxJykKIGRiLmNyZWF0ZU9iamVjdFN0b3JlKCdmb28nKTsKIGRhdGUxID0g
bmV3IERhdGUoMTAwMCk7CiByZXF1ZXN0ID0gb2JqZWN0U3RvcmUuYWRkKFtdLCBkYXRlMSk7CmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9rZXktdHlwZS1hcnJheS1l
eHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9rZXktdHlwZS1hcnJh
eS1leHBlY3RlZC50eHQKaW5kZXggNmQ5NDVjY2Q5Nzk2NGYzNzM3M2E0ZWIxYTFkZGIxYzM2YmY2
NWVlYi4uYjc2OWU4Y2JkMTA2MGQ1ZDliMjkwNmFhMGI5MjA1ZTVkN2E3MWVjNCAxMDA2NDQKLS0t
IGEvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIva2V5LXR5cGUtYXJyYXktZXhwZWN0ZWQu
dHh0CisrKyBiL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL2tleS10eXBlLWFycmF5LWV4
cGVjdGVkLnR4dApAQCAtNSwxMSArNSwxMSBAQCBPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBz
ZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURQogCiBp
bmRleGVkREIgPSBzZWxmLmluZGV4ZWREQiB8fCBzZWxmLndlYmtpdEluZGV4ZWREQiB8fCBzZWxm
Lm1vekluZGV4ZWREQiB8fCBzZWxmLm1zSW5kZXhlZERCIHx8IHNlbGYuT0luZGV4ZWREQjsKIAot
aW5kZXhlZERCLm9wZW4obmFtZSkKLWRiID0gb3BlbnJlcS5yZXN1bHQKLXJlcXVlc3QgPSBkYi5z
ZXRWZXJzaW9uKCcxJykKK2RibmFtZSA9IHNlbGYubG9jYXRpb24ucGF0aG5hbWUKK2luZGV4ZWRE
Qi5kZWxldGVEYXRhYmFzZShkYm5hbWUpCitpbmRleGVkREIub3BlbihkYm5hbWUpCitkYi5zZXRW
ZXJzaW9uKCcxJykKIHByZXBhcmluZyBkYXRhYmFzZQotRGVsZXRlZCBhbGwgb2JqZWN0IHN0b3Jl
cy4KIGRiLmNyZWF0ZU9iamVjdFN0b3JlKCdzdG9yZScpOwogCiB0cmFucyA9IGRiLnRyYW5zYWN0
aW9uKCdzdG9yZScsICdyZWFkd3JpdGUnKQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvc3RvcmFn
ZS9pbmRleGVkZGIva2V5LXR5cGUtaW5maW5pdHktZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMv
c3RvcmFnZS9pbmRleGVkZGIva2V5LXR5cGUtaW5maW5pdHktZXhwZWN0ZWQudHh0CmluZGV4IGQw
ZTc1OTM5ZWUwMDEzYmE5NzQzNzNiODNmNzFlZDZlNzJjYzQzZGUuLmRkNjkwYmI1M2M2M2Y4OTg2
Y2NlYWU0OTJjMzNlYTE1ZjkyMDIzZmYgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3N0b3JhZ2Uv
aW5kZXhlZGRiL2tleS10eXBlLWluZmluaXR5LWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0
cy9zdG9yYWdlL2luZGV4ZWRkYi9rZXktdHlwZS1pbmZpbml0eS1leHBlY3RlZC50eHQKQEAgLTUs
MTAgKzUsMTAgQEAgT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBt
ZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUKIAogaW5kZXhlZERCID0gc2VsZi5p
bmRleGVkREIgfHwgc2VsZi53ZWJraXRJbmRleGVkREIgfHwgc2VsZi5tb3pJbmRleGVkREIgfHwg
c2VsZi5tc0luZGV4ZWREQiB8fCBzZWxmLk9JbmRleGVkREI7CiAKLWluZGV4ZWREQi5vcGVuKG5h
bWUpCi1kYiA9IGV2ZW50LnRhcmdldC5yZXN1bHQKLXJlcXVlc3QgPSBkYi5zZXRWZXJzaW9uKCcx
JykKLURlbGV0ZWQgYWxsIG9iamVjdCBzdG9yZXMuCitkYm5hbWUgPSBzZWxmLmxvY2F0aW9uLnBh
dGhuYW1lCitpbmRleGVkREIuZGVsZXRlRGF0YWJhc2UoZGJuYW1lKQoraW5kZXhlZERCLm9wZW4o
ZGJuYW1lKQorZGIuc2V0VmVyc2lvbignMScpCiBkYi5jcmVhdGVPYmplY3RTdG9yZSgnZm9vJyk7
CiB0ZXN0IGtleSBhcyBpbmZpbml0eQogcmVxdWVzdCA9IG9iamVjdFN0b3JlLmFkZChbXSwgSW5m
aW5pdHkpOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIva2V5cGF0
aC1hcnJheXMtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIva2V5
cGF0aC1hcnJheXMtZXhwZWN0ZWQudHh0CmluZGV4IGMzMTU0MTAyNDVlMjZmOWIwYWYxZWUxMzAy
YTQ2ZGVkMzkzMGUwODMuLjFiZDczM2UzZjlkZTE4ODRhOGQ2MTFlYmJkMTUwYWEzMzQzY2I0ZGQg
MTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL2tleXBhdGgtYXJyYXlz
LWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9rZXlwYXRo
LWFycmF5cy1leHBlY3RlZC50eHQKQEAgLTUsMTIgKzUsMTAgQEAgT24gc3VjY2VzcywgeW91IHdp
bGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09N
UExFVEUKIAogaW5kZXhlZERCID0gc2VsZi5pbmRleGVkREIgfHwgc2VsZi53ZWJraXRJbmRleGVk
REIgfHwgc2VsZi5tb3pJbmRleGVkREIgfHwgc2VsZi5tc0luZGV4ZWREQiB8fCBzZWxmLk9JbmRl
eGVkREI7CiAKLWluZGV4ZWREQi5kZWxldGVEYXRhYmFzZSgna2V5cGF0aC1hcnJheXMnKQotaW5k
ZXhlZERCLm9wZW4oJ2tleXBhdGgtYXJyYXlzJykKLQotb3BlblN1Y2Nlc3MoKToKLWRiID0gZXZl
bnQudGFyZ2V0LnJlc3VsdAotcmVxdWVzdCA9IGRiLnNldFZlcnNpb24oJzEnKQorZGJuYW1lID0g
c2VsZi5sb2NhdGlvbi5wYXRobmFtZQoraW5kZXhlZERCLmRlbGV0ZURhdGFiYXNlKGRibmFtZSkK
K2luZGV4ZWREQi5vcGVuKGRibmFtZSkKK2RiLnNldFZlcnNpb24oJzEnKQogc3RvcmUgPSBkYi5j
cmVhdGVPYmplY3RTdG9yZSgnc3RvcmUnLCB7a2V5UGF0aDogWydhJywgJ2InXX0pCiBzdG9yZS5j
cmVhdGVJbmRleCgnaW5kZXgnLCBbJ2MnLCAnZCddKQogRXhwZWN0aW5nIGV4Y2VwdGlvbiBmcm9t
IGRiLmNyZWF0ZU9iamVjdFN0b3JlKCdzdG9yZS13aXRoLWdlbmVyYXRvcicsIHtrZXlQYXRoOiBb
J2EnLCAnYiddLCBhdXRvSW5jcmVtZW50OiB0cnVlfSkKZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L3N0b3JhZ2UvaW5kZXhlZGRiL2tleXBhdGgtYmFzaWNzLWV4cGVjdGVkLnR4dCBiL0xheW91dFRl
c3RzL3N0b3JhZ2UvaW5kZXhlZGRiL2tleXBhdGgtYmFzaWNzLWV4cGVjdGVkLnR4dAppbmRleCBh
ODhjOGNjZmVhZjEzMTU3MGQyM2Q1MjA4ZjRjNGNjY2FkYzZhYzVjLi5mZjY1ZjZjZjI5ZDFlYzk5
NmFkNDA2YzJkMDg2YjZmOGQ5ZjNkOTFkIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9zdG9yYWdl
L2luZGV4ZWRkYi9rZXlwYXRoLWJhc2ljcy1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMv
c3RvcmFnZS9pbmRleGVkZGIva2V5cGF0aC1iYXNpY3MtZXhwZWN0ZWQudHh0CkBAIC01LDEyICs1
LDEyIEBAIE9uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2Fn
ZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFCiAKIGluZGV4ZWREQiA9IHNlbGYuaW5kZXhl
ZERCIHx8IHNlbGYud2Via2l0SW5kZXhlZERCIHx8IHNlbGYubW96SW5kZXhlZERCIHx8IHNlbGYu
bXNJbmRleGVkREIgfHwgc2VsZi5PSW5kZXhlZERCOwogCi1pbmRleGVkREIub3BlbihuYW1lKQot
ZGIgPSBldmVudC50YXJnZXQucmVzdWx0Ci1yZXF1ZXN0ID0gZGIuc2V0VmVyc2lvbignMScpCitk
Ym5hbWUgPSBzZWxmLmxvY2F0aW9uLnBhdGhuYW1lCitpbmRleGVkREIuZGVsZXRlRGF0YWJhc2Uo
ZGJuYW1lKQoraW5kZXhlZERCLm9wZW4oZGJuYW1lKQorZGIuc2V0VmVyc2lvbignMScpCiAKIHRl
c3RWYWxpZEtleVBhdGhzKCk6Ci1EZWxldGVkIGFsbCBvYmplY3Qgc3RvcmVzLgogc3RvcmUgPSBk
Yi5jcmVhdGVPYmplY3RTdG9yZSgnbmFtZScpCiBQQVNTIHN0b3JlLmtleVBhdGggaXMgbnVsbAog
RGVsZXRlZCBhbGwgb2JqZWN0IHN0b3Jlcy4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3N0b3Jh
Z2UvaW5kZXhlZGRiL2tleXBhdGgtZWRnZXMtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvc3Rv
cmFnZS9pbmRleGVkZGIva2V5cGF0aC1lZGdlcy1leHBlY3RlZC50eHQKaW5kZXggYjEyYmIxODQy
YzRmMjIwNDI5YTdiZTJmMWE2NzkwZjIyYjg1MjkzMS4uYjMxZjFiOGM5MGM2NGQ0NTkxMGFhOWVi
OTI2ZTVlM2U0M2RlOTc5ZCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVk
ZGIva2V5cGF0aC1lZGdlcy1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvc3RvcmFnZS9p
bmRleGVkZGIva2V5cGF0aC1lZGdlcy1leHBlY3RlZC50eHQKQEAgLTUsMTIgKzUsMTAgQEAgT24g
c3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93
ZWQgYnkgIlRFU1QgQ09NUExFVEUKIAogaW5kZXhlZERCID0gc2VsZi5pbmRleGVkREIgfHwgc2Vs
Zi53ZWJraXRJbmRleGVkREIgfHwgc2VsZi5tb3pJbmRleGVkREIgfHwgc2VsZi5tc0luZGV4ZWRE
QiB8fCBzZWxmLk9JbmRleGVkREI7CiAKLWluZGV4ZWREQi5kZWxldGVEYXRhYmFzZSgna2V5cGF0
aC1lZGdlcycpCi1pbmRleGVkREIub3Blbigna2V5cGF0aC1lZGdlcycpCi0KLW9wZW5TdWNjZXNz
KCk6Ci1kYiA9IGV2ZW50LnRhcmdldC5yZXN1bHQKLXJlcXVlc3QgPSBkYi5zZXRWZXJzaW9uKCcx
JykKK2RibmFtZSA9IHNlbGYubG9jYXRpb24ucGF0aG5hbWUKK2luZGV4ZWREQi5kZWxldGVEYXRh
YmFzZShkYm5hbWUpCitpbmRleGVkREIub3BlbihkYm5hbWUpCitkYi5zZXRWZXJzaW9uKCcxJykK
IGRiLmNyZWF0ZU9iamVjdFN0b3JlKCdzdG9yZS13aXRoLXBhdGgnLCB7a2V5UGF0aDogJ2Zvbyd9
KQogZGIuY3JlYXRlT2JqZWN0U3RvcmUoJ3N0b3JlLXdpdGgtcGF0aC1hbmQtZ2VuZXJhdG9yJywg
e2tleVBhdGg6ICdmb28nLCBhdXRvSW5jcmVtZW50OiB0cnVlfSkKIApkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIva2V5cGF0aC1mZXRjaC1rZXktZXhwZWN0ZWQudHh0
IGIvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIva2V5cGF0aC1mZXRjaC1rZXktZXhwZWN0
ZWQudHh0CmluZGV4IGY3MzAzMzQ1ZmMwYzA0YmM0OTE1NjZiZTQwYjcwNDgwNmRmMWI1NjEuLjY4
NDJmZDFkN2IxNWEzMmQzZDRmOGY5MDdhOTJmMGZmZDFlMzg5YmIgMTAwNjQ0Ci0tLSBhL0xheW91
dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL2tleXBhdGgtZmV0Y2gta2V5LWV4cGVjdGVkLnR4dAor
KysgYi9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9rZXlwYXRoLWZldGNoLWtleS1leHBl
Y3RlZC50eHQKQEAgLTUsOSArNSwxMCBAQCBPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJp
ZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURQogCiBpbmRl
eGVkREIgPSBzZWxmLmluZGV4ZWREQiB8fCBzZWxmLndlYmtpdEluZGV4ZWREQiB8fCBzZWxmLm1v
ekluZGV4ZWREQiB8fCBzZWxmLm1zSW5kZXhlZERCIHx8IHNlbGYuT0luZGV4ZWREQjsKIAotaW5k
ZXhlZERCLm9wZW4obmFtZSkKLWRiID0gZXZlbnQudGFyZ2V0LnJlc3VsdAotcmVxdWVzdCA9IGRi
LnNldFZlcnNpb24oJzEnKQorZGJuYW1lID0gc2VsZi5sb2NhdGlvbi5wYXRobmFtZQoraW5kZXhl
ZERCLmRlbGV0ZURhdGFiYXNlKGRibmFtZSkKK2luZGV4ZWREQi5vcGVuKGRibmFtZSkKK2RiLnNl
dFZlcnNpb24oJzEnKQogCiB0ZXN0aW5nIHNpbXBsZSBpZGVudGlmaWVyCiBEZWxldGVkIGFsbCBv
YmplY3Qgc3RvcmVzLgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIv
a2V5cGF0aC1pbnRyaW5zaWMtcHJvcGVydGllcy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9z
dG9yYWdlL2luZGV4ZWRkYi9rZXlwYXRoLWludHJpbnNpYy1wcm9wZXJ0aWVzLWV4cGVjdGVkLnR4
dAppbmRleCAyYzUxOTE4MjYwNGU4NDU4MTg3MWM0MmMxNTlhY2UyMjFhZmIxOWNlLi40NjE5ZTA1
OTRkNDZhM2VhYTQzMmIxMzRkY2U3MTE4MTM4ZTFjZGEyIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0
cy9zdG9yYWdlL2luZGV4ZWRkYi9rZXlwYXRoLWludHJpbnNpYy1wcm9wZXJ0aWVzLWV4cGVjdGVk
LnR4dAorKysgYi9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9rZXlwYXRoLWludHJpbnNp
Yy1wcm9wZXJ0aWVzLWV4cGVjdGVkLnR4dApAQCAtNSwxMiArNSwxMCBAQCBPbiBzdWNjZXNzLCB5
b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVT
VCBDT01QTEVURQogCiBpbmRleGVkREIgPSBzZWxmLmluZGV4ZWREQiB8fCBzZWxmLndlYmtpdElu
ZGV4ZWREQiB8fCBzZWxmLm1vekluZGV4ZWREQiB8fCBzZWxmLm1zSW5kZXhlZERCIHx8IHNlbGYu
T0luZGV4ZWREQjsKIAotaW5kZXhlZERCLmRlbGV0ZURhdGFiYXNlKCdrZXlwYXRoLWludHJpbnNp
Yy1wcm9wZXJ0aWVzJykKLWluZGV4ZWREQi5vcGVuKCdrZXlwYXRoLWludHJpbnNpYy1wcm9wZXJ0
aWVzJykKLQotb3BlblN1Y2Nlc3MoKToKLWRiID0gZXZlbnQudGFyZ2V0LnJlc3VsdAotcmVxdWVz
dCA9IGRiLnNldFZlcnNpb24oJzEnKQorZGJuYW1lID0gc2VsZi5sb2NhdGlvbi5wYXRobmFtZQor
aW5kZXhlZERCLmRlbGV0ZURhdGFiYXNlKGRibmFtZSkKK2luZGV4ZWREQi5vcGVuKGRibmFtZSkK
K2RiLnNldFZlcnNpb24oJzEnKQogc3RvcmUgPSBkYi5jcmVhdGVPYmplY3RTdG9yZSgnc3RvcmUn
LCB7a2V5UGF0aDogJ2lkJ30pCiBzdG9yZS5jcmVhdGVJbmRleCgnc3RyaW5nIGxlbmd0aCcsICdz
dHJpbmcubGVuZ3RoJykKIHN0b3JlLmNyZWF0ZUluZGV4KCdhcnJheSBsZW5ndGgnLCAnYXJyYXku
bGVuZ3RoJykKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL2xlZ2Fj
eS1jb25zdGFudHMtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIv
bGVnYWN5LWNvbnN0YW50cy1leHBlY3RlZC50eHQKaW5kZXggMWU0Nzg4YmFlODU4ZjkyOTIyODYz
NTVlNDI1MjY1M2Y1YzcyNWVhMi4uNDg2ZjI5NjZjZDNlY2E4YzQ2MGMwZmM3Nzk0YjY1NTQ5NmJk
ZDFmZSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvbGVnYWN5LWNv
bnN0YW50cy1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIv
bGVnYWN5LWNvbnN0YW50cy1leHBlY3RlZC50eHQKQEAgLTE4LDExICsxOCwxMCBAQCBPbiBzdWNj
ZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBi
eSAiVEVTVCBDT01QTEVURQogCiBpbmRleGVkREIgPSBzZWxmLmluZGV4ZWREQiB8fCBzZWxmLndl
YmtpdEluZGV4ZWREQiB8fCBzZWxmLm1vekluZGV4ZWREQiB8fCBzZWxmLm1zSW5kZXhlZERCIHx8
IHNlbGYuT0luZGV4ZWREQjsKIAotCi1vcGVucmVxID0gaW5kZXhlZERCLm9wZW4oJ2xlZ2FjeS1j
b25zdGFudHMnKQotZGIgPSBvcGVucmVxLnJlc3VsdAotdmVycmVxID0gZGIuc2V0VmVyc2lvbign
MScpCi1EZWxldGVkIGFsbCBvYmplY3Qgc3RvcmVzLgorZGJuYW1lID0gc2VsZi5sb2NhdGlvbi5w
YXRobmFtZQoraW5kZXhlZERCLmRlbGV0ZURhdGFiYXNlKGRibmFtZSkKK2luZGV4ZWREQi5vcGVu
KGRibmFtZSkKK2RiLnNldFZlcnNpb24oJzEnKQogc3RvcmUgPSBkYi5jcmVhdGVPYmplY3RTdG9y
ZSgnc3RvcmUnKQogc3RvcmUuY3JlYXRlSW5kZXgoJ2luZGV4JywgJ3ZhbHVlJykKIApkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvbGlzdC1vcmRlcmluZy1leHBlY3Rl
ZC50eHQgYi9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9saXN0LW9yZGVyaW5nLWV4cGVj
dGVkLnR4dAppbmRleCA5Y2JhMDBhMmJmY2UxY2UzNDFmN2Y5NTkzNTNkYWU2NDRhZDY0OTRmLi4z
YWQzMjNjZGJmMDI4ZjQ5OWRlOTkwMzM3NTFhMTdkMDY5OGUyN2I3IDEwMDY0NAotLS0gYS9MYXlv
dXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9saXN0LW9yZGVyaW5nLWV4cGVjdGVkLnR4dAorKysg
Yi9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9saXN0LW9yZGVyaW5nLWV4cGVjdGVkLnR4
dApAQCAtNSwxNiArNSwxNSBAQCBPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2Yg
IlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURQogCiBpbmRleGVkREIg
PSBzZWxmLmluZGV4ZWREQiB8fCBzZWxmLndlYmtpdEluZGV4ZWREQiB8fCBzZWxmLm1vekluZGV4
ZWREQiB8fCBzZWxmLm1zSW5kZXhlZERCIHx8IHNlbGYuT0luZGV4ZWREQjsKIAorZGJuYW1lID0g
c2VsZi5sb2NhdGlvbi5wYXRobmFtZQoraW5kZXhlZERCLmRlbGV0ZURhdGFiYXNlKGRibmFtZSkK
K2luZGV4ZWREQi5vcGVuKGRibmFtZSkKK2RiLnNldFZlcnNpb24oJzEnKQogY2hlY2sgdGhhdCB0
aGUgZXhwZWN0ZWQgb3JkZXIgaXMgdGhlIGNhbm9uaWNhbCBKUyBzb3J0IG9yZGVyOgogc29ydGVk
X29yZGVyID0gZXhwZWN0ZWRfb3JkZXIuc2xpY2UoKTsgc29ydGVkX29yZGVyLnNvcnQoKQogUEFT
UyBhcmVBcnJheXNFcXVhbChzb3J0ZWRfb3JkZXIsIGV4cGVjdGVkX29yZGVyKSBpcyB0cnVlCiAK
IHRlc3RTdG9yZXNBbmRJbmRleGVzKCk6Ci1pbmRleGVkREIuZGVsZXRlRGF0YWJhc2UoJ2xpc3Qt
b3JkZXJpbmcnKQotaW5kZXhlZERCLm9wZW4oJ2xpc3Qtb3JkZXJpbmcnKQotZGIgPSByZXF1ZXN0
LnJlc3VsdAotUEFTUyBkYi52ZXJzaW9uIGlzICIiCi1kYi5zZXRWZXJzaW9uKCcxJykKIAogT2Jq
ZWN0IHN0b3JlczoKIGRiLmNyZWF0ZU9iamVjdFN0b3JlKCLwnYSeIikKZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL21vemlsbGEvYWRkLXR3aWNlLWZhaWx1cmUtZXhw
ZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvbW96aWxsYS9hZGQtdHdp
Y2UtZmFpbHVyZS1leHBlY3RlZC50eHQKaW5kZXggNTE4Y2NhOTFmNjI3M2YyYzBkZDRlMGY3M2Ey
YzhhOGM3OTg1MmNkYy4uNzI5ZDlmNGUzNjE3YWZkOTNlMjZlMDIwZWI5MzBhNzg2ZTM4MzA2YyAx
MDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvbW96aWxsYS9hZGQtdHdp
Y2UtZmFpbHVyZS1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVk
ZGIvbW96aWxsYS9hZGQtdHdpY2UtZmFpbHVyZS1leHBlY3RlZC50eHQKQEAgLTUsMTAgKzUsMTAg
QEAgT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywg
Zm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUKIAogaW5kZXhlZERCID0gc2VsZi5pbmRleGVkREIg
fHwgc2VsZi53ZWJraXRJbmRleGVkREIgfHwgc2VsZi5tb3pJbmRleGVkREIgfHwgc2VsZi5tc0lu
ZGV4ZWREQiB8fCBzZWxmLk9JbmRleGVkREI7CiAKLWluZGV4ZWREQi5vcGVuKG5hbWUpCi1kYiA9
IGV2ZW50LnRhcmdldC5yZXN1bHQKLXJlcXVlc3QgPSBkYi5zZXRWZXJzaW9uKCcxJykKLURlbGV0
ZWQgYWxsIG9iamVjdCBzdG9yZXMuCitkYm5hbWUgPSBzZWxmLmxvY2F0aW9uLnBhdGhuYW1lCitp
bmRleGVkREIuZGVsZXRlRGF0YWJhc2UoZGJuYW1lKQoraW5kZXhlZERCLm9wZW4oZGJuYW1lKQor
ZGIuc2V0VmVyc2lvbignMScpCiBvYmplY3RTdG9yZSA9IGRiLmNyZWF0ZU9iamVjdFN0b3JlKCdm
b28nKTsKIGtleSA9IDEwCiByZXF1ZXN0ID0gb2JqZWN0U3RvcmUuYWRkKHt9LCBrZXkpOwpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvbW96aWxsYS9hdXRvaW5jcmVt
ZW50LWluZGV4ZXMtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIv
bW96aWxsYS9hdXRvaW5jcmVtZW50LWluZGV4ZXMtZXhwZWN0ZWQudHh0CmluZGV4IGY5NDUzNzQ3
MTA5ZjlhMDU0YWQ5ZDM4OGMxNmIwODg5ZmY2YjZhZWEuLmE0ZDczNmMwYWJhOWYyMDNlZDExMThh
YzcwZWQxNWRlMjE5NzA1MDcgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhl
ZGRiL21vemlsbGEvYXV0b2luY3JlbWVudC1pbmRleGVzLWV4cGVjdGVkLnR4dAorKysgYi9MYXlv
dXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9tb3ppbGxhL2F1dG9pbmNyZW1lbnQtaW5kZXhlcy1l
eHBlY3RlZC50eHQKQEAgLTUsOSArNSwxMCBAQCBPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBz
ZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURQogCiBp
bmRleGVkREIgPSBzZWxmLmluZGV4ZWREQiB8fCBzZWxmLndlYmtpdEluZGV4ZWREQiB8fCBzZWxm
Lm1vekluZGV4ZWREQiB8fCBzZWxmLm1zSW5kZXhlZERCIHx8IHNlbGYuT0luZGV4ZWREQjsKIAot
aW5kZXhlZERCLm9wZW4obmFtZSkKLWRiID0gZXZlbnQudGFyZ2V0LnJlc3VsdAotcmVxdWVzdCA9
IGRiLnNldFZlcnNpb24oJzEnKQorZGJuYW1lID0gc2VsZi5sb2NhdGlvbi5wYXRobmFtZQoraW5k
ZXhlZERCLmRlbGV0ZURhdGFiYXNlKGRibmFtZSkKK2luZGV4ZWREQi5vcGVuKGRibmFtZSkKK2Ri
LnNldFZlcnNpb24oJzEnKQogRGVsZXRlZCBhbGwgb2JqZWN0IHN0b3Jlcy4KIG9iamVjdFN0b3Jl
ID0gZGIuY3JlYXRlT2JqZWN0U3RvcmUoJ2ZvbycsIHsga2V5UGF0aDogJ2lkJywgYXV0b0luY3Jl
bWVudDogdHJ1ZSB9KTsKIG9iamVjdFN0b3JlLmNyZWF0ZUluZGV4KCdmaXJzdCcsICdmaXJzdCcp
OwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvbW96aWxsYS9iYWQt
a2V5cGF0aC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9tb3pp
bGxhL2JhZC1rZXlwYXRoLWV4cGVjdGVkLnR4dAppbmRleCA4MzE4MTM3YzBmMTBlOTU0NTE2MjE3
NmU0M2I3MjUwOWU4Zjc0NjAxLi45YTExZGU2NDM4NGJhZGY3ZGU0NGQ0NTg4NmU3YWY5NGE0MDI0
NmJhIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9tb3ppbGxhL2Jh
ZC1rZXlwYXRoLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRk
Yi9tb3ppbGxhL2JhZC1rZXlwYXRoLWV4cGVjdGVkLnR4dApAQCAtNSwxMCArNSwxMCBAQCBPbiBz
dWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dl
ZCBieSAiVEVTVCBDT01QTEVURQogCiBpbmRleGVkREIgPSBzZWxmLmluZGV4ZWREQiB8fCBzZWxm
LndlYmtpdEluZGV4ZWREQiB8fCBzZWxmLm1vekluZGV4ZWREQiB8fCBzZWxmLm1zSW5kZXhlZERC
IHx8IHNlbGYuT0luZGV4ZWREQjsKIAotaW5kZXhlZERCLm9wZW4obmFtZSkKLWRiID0gZXZlbnQu
dGFyZ2V0LnJlc3VsdAotcmVxdWVzdCA9IGRiLnNldFZlcnNpb24oJzEnKQotRGVsZXRlZCBhbGwg
b2JqZWN0IHN0b3Jlcy4KK2RibmFtZSA9IHNlbGYubG9jYXRpb24ucGF0aG5hbWUKK2luZGV4ZWRE
Qi5kZWxldGVEYXRhYmFzZShkYm5hbWUpCitpbmRleGVkREIub3BlbihkYm5hbWUpCitkYi5zZXRW
ZXJzaW9uKCcxJykKIG9iamVjdFN0b3JlID0gZGIuY3JlYXRlT2JqZWN0U3RvcmUoJ2ZvbycsIHsg
a2V5UGF0aDogJ2tleVBhdGgnIH0pOwogcmVxdWVzdCA9IG9iamVjdFN0b3JlLmFkZCh7IGtleVBh
dGg6ICdmb28nIH0pOwogRXhwZWN0aW5nIGV4Y2VwdGlvbiBmcm9tIHJlcXVlc3QgPSBvYmplY3RT
dG9yZS5hZGQoe30pOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIv
bW96aWxsYS9jbGVhci1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRk
Yi9tb3ppbGxhL2NsZWFyLWV4cGVjdGVkLnR4dAppbmRleCA3ZDQ4MGVlZmRjNjhkNjE3OGMxNjcx
YmI5ODkzMWY1ODk0NTIyOTZhLi5kZjYwMmMzMWQ2MmRmZTQzYjczYTNjNDc0YmQ5NGIyZWFiOTJh
YzI3IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9tb3ppbGxhL2Ns
ZWFyLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9tb3pp
bGxhL2NsZWFyLWV4cGVjdGVkLnR4dApAQCAtNSwxMCArNSwxMCBAQCBPbiBzdWNjZXNzLCB5b3Ug
d2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBD
T01QTEVURQogCiBpbmRleGVkREIgPSBzZWxmLmluZGV4ZWREQiB8fCBzZWxmLndlYmtpdEluZGV4
ZWREQiB8fCBzZWxmLm1vekluZGV4ZWREQiB8fCBzZWxmLm1zSW5kZXhlZERCIHx8IHNlbGYuT0lu
ZGV4ZWREQjsKIAotaW5kZXhlZERCLm9wZW4obmFtZSkKLWRiID0gZXZlbnQudGFyZ2V0LnJlc3Vs
dAotcmVxdWVzdCA9IGRiLnNldFZlcnNpb24oJzEnKQotRGVsZXRlZCBhbGwgb2JqZWN0IHN0b3Jl
cy4KK2RibmFtZSA9IHNlbGYubG9jYXRpb24ucGF0aG5hbWUKK2luZGV4ZWREQi5kZWxldGVEYXRh
YmFzZShkYm5hbWUpCitpbmRleGVkREIub3BlbihkYm5hbWUpCitkYi5zZXRWZXJzaW9uKCcxJykK
IG9iamVjdFN0b3JlID0gZGIuY3JlYXRlT2JqZWN0U3RvcmUoJ2ZvbycsIHsgYXV0b0luY3JlbWVu
dDogdHJ1ZSB9KTsKIHJlcXVlc3QgPSBvYmplY3RTdG9yZS5hZGQoe30pOwogRXhwZWN0aW5nIGV4
Y2VwdGlvbiBmcm9tIGRiLnRyYW5zYWN0aW9uKCdmb28nKS5vYmplY3RTdG9yZSgnZm9vJykuY2xl
YXIoKTsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL21vemlsbGEv
Y3JlYXRlLWluZGV4LXVuaXF1ZS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9zdG9yYWdlL2lu
ZGV4ZWRkYi9tb3ppbGxhL2NyZWF0ZS1pbmRleC11bmlxdWUtZXhwZWN0ZWQudHh0CmluZGV4IDdm
ZDhiMjYzNDJkNjdiOGI0NjEzMWYxZTc4NDc1NGVmMDU5NGVkN2QuLjIxOTRiNmNhZmJjODI2NmZm
YjlkYmIyMjY3MTRjZDUxMmFmZmNmZDIgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3N0b3JhZ2Uv
aW5kZXhlZGRiL21vemlsbGEvY3JlYXRlLWluZGV4LXVuaXF1ZS1leHBlY3RlZC50eHQKKysrIGIv
TGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvbW96aWxsYS9jcmVhdGUtaW5kZXgtdW5pcXVl
LWV4cGVjdGVkLnR4dApAQCAtNSwxMCArNSwxMCBAQCBPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUg
YSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURQog
CiBpbmRleGVkREIgPSBzZWxmLmluZGV4ZWREQiB8fCBzZWxmLndlYmtpdEluZGV4ZWREQiB8fCBz
ZWxmLm1vekluZGV4ZWREQiB8fCBzZWxmLm1zSW5kZXhlZERCIHx8IHNlbGYuT0luZGV4ZWREQjsK
IAotaW5kZXhlZERCLm9wZW4obmFtZSkKLWRiID0gZXZlbnQudGFyZ2V0LnJlc3VsdAotcmVxdWVz
dCA9IGRiLnNldFZlcnNpb24oJzEnKQotRGVsZXRlZCBhbGwgb2JqZWN0IHN0b3Jlcy4KK2RibmFt
ZSA9IHNlbGYubG9jYXRpb24ucGF0aG5hbWUKK2luZGV4ZWREQi5kZWxldGVEYXRhYmFzZShkYm5h
bWUpCitpbmRleGVkREIub3BlbihkYm5hbWUpCitkYi5zZXRWZXJzaW9uKCcxJykKIG9iamVjdFN0
b3JlID0gZGIuY3JlYXRlT2JqZWN0U3RvcmUoJ2EnLCB7IGtleVBhdGg6ICdpZCcsIGF1dG9JbmNy
ZW1lbnQ6IHRydWUgfSk7CiBpbmRleCA9IG9iamVjdFN0b3JlLmNyZWF0ZUluZGV4KGluZGV4TmFt
ZSwgaW5kZXhLZXlQYXRoLCB7IHVuaXF1ZTogdHJ1ZSB9KTsKIFBBU1MgaW5kZXgubmFtZSBpcyBp
bmRleE5hbWUKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL21vemls
bGEvY3JlYXRlLWluZGV4LXdpdGgtaW50ZWdlci1rZXlzLWV4cGVjdGVkLnR4dCBiL0xheW91dFRl
c3RzL3N0b3JhZ2UvaW5kZXhlZGRiL21vemlsbGEvY3JlYXRlLWluZGV4LXdpdGgtaW50ZWdlci1r
ZXlzLWV4cGVjdGVkLnR4dAppbmRleCA1ZTQ4NGQyNGNhZDlhMWFkMTQ5OTYxM2M4MjY1MDYyMDEz
MWRmNjcwLi45YmY4MWEzNGQ1Y2JiNzU1YTczMjcxMGI5ODBjMGQ0YjNhMjRkMDM2IDEwMDY0NAot
LS0gYS9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9tb3ppbGxhL2NyZWF0ZS1pbmRleC13
aXRoLWludGVnZXIta2V5cy1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvc3RvcmFnZS9p
bmRleGVkZGIvbW96aWxsYS9jcmVhdGUtaW5kZXgtd2l0aC1pbnRlZ2VyLWtleXMtZXhwZWN0ZWQu
dHh0CkBAIC01LDEwICs1LDEwIEBAIE9uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBv
ZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFCiAKIGluZGV4ZWRE
QiA9IHNlbGYuaW5kZXhlZERCIHx8IHNlbGYud2Via2l0SW5kZXhlZERCIHx8IHNlbGYubW96SW5k
ZXhlZERCIHx8IHNlbGYubXNJbmRleGVkREIgfHwgc2VsZi5PSW5kZXhlZERCOwogCi1pbmRleGVk
REIub3BlbihuYW1lKQotZGIgPSBldmVudC50YXJnZXQucmVzdWx0Ci1yZXF1ZXN0ID0gZGIuc2V0
VmVyc2lvbignMScpCi1EZWxldGVkIGFsbCBvYmplY3Qgc3RvcmVzLgorZGJuYW1lID0gc2VsZi5s
b2NhdGlvbi5wYXRobmFtZQoraW5kZXhlZERCLmRlbGV0ZURhdGFiYXNlKGRibmFtZSkKK2luZGV4
ZWREQi5vcGVuKGRibmFtZSkKK2RiLnNldFZlcnNpb24oJzEnKQogb2JqZWN0U3RvcmUgPSBkYi5j
cmVhdGVPYmplY3RTdG9yZSgnZm9vJywgeyBrZXlQYXRoOiAnaWQnIH0pOwogZGF0YSA9IHsgaWQ6
IDE2LCBudW06IDQyIH07CiBvYmplY3RTdG9yZS5hZGQoZGF0YSk7CmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9tb3ppbGxhL2NyZWF0ZS1vYmplY3RzdG9yZS1iYXNp
Y3MtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvbW96aWxsYS9j
cmVhdGUtb2JqZWN0c3RvcmUtYmFzaWNzLWV4cGVjdGVkLnR4dAppbmRleCAyZmIwZDBlNDc4Yjdh
NjQzMDIyYjMyYjBhOWQ3NmUyZTI0OWU3Njg4Li5mYTVkNzFiNGM2MmVlYzAxOTZkMmQ2OTVmZTVi
ZjQ1ZmI3YTY0MDExIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9t
b3ppbGxhL2NyZWF0ZS1vYmplY3RzdG9yZS1iYXNpY3MtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91
dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL21vemlsbGEvY3JlYXRlLW9iamVjdHN0b3JlLWJhc2lj
cy1leHBlY3RlZC50eHQKQEAgLTUsMTAgKzUsMTAgQEAgT24gc3VjY2VzcywgeW91IHdpbGwgc2Vl
IGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUK
IAogaW5kZXhlZERCID0gc2VsZi5pbmRleGVkREIgfHwgc2VsZi53ZWJraXRJbmRleGVkREIgfHwg
c2VsZi5tb3pJbmRleGVkREIgfHwgc2VsZi5tc0luZGV4ZWREQiB8fCBzZWxmLk9JbmRleGVkREI7
CiAKLWluZGV4ZWREQi5vcGVuKG5hbWUpCi1kYiA9IGV2ZW50LnRhcmdldC5yZXN1bHQKLXJlcXVl
c3QgPSBkYi5zZXRWZXJzaW9uKCcxJykKLURlbGV0ZWQgYWxsIG9iamVjdCBzdG9yZXMuCitkYm5h
bWUgPSBzZWxmLmxvY2F0aW9uLnBhdGhuYW1lCitpbmRleGVkREIuZGVsZXRlRGF0YWJhc2UoZGJu
YW1lKQoraW5kZXhlZERCLm9wZW4oZGJuYW1lKQorZGIuc2V0VmVyc2lvbignMScpCiBvYmplY3RT
dG9yZSA9IGRiLmNyZWF0ZU9iamVjdFN0b3JlKGluZm8ubmFtZSwgaW5mby5vcHRpb25zKTsKIFBB
U1Mgb2JqZWN0U3RvcmUubmFtZSBpcyBpbmZvLm5hbWUKIFBBU1Mgb2JqZWN0U3RvcmUuaW5kZXhO
YW1lcy5sZW5ndGggaXMgMApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVk
ZGIvbW96aWxsYS9jcmVhdGUtb2JqZWN0c3RvcmUtbnVsbC1uYW1lLWV4cGVjdGVkLnR4dCBiL0xh
eW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL21vemlsbGEvY3JlYXRlLW9iamVjdHN0b3JlLW51
bGwtbmFtZS1leHBlY3RlZC50eHQKaW5kZXggMzJjOWQyMGNmN2Y5NDZhODJiNDA3OWM5OTRjZGZi
MjZhMDlmODViNy4uYWRmNzYxYTE1NGM5NGI3YjA2YjdkMDc2YTVkNjJkMjZmZTg1ODQ5ZCAxMDA2
NDQKLS0tIGEvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvbW96aWxsYS9jcmVhdGUtb2Jq
ZWN0c3RvcmUtbnVsbC1uYW1lLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9zdG9yYWdl
L2luZGV4ZWRkYi9tb3ppbGxhL2NyZWF0ZS1vYmplY3RzdG9yZS1udWxsLW5hbWUtZXhwZWN0ZWQu
dHh0CkBAIC01LDEwICs1LDEwIEBAIE9uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBv
ZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFCiAKIGluZGV4ZWRE
QiA9IHNlbGYuaW5kZXhlZERCIHx8IHNlbGYud2Via2l0SW5kZXhlZERCIHx8IHNlbGYubW96SW5k
ZXhlZERCIHx8IHNlbGYubXNJbmRleGVkREIgfHwgc2VsZi5PSW5kZXhlZERCOwogCi1pbmRleGVk
REIub3BlbihuYW1lKQotZGIgPSBldmVudC50YXJnZXQucmVzdWx0Ci1yZXF1ZXN0ID0gZGIuc2V0
VmVyc2lvbignMScpCi1EZWxldGVkIGFsbCBvYmplY3Qgc3RvcmVzLgorZGJuYW1lID0gc2VsZi5s
b2NhdGlvbi5wYXRobmFtZQoraW5kZXhlZERCLmRlbGV0ZURhdGFiYXNlKGRibmFtZSkKK2luZGV4
ZWREQi5vcGVuKGRibmFtZSkKK2RiLnNldFZlcnNpb24oJzEnKQogb2JqZWN0U3RvcmUgPSBkYi5j
cmVhdGVPYmplY3RTdG9yZShudWxsKTsKIFBBU1Mgb2JqZWN0U3RvcmUubmFtZSBpcyAnbnVsbCcK
IFBBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L3N0b3JhZ2UvaW5kZXhlZGRiL21vemlsbGEvY3Vyc29yLW11dGF0aW9uLWV4cGVjdGVkLnR4dCBi
L0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL21vemlsbGEvY3Vyc29yLW11dGF0aW9uLWV4
cGVjdGVkLnR4dAppbmRleCBmYTFhMGNlNTU1NDViYjdmN2U1OTNhMmM5ODg3MzYxZmViNTJlYzdj
Li5mNWY5MGNiZjYyMTI4MmVkMGY2NTI4Yzc2ZjM0YjdhZGVmNjBmOWQ1IDEwMDY0NAotLS0gYS9M
YXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9tb3ppbGxhL2N1cnNvci1tdXRhdGlvbi1leHBl
Y3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvbW96aWxsYS9jdXJz
b3ItbXV0YXRpb24tZXhwZWN0ZWQudHh0CkBAIC01LDE0ICs1LDEyIEBAIE9uIHN1Y2Nlc3MsIHlv
dSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNU
IENPTVBMRVRFCiAKIGluZGV4ZWREQiA9IHNlbGYuaW5kZXhlZERCIHx8IHNlbGYud2Via2l0SW5k
ZXhlZERCIHx8IHNlbGYubW96SW5kZXhlZERCIHx8IHNlbGYubXNJbmRleGVkREIgfHwgc2VsZi5P
SW5kZXhlZERCOwogCi0KLWluZGV4ZWREQi5kZWxldGVEYXRhYmFzZShuYW1lKQotaW5kZXhlZERC
Lm9wZW4obmFtZSkKLWRiID0gZXZlbnQudGFyZ2V0LnJlc3VsdAorZGJuYW1lID0gc2VsZi5sb2Nh
dGlvbi5wYXRobmFtZQoraW5kZXhlZERCLmRlbGV0ZURhdGFiYXNlKGRibmFtZSkKK2luZGV4ZWRE
Qi5vcGVuKGRibmFtZSkKIGRiLnNldFZlcnNpb24oJzEnKQogCiBzZXR1cE9iamVjdFN0b3JlQW5k
Q3JlYXRlSW5kZXgoKToKLXRyYW5zID0gcmVxdWVzdC5yZXN1bHQKIG9iamVjdFN0b3JlID0gZGIu
Y3JlYXRlT2JqZWN0U3RvcmUoJ2ZvbycsIHsga2V5UGF0aDogJ3NzJyB9KQogaW5kZXggPSBvYmpl
Y3RTdG9yZS5jcmVhdGVJbmRleCgnbmFtZScsICduYW1lJywgeyB1bmlxdWU6IHRydWUgfSkKIG9i
amVjdFN0b3JlRGF0YSA9IFsKQEAgLTI4LDcgKzI2LDYgQEAgb2JqZWN0U3RvcmUuYWRkKG9iamVj
dFN0b3JlRGF0YVsxXSkKIG9iamVjdFN0b3JlLmFkZChvYmplY3RTdG9yZURhdGFbMl0pCiBvYmpl
Y3RTdG9yZS5hZGQob2JqZWN0U3RvcmVEYXRhWzNdKQogb2JqZWN0U3RvcmUuYWRkKG9iamVjdFN0
b3JlRGF0YVs0XSkKLXRyYW5zLm9uY29tcGxldGUgPSBjaGVja0N1cnNvclJlc3VsdHMKIAogc2V0
dXBDdXJzb3IoKToKIGNvdW50ID0gMApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvc3RvcmFnZS9p
bmRleGVkZGIvbW96aWxsYS9jdXJzb3ItbXV0YXRpb24tb2JqZWN0c3RvcmUtb25seS1leHBlY3Rl
ZC50eHQgYi9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9tb3ppbGxhL2N1cnNvci1tdXRh
dGlvbi1vYmplY3RzdG9yZS1vbmx5LWV4cGVjdGVkLnR4dAppbmRleCA2OGRlODNmZDI4NzE1NzUw
MjcyMzA2ZTdkM2I4MWYxYmZiODAzYTgwLi42ZTFmY2RjOGZhY2Y5NDAwYzkwZjNkZmVmMmY2MjY5
NDllODMyYjIxIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9tb3pp
bGxhL2N1cnNvci1tdXRhdGlvbi1vYmplY3RzdG9yZS1vbmx5LWV4cGVjdGVkLnR4dAorKysgYi9M
YXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9tb3ppbGxhL2N1cnNvci1tdXRhdGlvbi1vYmpl
Y3RzdG9yZS1vbmx5LWV4cGVjdGVkLnR4dApAQCAtNSwxMiArNSwxMSBAQCBPbiBzdWNjZXNzLCB5
b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVT
VCBDT01QTEVURQogCiBpbmRleGVkREIgPSBzZWxmLmluZGV4ZWREQiB8fCBzZWxmLndlYmtpdElu
ZGV4ZWREQiB8fCBzZWxmLm1vekluZGV4ZWREQiB8fCBzZWxmLm1zSW5kZXhlZERCIHx8IHNlbGYu
T0luZGV4ZWREQjsKIAotaW5kZXhlZERCLm9wZW4obmFtZSkKLW9wZW5TdWNjZXNzKCk6Ci1kYiA9
IGV2ZW50LnRhcmdldC5yZXN1bHQKLXJlcXVlc3QgPSBkYi5zZXRWZXJzaW9uKCcxJykKK2RibmFt
ZSA9IHNlbGYubG9jYXRpb24ucGF0aG5hbWUKK2luZGV4ZWREQi5kZWxldGVEYXRhYmFzZShkYm5h
bWUpCitpbmRleGVkREIub3BlbihkYm5hbWUpCitkYi5zZXRWZXJzaW9uKCcxJykKIHNldHVwT2Jq
ZWN0U3RvcmUoKToKLURlbGV0ZWQgYWxsIG9iamVjdCBzdG9yZXMuCiBvYmplY3RTdG9yZSA9IGRi
LmNyZWF0ZU9iamVjdFN0b3JlKCdmb28nLCB7IGtleVBhdGg6ICdzcycgfSk7CiBvYmplY3RTdG9y
ZURhdGEgPSBbCiAgICAgICAgIHsgc3M6ICcyMzctMjMtNzczMicsIG5hbWU6ICdCb2InIH0sCkBA
IC0zMCwzMyArMjksMjcgQEAgc2F3QWRkZWQgPSBmYWxzZTsKIHNhd1JlbW92ZWQgPSBmYWxzZTsK
IHJlcXVlc3QgPSBvYmplY3RTdG9yZS5vcGVuQ3Vyc29yKCk7CiBpdGVyYXRlQ3Vyc29yKCk6Ci1l
dmVudC50YXJnZXQudHJhbnNhY3Rpb24ub25jb21wbGV0ZSA9IGNoZWNrQ3Vyc29yUmVzdWx0c0Fu
ZFNldHVwTXV0YXRpbmdDdXJzb3I7CiBjdXJzb3IgPSBldmVudC50YXJnZXQucmVzdWx0Owogc2F3
UmVtb3ZlZCA9IHRydWU7CiBjb3VudCsrOwogY3Vyc29yLmNvbnRpbnVlKCk7CiBpdGVyYXRlQ3Vy
c29yKCk6Ci1ldmVudC50YXJnZXQudHJhbnNhY3Rpb24ub25jb21wbGV0ZSA9IGNoZWNrQ3Vyc29y
UmVzdWx0c0FuZFNldHVwTXV0YXRpbmdDdXJzb3I7CiBjdXJzb3IgPSBldmVudC50YXJnZXQucmVz
dWx0OwogY291bnQrKzsKIGN1cnNvci5jb250aW51ZSgpOwogaXRlcmF0ZUN1cnNvcigpOgotZXZl
bnQudGFyZ2V0LnRyYW5zYWN0aW9uLm9uY29tcGxldGUgPSBjaGVja0N1cnNvclJlc3VsdHNBbmRT
ZXR1cE11dGF0aW5nQ3Vyc29yOwogY3Vyc29yID0gZXZlbnQudGFyZ2V0LnJlc3VsdDsKIGNvdW50
Kys7CiBjdXJzb3IuY29udGludWUoKTsKIGl0ZXJhdGVDdXJzb3IoKToKLWV2ZW50LnRhcmdldC50
cmFuc2FjdGlvbi5vbmNvbXBsZXRlID0gY2hlY2tDdXJzb3JSZXN1bHRzQW5kU2V0dXBNdXRhdGlu
Z0N1cnNvcjsKIGN1cnNvciA9IGV2ZW50LnRhcmdldC5yZXN1bHQ7CiBjb3VudCsrOwogY3Vyc29y
LmNvbnRpbnVlKCk7CiBpdGVyYXRlQ3Vyc29yKCk6Ci1ldmVudC50YXJnZXQudHJhbnNhY3Rpb24u
b25jb21wbGV0ZSA9IGNoZWNrQ3Vyc29yUmVzdWx0c0FuZFNldHVwTXV0YXRpbmdDdXJzb3I7CiBj
dXJzb3IgPSBldmVudC50YXJnZXQucmVzdWx0OwogY291bnQrKzsKIGN1cnNvci5jb250aW51ZSgp
OwogaXRlcmF0ZUN1cnNvcigpOgotZXZlbnQudGFyZ2V0LnRyYW5zYWN0aW9uLm9uY29tcGxldGUg
PSBjaGVja0N1cnNvclJlc3VsdHNBbmRTZXR1cE11dGF0aW5nQ3Vyc29yOwogY3Vyc29yID0gZXZl
bnQudGFyZ2V0LnJlc3VsdDsKIGNoZWNrQ3Vyc29yUmVzdWx0c0FuZFNldHVwTXV0YXRpbmdDdXJz
b3IoKToKIFBBU1MgY291bnQgaXMgb2JqZWN0U3RvcmVEYXRhLmxlbmd0aCAtIDEKZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL21vemlsbGEvY3Vyc29ycy1leHBlY3Rl
ZC50eHQgYi9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9tb3ppbGxhL2N1cnNvcnMtZXhw
ZWN0ZWQudHh0CmluZGV4IDJiODNmYWM2MTYwNDg1ZGE0ZjhhNzBjMTM1ZmZhYjZiMGUwM2U1MTku
LmRlZGNmYzAxODExYjgzNjg1MzVlYWNlMTIwOTU4YTJiN2I5N2Y4MWEgMTAwNjQ0Ci0tLSBhL0xh
eW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL21vemlsbGEvY3Vyc29ycy1leHBlY3RlZC50eHQK
KysrIGIvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvbW96aWxsYS9jdXJzb3JzLWV4cGVj
dGVkLnR4dApAQCAtNSwxMCArNSwxMCBAQCBPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJp
ZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURQogCiBpbmRl
eGVkREIgPSBzZWxmLmluZGV4ZWREQiB8fCBzZWxmLndlYmtpdEluZGV4ZWREQiB8fCBzZWxmLm1v
ekluZGV4ZWREQiB8fCBzZWxmLm1zSW5kZXhlZERCIHx8IHNlbGYuT0luZGV4ZWREQjsKIAotaW5k
ZXhlZERCLm9wZW4obmFtZSkKLWRiID0gZXZlbnQudGFyZ2V0LnJlc3VsdAotcmVxdWVzdCA9IGRi
LnNldFZlcnNpb24oJzEnKQotRGVsZXRlZCBhbGwgb2JqZWN0IHN0b3Jlcy4KK2RibmFtZSA9IHNl
bGYubG9jYXRpb24ucGF0aG5hbWUKK2luZGV4ZWREQi5kZWxldGVEYXRhYmFzZShkYm5hbWUpCitp
bmRleGVkREIub3BlbihkYm5hbWUpCitkYi5zZXRWZXJzaW9uKCcxJykKIGRiLmNyZWF0ZU9iamVj
dFN0b3JlKCdhdXRvSW5jcmVtZW50JywgeyBhdXRvSW5jcmVtZW50OiB0cnVlIH0pOwogcmVxdWVz
dCA9IG9iamVjdFN0b3JlLm9wZW5DdXJzb3IoKTsKIFBBU1MgZXZlbnQudGFyZ2V0LnJlc3VsdCBp
cyBudWxsCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9tb3ppbGxh
L2RlbGV0ZS1yZXN1bHQtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVk
ZGIvbW96aWxsYS9kZWxldGUtcmVzdWx0LWV4cGVjdGVkLnR4dAppbmRleCBmYzFhMzM2ZWZhMDky
N2IyNzY4ZDQzMWNiOGI1MDM0MTk0NWUyNjlhLi4zMDRiODAwYzMzZWUzMzJjNzRjNzY3YzQ5OTQz
NTMwMDVhNDlhMTMyIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9t
b3ppbGxhL2RlbGV0ZS1yZXN1bHQtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL3N0b3Jh
Z2UvaW5kZXhlZGRiL21vemlsbGEvZGVsZXRlLXJlc3VsdC1leHBlY3RlZC50eHQKQEAgLTUsMTAg
KzUsMTAgQEAgT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNz
YWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUKIAogaW5kZXhlZERCID0gc2VsZi5pbmRl
eGVkREIgfHwgc2VsZi53ZWJraXRJbmRleGVkREIgfHwgc2VsZi5tb3pJbmRleGVkREIgfHwgc2Vs
Zi5tc0luZGV4ZWREQiB8fCBzZWxmLk9JbmRleGVkREI7CiAKLWluZGV4ZWREQi5vcGVuKG5hbWUp
Ci1kYiA9IGV2ZW50LnRhcmdldC5yZXN1bHQKLXJlcXVlc3QgPSBkYi5zZXRWZXJzaW9uKCcxJykK
LURlbGV0ZWQgYWxsIG9iamVjdCBzdG9yZXMuCitkYm5hbWUgPSBzZWxmLmxvY2F0aW9uLnBhdGhu
YW1lCitpbmRleGVkREIuZGVsZXRlRGF0YWJhc2UoZGJuYW1lKQoraW5kZXhlZERCLm9wZW4oZGJu
YW1lKQorZGIuc2V0VmVyc2lvbignMScpCiBvYmplY3RTdG9yZSA9IGRiLmNyZWF0ZU9iamVjdFN0
b3JlKCdmb28nLCB7IGtleVBhdGg6ICdpZCcsIGF1dG9JbmNyZW1lbnQ6IHRydWUgfSk7CiByZXF1
ZXN0ID0gb2JqZWN0U3RvcmUuYWRkKHt9KTsKIGlkID0gZXZlbnQudGFyZ2V0LnJlc3VsdDsKZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL21vemlsbGEvZXZlbnQtc291
cmNlLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL21vemlsbGEv
ZXZlbnQtc291cmNlLWV4cGVjdGVkLnR4dAppbmRleCA5Y2YzNWUwYzVlNGE0ZTQ4ZDMzODFlOGFi
MGRlODA2Mzc2YjhkMzVmLi41MDkxZmQyNzljODFmZDQyNjJjZTZkODE3MzdjMWVjNTdiZDZhOTdk
IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9tb3ppbGxhL2V2ZW50
LXNvdXJjZS1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIv
bW96aWxsYS9ldmVudC1zb3VyY2UtZXhwZWN0ZWQudHh0CkBAIC01LDE0ICs1LDEyIEBAIE9uIHN1
Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2Vk
IGJ5ICJURVNUIENPTVBMRVRFCiAKIGluZGV4ZWREQiA9IHNlbGYuaW5kZXhlZERCIHx8IHNlbGYu
d2Via2l0SW5kZXhlZERCIHx8IHNlbGYubW96SW5kZXhlZERCIHx8IHNlbGYubXNJbmRleGVkREIg
fHwgc2VsZi5PSW5kZXhlZERCOwogCi1pbmRleGVkREIub3BlbihuYW1lKQotc291cmNlID0gZXZl
bnQudGFyZ2V0LnNvdXJjZTsKLVBBU1Mgc291cmNlIGlzIGluZGV4ZWREQgotZGIgPSBldmVudC50
YXJnZXQucmVzdWx0Ci1yZXF1ZXN0ID0gZGIuc2V0VmVyc2lvbignMScpCitkYm5hbWUgPSBzZWxm
LmxvY2F0aW9uLnBhdGhuYW1lCitpbmRleGVkREIuZGVsZXRlRGF0YWJhc2UoZGJuYW1lKQoraW5k
ZXhlZERCLm9wZW4oZGJuYW1lKQorZGIuc2V0VmVyc2lvbignMScpCiBzb3VyY2UgPSBldmVudC50
YXJnZXQuc291cmNlOwogUEFTUyBzb3VyY2UgaXMgZGIKLURlbGV0ZWQgYWxsIG9iamVjdCBzdG9y
ZXMuCiBvYmplY3RTdG9yZSA9IGRiLmNyZWF0ZU9iamVjdFN0b3JlKG9iamVjdFN0b3JlTmFtZSwg
eyBhdXRvSW5jcmVtZW50OiB0cnVlIH0pOwogcmVxdWVzdCA9IG9iamVjdFN0b3JlLmFkZCh7fSk7
CiBzb3VyY2UgPSBldmVudC50YXJnZXQuc291cmNlOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
c3RvcmFnZS9pbmRleGVkZGIvbW96aWxsYS9pbmRleGVzLWV4cGVjdGVkLnR4dCBiL0xheW91dFRl
c3RzL3N0b3JhZ2UvaW5kZXhlZGRiL21vemlsbGEvaW5kZXhlcy1leHBlY3RlZC50eHQKaW5kZXgg
YjA4Y2IwNGM1ZDZkYzIyMzk5OTM5MDNlOTljMGExY2RhMTFkNDk3OC4uYjc3Y2FlODcyYjY4YWEw
MTQwNGI5N2U1NDRkYWE1OGNhOThiM2JkMiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvc3RvcmFn
ZS9pbmRleGVkZGIvbW96aWxsYS9pbmRleGVzLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0
cy9zdG9yYWdlL2luZGV4ZWRkYi9tb3ppbGxhL2luZGV4ZXMtZXhwZWN0ZWQudHh0CkBAIC01LDEx
ICs1LDEwIEBAIE9uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVz
c2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFCiAKIGluZGV4ZWREQiA9IHNlbGYuaW5k
ZXhlZERCIHx8IHNlbGYud2Via2l0SW5kZXhlZERCIHx8IHNlbGYubW96SW5kZXhlZERCIHx8IHNl
bGYubXNJbmRleGVkREIgfHwgc2VsZi5PSW5kZXhlZERCOwogCi1pbmRleGVkREIub3BlbihuYW1l
KQotb3BlblN1Y2Nlc3MoKToKLWRiID0gZXZlbnQudGFyZ2V0LnJlc3VsdAotcmVxdWVzdCA9IGRi
LnNldFZlcnNpb24oJzEnKQotRGVsZXRlZCBhbGwgb2JqZWN0IHN0b3Jlcy4KK2RibmFtZSA9IHNl
bGYubG9jYXRpb24ucGF0aG5hbWUKK2luZGV4ZWREQi5kZWxldGVEYXRhYmFzZShkYm5hbWUpCitp
bmRleGVkREIub3BlbihkYm5hbWUpCitkYi5zZXRWZXJzaW9uKCcxJykKIG9iamVjdFN0b3JlID0g
ZGIuY3JlYXRlT2JqZWN0U3RvcmUob2JqZWN0U3RvcmVOYW1lKTsKIEZpcnN0LCBhZGQgYWxsIG91
ciBkYXRhIHRvIHRoZSBvYmplY3Qgc3RvcmUuCiByZXF1ZXN0ID0gb2JqZWN0U3RvcmUuYWRkKG9i
amVjdFN0b3JlRGF0YVtpXS52YWx1ZSwgb2JqZWN0U3RvcmVEYXRhW2ldLmtleSk7CmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9tb3ppbGxhL2tleS1yZXF1aXJlbWVu
dHMtZGVsZXRlLW51bGwta2V5LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5k
ZXhlZGRiL21vemlsbGEva2V5LXJlcXVpcmVtZW50cy1kZWxldGUtbnVsbC1rZXktZXhwZWN0ZWQu
dHh0CmluZGV4IDFiMjBjMGVkN2VkZWE2ZTEyZDRmOThiYzQxOGE4YmNlMjlkNWZkZDQuLjZmMDYw
YmQxYTZjNTczZjJhN2RkNWRkYzJlNDhkZTY0YmVjYzYzMTkgMTAwNjQ0Ci0tLSBhL0xheW91dFRl
c3RzL3N0b3JhZ2UvaW5kZXhlZGRiL21vemlsbGEva2V5LXJlcXVpcmVtZW50cy1kZWxldGUtbnVs
bC1rZXktZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL21v
emlsbGEva2V5LXJlcXVpcmVtZW50cy1kZWxldGUtbnVsbC1rZXktZXhwZWN0ZWQudHh0CkBAIC01
LDEwICs1LDEwIEBAIE9uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIg
bWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFCiAKIGluZGV4ZWREQiA9IHNlbGYu
aW5kZXhlZERCIHx8IHNlbGYud2Via2l0SW5kZXhlZERCIHx8IHNlbGYubW96SW5kZXhlZERCIHx8
IHNlbGYubXNJbmRleGVkREIgfHwgc2VsZi5PSW5kZXhlZERCOwogCi1pbmRleGVkREIub3Blbihu
YW1lKQotZGIgPSBldmVudC50YXJnZXQucmVzdWx0Ci1yZXF1ZXN0ID0gZGIuc2V0VmVyc2lvbign
dmVyc2lvbiAxJykKLURlbGV0ZWQgYWxsIG9iamVjdCBzdG9yZXMuCitkYm5hbWUgPSBzZWxmLmxv
Y2F0aW9uLnBhdGhuYW1lCitpbmRleGVkREIuZGVsZXRlRGF0YWJhc2UoZGJuYW1lKQoraW5kZXhl
ZERCLm9wZW4oZGJuYW1lKQorZGIuc2V0VmVyc2lvbignMScpCiBvYmplY3RTdG9yZSA9IGRiLmNy
ZWF0ZU9iamVjdFN0b3JlKCdiYXInKTsKIEV4cGVjdGluZyBleGNlcHRpb24gZnJvbSBvYmplY3RT
dG9yZS5kZWxldGUobnVsbCk7CiBQQVNTIEV4Y2VwdGlvbiB3YXMgdGhyb3duLgpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvbW96aWxsYS9rZXktcmVxdWlyZW1lbnRz
LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL21vemlsbGEva2V5
LXJlcXVpcmVtZW50cy1leHBlY3RlZC50eHQKaW5kZXggMzY0NTY5MGIzM2FiNWUwNzY5NDY2MGMx
ZTkwMTU1ZWYyZGRmYmZkNC4uNjJjODg3ZDQ2NTI2MDM3YWNjYzAzMDVjN2FhMTA0YzcwMjg0MGI3
MyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvbW96aWxsYS9rZXkt
cmVxdWlyZW1lbnRzLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4
ZWRkYi9tb3ppbGxhL2tleS1yZXF1aXJlbWVudHMtZXhwZWN0ZWQudHh0CkBAIC01LDEwICs1LDEw
IEBAIE9uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMs
IGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFCiAKIGluZGV4ZWREQiA9IHNlbGYuaW5kZXhlZERC
IHx8IHNlbGYud2Via2l0SW5kZXhlZERCIHx8IHNlbGYubW96SW5kZXhlZERCIHx8IHNlbGYubXNJ
bmRleGVkREIgfHwgc2VsZi5PSW5kZXhlZERCOwogCi1pbmRleGVkREIub3BlbihuYW1lKQotZGIg
PSBldmVudC50YXJnZXQucmVzdWx0Ci1yZXF1ZXN0ID0gZGIuc2V0VmVyc2lvbignMScpCi1EZWxl
dGVkIGFsbCBvYmplY3Qgc3RvcmVzLgorZGJuYW1lID0gc2VsZi5sb2NhdGlvbi5wYXRobmFtZQor
aW5kZXhlZERCLmRlbGV0ZURhdGFiYXNlKGRibmFtZSkKK2luZGV4ZWREQi5vcGVuKGRibmFtZSkK
K2RiLnNldFZlcnNpb24oJzEnKQogb2JqZWN0U3RvcmUgPSBkYi5jcmVhdGVPYmplY3RTdG9yZSgn
Zm9vJywgeyBhdXRvSW5jcmVtZW50OiB0cnVlIH0pOwogcmVxdWVzdCA9IG9iamVjdFN0b3JlLmFk
ZCh7fSk7CiBrZXkxID0gZXZlbnQudGFyZ2V0LnJlc3VsdDsKZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL3N0b3JhZ2UvaW5kZXhlZGRiL21vemlsbGEva2V5LXJlcXVpcmVtZW50cy1pbmxpbmUtYW5k
LXBhc3NlZC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9tb3pp
bGxhL2tleS1yZXF1aXJlbWVudHMtaW5saW5lLWFuZC1wYXNzZWQtZXhwZWN0ZWQudHh0CmluZGV4
IDU1MmFkMGMzZmEwZDAwZTA2ZTg2MzViN2UzM2FhY2NiZmQ2YWQwNmQuLmZiODdmZTA2OGFmMDVk
MmQyM2Y5NzlmMThmYTYzMTg3ODA2NWJhMTEgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3N0b3Jh
Z2UvaW5kZXhlZGRiL21vemlsbGEva2V5LXJlcXVpcmVtZW50cy1pbmxpbmUtYW5kLXBhc3NlZC1l
eHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvbW96aWxsYS9r
ZXktcmVxdWlyZW1lbnRzLWlubGluZS1hbmQtcGFzc2VkLWV4cGVjdGVkLnR4dApAQCAtNSwxMiAr
NSwxMSBAQCBPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3Nh
Z2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURQogCiBpbmRleGVkREIgPSBzZWxmLmluZGV4
ZWREQiB8fCBzZWxmLndlYmtpdEluZGV4ZWREQiB8fCBzZWxmLm1vekluZGV4ZWREQiB8fCBzZWxm
Lm1zSW5kZXhlZERCIHx8IHNlbGYuT0luZGV4ZWREQjsKIAotaW5kZXhlZERCLm9wZW4obmFtZSkK
LW9wZW5TdWNjZXNzKCk6Ci1kYiA9IGV2ZW50LnRhcmdldC5yZXN1bHQKLXJlcXVlc3QgPSBkYi5z
ZXRWZXJzaW9uKCd2ZXJzaW9uIDEnKQorZGJuYW1lID0gc2VsZi5sb2NhdGlvbi5wYXRobmFtZQor
aW5kZXhlZERCLmRlbGV0ZURhdGFiYXNlKGRibmFtZSkKK2luZGV4ZWREQi5vcGVuKGRibmFtZSkK
K2RiLnNldFZlcnNpb24oJzEnKQogY2xlYW5EYXRhYmFzZSgpOgotRGVsZXRlZCBhbGwgb2JqZWN0
IHN0b3Jlcy4KIG9iamVjdFN0b3JlID0gZGIuY3JlYXRlT2JqZWN0U3RvcmUoJ2JheicsIHsga2V5
UGF0aDogJ2lkJyB9KTsKIEV4cGVjdGluZyBleGNlcHRpb24gZnJvbSBvYmplY3RTdG9yZS5hZGQo
e2lkOiA1fSwgNSk7CiBQQVNTIEV4Y2VwdGlvbiB3YXMgdGhyb3duLgpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvbW96aWxsYS9rZXktcmVxdWlyZW1lbnRzLXB1dC1u
by1rZXktZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvbW96aWxs
YS9rZXktcmVxdWlyZW1lbnRzLXB1dC1uby1rZXktZXhwZWN0ZWQudHh0CmluZGV4IDQyNmYzY2Y4
YjVmYTk0NWM3M2ZmMjY5YzJhMTJjM2JiOTk2NzRjYzIuLmZlZGQ3MmEyYmZjMWEzZGQ3NmRjM2Vk
YTgyYzE5ZmVmOGNhMTRkOWQgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhl
ZGRiL21vemlsbGEva2V5LXJlcXVpcmVtZW50cy1wdXQtbm8ta2V5LWV4cGVjdGVkLnR4dAorKysg
Yi9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9tb3ppbGxhL2tleS1yZXF1aXJlbWVudHMt
cHV0LW5vLWtleS1leHBlY3RlZC50eHQKQEAgLTUsMTAgKzUsMTAgQEAgT24gc3VjY2VzcywgeW91
IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1Qg
Q09NUExFVEUKIAogaW5kZXhlZERCID0gc2VsZi5pbmRleGVkREIgfHwgc2VsZi53ZWJraXRJbmRl
eGVkREIgfHwgc2VsZi5tb3pJbmRleGVkREIgfHwgc2VsZi5tc0luZGV4ZWREQiB8fCBzZWxmLk9J
bmRleGVkREI7CiAKLWluZGV4ZWREQi5vcGVuKG5hbWUpCi1kYiA9IGV2ZW50LnRhcmdldC5yZXN1
bHQKLXJlcXVlc3QgPSBkYi5zZXRWZXJzaW9uKCcxJykKLURlbGV0ZWQgYWxsIG9iamVjdCBzdG9y
ZXMuCitkYm5hbWUgPSBzZWxmLmxvY2F0aW9uLnBhdGhuYW1lCitpbmRleGVkREIuZGVsZXRlRGF0
YWJhc2UoZGJuYW1lKQoraW5kZXhlZERCLm9wZW4oZGJuYW1lKQorZGIuc2V0VmVyc2lvbignMScp
CiBvYmplY3RTdG9yZSA9IGRiLmNyZWF0ZU9iamVjdFN0b3JlKCdiYXInKTsKIEV4cGVjdGluZyBl
eGNlcHRpb24gZnJvbSBvYmplY3RTdG9yZS5wdXQoe30pOwogUEFTUyBFeGNlcHRpb24gd2FzIHRo
cm93bi4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL21vemlsbGEv
a2V5LXJlcXVpcmVtZW50cy1wdXQtbnVsbC1rZXktZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMv
c3RvcmFnZS9pbmRleGVkZGIvbW96aWxsYS9rZXktcmVxdWlyZW1lbnRzLXB1dC1udWxsLWtleS1l
eHBlY3RlZC50eHQKaW5kZXggYmViMmVkY2Q4ODRlMjc5ZjVjNDc3NGVhZWQ0M2MzNzE2Njc4Yjg2
OC4uZDQ1NjE0ZTc5ZWE4NGU3ZjA3ZWU1Y2U4ZDk2ZmI3ZmYxM2JlNDkyYSAxMDA2NDQKLS0tIGEv
TGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvbW96aWxsYS9rZXktcmVxdWlyZW1lbnRzLXB1
dC1udWxsLWtleS1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVk
ZGIvbW96aWxsYS9rZXktcmVxdWlyZW1lbnRzLXB1dC1udWxsLWtleS1leHBlY3RlZC50eHQKQEAg
LTUsMTAgKzUsMTAgQEAgT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNT
IiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUKIAogaW5kZXhlZERCID0gc2Vs
Zi5pbmRleGVkREIgfHwgc2VsZi53ZWJraXRJbmRleGVkREIgfHwgc2VsZi5tb3pJbmRleGVkREIg
fHwgc2VsZi5tc0luZGV4ZWREQiB8fCBzZWxmLk9JbmRleGVkREI7CiAKLWluZGV4ZWREQi5vcGVu
KG5hbWUpCi1kYiA9IGV2ZW50LnRhcmdldC5yZXN1bHQKLXJlcXVlc3QgPSBkYi5zZXRWZXJzaW9u
KCcxJykKLURlbGV0ZWQgYWxsIG9iamVjdCBzdG9yZXMuCitkYm5hbWUgPSBzZWxmLmxvY2F0aW9u
LnBhdGhuYW1lCitpbmRleGVkREIuZGVsZXRlRGF0YWJhc2UoZGJuYW1lKQoraW5kZXhlZERCLm9w
ZW4oZGJuYW1lKQorZGIuc2V0VmVyc2lvbignMScpCiBvYmplY3RTdG9yZSA9IGRiLmNyZWF0ZU9i
amVjdFN0b3JlKCdiYXInKTsKIEV4cGVjdGluZyBleGNlcHRpb24gZnJvbSBvYmplY3RTdG9yZS5w
dXQoe30sIG51bGwpOwogUEFTUyBFeGNlcHRpb24gd2FzIHRocm93bi4KZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL21vemlsbGEvb2JqZWN0LWN1cnNvcnMtZXhwZWN0
ZWQudHh0IGIvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvbW96aWxsYS9vYmplY3QtY3Vy
c29ycy1leHBlY3RlZC50eHQKaW5kZXggYzRlNmM2ZDQyYTZiZDEyY2MyMjViZmIyN2M2MWIwZmFm
MjU3NDQzZi4uNGY1MGRmNzM4M2Q1ZTQxNzE2MTA4YWQ3MjI3YTUyMGMxMzY0ZTY1OCAxMDA2NDQK
LS0tIGEvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvbW96aWxsYS9vYmplY3QtY3Vyc29y
cy1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvbW96aWxs
YS9vYmplY3QtY3Vyc29ycy1leHBlY3RlZC50eHQKQEAgLTUsMTAgKzUsMTAgQEAgT24gc3VjY2Vz
cywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkg
IlRFU1QgQ09NUExFVEUKIAogaW5kZXhlZERCID0gc2VsZi5pbmRleGVkREIgfHwgc2VsZi53ZWJr
aXRJbmRleGVkREIgfHwgc2VsZi5tb3pJbmRleGVkREIgfHwgc2VsZi5tc0luZGV4ZWREQiB8fCBz
ZWxmLk9JbmRleGVkREI7CiAKLWluZGV4ZWREQi5vcGVuKG5hbWUpCi1kYiA9IGV2ZW50LnRhcmdl
dC5yZXN1bHQKLXJlcXVlc3QgPSBkYi5zZXRWZXJzaW9uKCcxJykKLURlbGV0ZWQgYWxsIG9iamVj
dCBzdG9yZXMuCitkYm5hbWUgPSBzZWxmLmxvY2F0aW9uLnBhdGhuYW1lCitpbmRleGVkREIuZGVs
ZXRlRGF0YWJhc2UoZGJuYW1lKQoraW5kZXhlZERCLm9wZW4oZGJuYW1lKQorZGIuc2V0VmVyc2lv
bignMScpCiBhdXRvSW5jcmVtZW50ID0gZmFsc2U7CiBvYmplY3RTdG9yZSA9IGRiLmNyZWF0ZU9i
amVjdFN0b3JlKCdhJywgeyBrZXlQYXRoOiAnaWQnLCBhdXRvSW5jcmVtZW50OiBhdXRvSW5jcmVt
ZW50IH0pOwogb2JqZWN0U3RvcmUuY3JlYXRlSW5kZXgoaW5kZXhlc1tqXS5uYW1lLCAnbmFtZScs
IGluZGV4ZXNbal0ub3B0aW9ucyk7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9zdG9yYWdlL2lu
ZGV4ZWRkYi9tb3ppbGxhL29iamVjdC1pZGVudGl0eS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0
cy9zdG9yYWdlL2luZGV4ZWRkYi9tb3ppbGxhL29iamVjdC1pZGVudGl0eS1leHBlY3RlZC50eHQK
aW5kZXggNDc2ZmJlYzY1MDU5NGY3MzJjNDQ0OGEyNmE3M2I4MzZlNTVhYThkZi4uN2ZmMTExOWYy
NjIxY2YwYzVkMTM2OTlhNDE5YWU1MTVlZjAzNWVmZSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMv
c3RvcmFnZS9pbmRleGVkZGIvbW96aWxsYS9vYmplY3QtaWRlbnRpdHktZXhwZWN0ZWQudHh0Cisr
KyBiL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL21vemlsbGEvb2JqZWN0LWlkZW50aXR5
LWV4cGVjdGVkLnR4dApAQCAtNSwxOCArNSwxNiBAQCBPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUg
YSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURQog
CiBpbmRleGVkREIgPSBzZWxmLmluZGV4ZWREQiB8fCBzZWxmLndlYmtpdEluZGV4ZWREQiB8fCBz
ZWxmLm1vekluZGV4ZWREQiB8fCBzZWxmLm1zSW5kZXhlZERCIHx8IHNlbGYuT0luZGV4ZWREQjsK
IAotaW5kZXhlZERCLm9wZW4obmFtZSkKLWRiID0gZXZlbnQudGFyZ2V0LnJlc3VsdAotcmVxdWVz
dCA9IGRiLnNldFZlcnNpb24oJzEnKQotdHJhbnNhY3Rpb24gPSBldmVudC50YXJnZXQudHJhbnNh
Y3Rpb247Ci1EZWxldGVkIGFsbCBvYmplY3Qgc3RvcmVzLgorZGJuYW1lID0gc2VsZi5sb2NhdGlv
bi5wYXRobmFtZQoraW5kZXhlZERCLmRlbGV0ZURhdGFiYXNlKGRibmFtZSkKK2luZGV4ZWREQi5v
cGVuKGRibmFtZSkKK2RiLnNldFZlcnNpb24oJzEnKQogb2JqZWN0U3RvcmUxID0gZGIuY3JlYXRl
T2JqZWN0U3RvcmUoJ2ZvbycpOwotb2JqZWN0U3RvcmUyID0gdHJhbnNhY3Rpb24ub2JqZWN0U3Rv
cmUoJ2ZvbycpOworb2JqZWN0U3RvcmUyID0gdHJhbnMub2JqZWN0U3RvcmUoJ2ZvbycpOwogUEFT
UyBvYmplY3RTdG9yZTEgPT09IG9iamVjdFN0b3JlMiBpcyB0cnVlCiBpbmRleDEgPSBvYmplY3RT
dG9yZTEuY3JlYXRlSW5kZXgoJ2JhcicsICdrZXknKTsKIGluZGV4MiA9IG9iamVjdFN0b3JlMi5p
bmRleCgnYmFyJyk7CiBQQVNTIGluZGV4MSA9PT0gaW5kZXgyIGlzIHRydWUKLXRyYW5zYWN0aW9u
Lm9uY29tcGxldGUgPSB0ZXN0SWRlbnRpdHlTb21lTW9yZTsKIHRyYW5zYWN0aW9uID0gZGIudHJh
bnNhY3Rpb24oJ2ZvbycpOwogb2JqZWN0U3RvcmUzID0gdHJhbnNhY3Rpb24ub2JqZWN0U3RvcmUo
J2ZvbycpOwogb2JqZWN0U3RvcmU0ID0gdHJhbnNhY3Rpb24ub2JqZWN0U3RvcmUoJ2ZvbycpOwpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvbW96aWxsYS9vYmplY3Qt
c3RvcmUtaW5saW5lLWF1dG9pbmNyZW1lbnQta2V5LWFkZGVkLW9uLXB1dC1leHBlY3RlZC50eHQg
Yi9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9tb3ppbGxhL29iamVjdC1zdG9yZS1pbmxp
bmUtYXV0b2luY3JlbWVudC1rZXktYWRkZWQtb24tcHV0LWV4cGVjdGVkLnR4dAppbmRleCA1YWMx
NmNkZTYwNzY5NjdmMWI1N2MxNjljM2IyN2YwNmM0NmIyMzgyLi43YTMyODc4YjY0MTg1MGVhMzNk
M2E3YTM2ZGI3NTEwMWFjMzFiOGVhIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9zdG9yYWdlL2lu
ZGV4ZWRkYi9tb3ppbGxhL29iamVjdC1zdG9yZS1pbmxpbmUtYXV0b2luY3JlbWVudC1rZXktYWRk
ZWQtb24tcHV0LWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRk
Yi9tb3ppbGxhL29iamVjdC1zdG9yZS1pbmxpbmUtYXV0b2luY3JlbWVudC1rZXktYWRkZWQtb24t
cHV0LWV4cGVjdGVkLnR4dApAQCAtNSwxMCArNSwxMCBAQCBPbiBzdWNjZXNzLCB5b3Ugd2lsbCBz
ZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVU
RQogCiBpbmRleGVkREIgPSBzZWxmLmluZGV4ZWREQiB8fCBzZWxmLndlYmtpdEluZGV4ZWREQiB8
fCBzZWxmLm1vekluZGV4ZWREQiB8fCBzZWxmLm1zSW5kZXhlZERCIHx8IHNlbGYuT0luZGV4ZWRE
QjsKIAotaW5kZXhlZERCLm9wZW4obmFtZSkKLWRiID0gZXZlbnQudGFyZ2V0LnJlc3VsdAotcmVx
dWVzdCA9IGRiLnNldFZlcnNpb24oJzEnKQotRGVsZXRlZCBhbGwgb2JqZWN0IHN0b3Jlcy4KK2Ri
bmFtZSA9IHNlbGYubG9jYXRpb24ucGF0aG5hbWUKK2luZGV4ZWREQi5kZWxldGVEYXRhYmFzZShk
Ym5hbWUpCitpbmRleGVkREIub3BlbihkYm5hbWUpCitkYi5zZXRWZXJzaW9uKCcxJykKIHRlc3Qg
PSB7CiAgICAgICAgIG5hbWU6ICdpbmxpbmUga2V5OyBrZXkgZ2VuZXJhdG9yJywKICAgICAgICAg
YXV0b0luY3JlbWVudDogdHJ1ZSwKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5k
ZXhlZGRiL21vemlsbGEvb2JqZWN0c3RvcmVuYW1lcy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0
cy9zdG9yYWdlL2luZGV4ZWRkYi9tb3ppbGxhL29iamVjdHN0b3JlbmFtZXMtZXhwZWN0ZWQudHh0
CmluZGV4IGE0MDNkYmM0ZmQxM2EyYTFhMTlmMDYzYmZjMjE3MDIyZjhlNjdjZDEuLjJlZTczODFm
OTRkMzI5ZGQ5ZGU1MDkwYTM2ZWY4Mzk4MGI5OWFkZDYgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3Rz
L3N0b3JhZ2UvaW5kZXhlZGRiL21vemlsbGEvb2JqZWN0c3RvcmVuYW1lcy1leHBlY3RlZC50eHQK
KysrIGIvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvbW96aWxsYS9vYmplY3RzdG9yZW5h
bWVzLWV4cGVjdGVkLnR4dApAQCAtNSw5ICs1LDEwIEBAIE9uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNl
ZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRF
CiAKIGluZGV4ZWREQiA9IHNlbGYuaW5kZXhlZERCIHx8IHNlbGYud2Via2l0SW5kZXhlZERCIHx8
IHNlbGYubW96SW5kZXhlZERCIHx8IHNlbGYubXNJbmRleGVkREIgfHwgc2VsZi5PSW5kZXhlZERC
OwogCi1pbmRleGVkREIub3BlbihuYW1lKQotZGIgPSBldmVudC50YXJnZXQucmVzdWx0Ci1yZXF1
ZXN0ID0gZGIuc2V0VmVyc2lvbignMScpCitkYm5hbWUgPSBzZWxmLmxvY2F0aW9uLnBhdGhuYW1l
CitpbmRleGVkREIuZGVsZXRlRGF0YWJhc2UoZGJuYW1lKQoraW5kZXhlZERCLm9wZW4oZGJuYW1l
KQorZGIuc2V0VmVyc2lvbignMScpCiBEZWxldGVkIGFsbCBvYmplY3Qgc3RvcmVzLgogb2JqZWN0
U3RvcmUgPSBkYi5jcmVhdGVPYmplY3RTdG9yZShvYmplY3RTdG9yZU5hbWUsIHsga2V5UGF0aDog
J2lkJywgYXV0b0luY3JlbWVudDogdHJ1ZSB9KTsKIFBBU1MgJ29iamVjdFN0b3JlTmFtZXMnIGlu
IGRiIGlzIHRydWUKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL21v
emlsbGEvb2RkLXJlc3VsdC1vcmRlci1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9zdG9yYWdl
L2luZGV4ZWRkYi9tb3ppbGxhL29kZC1yZXN1bHQtb3JkZXItZXhwZWN0ZWQudHh0CmluZGV4IGZh
YTlmODA1MDI1ODEwMDE4MWRlYWZmMTQwYzcxMWQ1ZjZkNTMxM2UuLjlkZDkxYWY2MDQxNjU0MWRj
YzBhNjhlYzgwYzJkOTdhYjIyZGM3ZmIgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3N0b3JhZ2Uv
aW5kZXhlZGRiL21vemlsbGEvb2RkLXJlc3VsdC1vcmRlci1leHBlY3RlZC50eHQKKysrIGIvTGF5
b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvbW96aWxsYS9vZGQtcmVzdWx0LW9yZGVyLWV4cGVj
dGVkLnR4dApAQCAtNSwxOCArNSwxNCBAQCBPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJp
ZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURQogCiBpbmRl
eGVkREIgPSBzZWxmLmluZGV4ZWREQiB8fCBzZWxmLndlYmtpdEluZGV4ZWREQiB8fCBzZWxmLm1v
ekluZGV4ZWREQiB8fCBzZWxmLm1zSW5kZXhlZERCIHx8IHNlbGYuT0luZGV4ZWREQjsKIAotaW5k
ZXhlZERCLm9wZW4obmFtZSkKLW9wZW5TdWNjZXNzKCk6Ci1kYiA9IG51bGw7Ci1kYiA9IHJlcXVl
c3QucmVzdWx0OwotY2hlY2tEYXRhYmFzZVR5cGUoKToKLVBBU1MgZGIgaW5zdGFuY2VvZiBJREJE
YXRhYmFzZSBpcyB0cnVlCi1yZXF1ZXN0ID0gZGIuc2V0VmVyc2lvbignMScpCitkYm5hbWUgPSBz
ZWxmLmxvY2F0aW9uLnBhdGhuYW1lCitpbmRleGVkREIuZGVsZXRlRGF0YWJhc2UoZGJuYW1lKQor
aW5kZXhlZERCLm9wZW4oZGJuYW1lKQorZGIuc2V0VmVyc2lvbignMScpCiBzZXR1cE9iamVjdFN0
b3JlKCk6Ci1EZWxldGVkIGFsbCBvYmplY3Qgc3RvcmVzLgorUEFTUyBkYiBpbnN0YW5jZW9mIElE
QkRhdGFiYXNlIGlzIHRydWUKIG9iamVjdFN0b3JlID0gZGIuY3JlYXRlT2JqZWN0U3RvcmUoJ2Zv
bycsIHsga2V5UGF0aDogJ2tleScsIGF1dG9JbmNyZW1lbnQ6IHRydWUgfSk7CiBpbmRleCA9IG9i
amVjdFN0b3JlLmNyZWF0ZUluZGV4KCdmb28nLCAnaW5kZXgnKTsKLWV2ZW50LnRhcmdldC50cmFu
c2FjdGlvbi5vbmNvbXBsZXRlID0gYWRkUmVjb3JkOwogYWRkUmVjb3JkKCk6CiBvYmplY3RTdG9y
ZSA9IGRiLnRyYW5zYWN0aW9uKCdmb28nLCAncmVhZHdyaXRlJykub2JqZWN0U3RvcmUoJ2Zvbycp
OwogZGF0YSA9IHsga2V5OiA1LCBpbmRleDogMTAgfTsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L3N0b3JhZ2UvaW5kZXhlZGRiL21vemlsbGEvcHV0LWdldC12YWx1ZXMtZXhwZWN0ZWQudHh0IGIv
TGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvbW96aWxsYS9wdXQtZ2V0LXZhbHVlcy1leHBl
Y3RlZC50eHQKaW5kZXggYTlmMmNlY2Q5ZGYyYjhjNGM1MzAyMzc4MTgxYTU1MjYzZmNjMzE4Zi4u
NmNlOTFlZDY5MmQ4MzIxODY4NmRhZTYzMzYzMjVjODIzMTg0OTQwYyAxMDA2NDQKLS0tIGEvTGF5
b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvbW96aWxsYS9wdXQtZ2V0LXZhbHVlcy1leHBlY3Rl
ZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvbW96aWxsYS9wdXQtZ2V0
LXZhbHVlcy1leHBlY3RlZC50eHQKQEAgLTUsMTAgKzUsMTAgQEAgT24gc3VjY2VzcywgeW91IHdp
bGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09N
UExFVEUKIAogaW5kZXhlZERCID0gc2VsZi5pbmRleGVkREIgfHwgc2VsZi53ZWJraXRJbmRleGVk
REIgfHwgc2VsZi5tb3pJbmRleGVkREIgfHwgc2VsZi5tc0luZGV4ZWREQiB8fCBzZWxmLk9JbmRl
eGVkREI7CiAKLWluZGV4ZWREQi5vcGVuKG5hbWUpCi1kYiA9IGV2ZW50LnRhcmdldC5yZXN1bHQK
LXJlcXVlc3QgPSBkYi5zZXRWZXJzaW9uKCcxJykKLURlbGV0ZWQgYWxsIG9iamVjdCBzdG9yZXMu
CitkYm5hbWUgPSBzZWxmLmxvY2F0aW9uLnBhdGhuYW1lCitpbmRleGVkREIuZGVsZXRlRGF0YWJh
c2UoZGJuYW1lKQoraW5kZXhlZERCLm9wZW4oZGJuYW1lKQorZGIuc2V0VmVyc2lvbignMScpCiB0
ZXN0U3RyaW5nID0geyBrZXk6IDAsIHZhbHVlOiAndGVzdFN0cmluZycgfTsKIHRlc3RJbnQgPSB7
IGtleTogMSwgdmFsdWU6IDEwMDIgfTsKIG9iamVjdFN0b3JlID0gZGIuY3JlYXRlT2JqZWN0U3Rv
cmUoJ09iamVjdHMnLCB7IGF1dG9JbmNyZW1lbnQ6IGZhbHNlIH0pOwpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvbW96aWxsYS9yZWFkb25seS10cmFuc2FjdGlvbnMt
ZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvbW96aWxsYS9yZWFk
b25seS10cmFuc2FjdGlvbnMtZXhwZWN0ZWQudHh0CmluZGV4IGU4Y2M4ZmIwNzdjNmQ1YzNkNmI2
ZjM5ODQ4YmRkMjM1YzdjYjBiODIuLjNlOTQ0NTg4MDdmMGZlMDk4YmQ2NjEyNjRkZTQwMWRiNWI1
ODM4YzMgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL21vemlsbGEv
cmVhZG9ubHktdHJhbnNhY3Rpb25zLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9zdG9y
YWdlL2luZGV4ZWRkYi9tb3ppbGxhL3JlYWRvbmx5LXRyYW5zYWN0aW9ucy1leHBlY3RlZC50eHQK
QEAgLTUsMTAgKzUsMTAgQEAgT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQ
QVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUKIAogaW5kZXhlZERCID0g
c2VsZi5pbmRleGVkREIgfHwgc2VsZi53ZWJraXRJbmRleGVkREIgfHwgc2VsZi5tb3pJbmRleGVk
REIgfHwgc2VsZi5tc0luZGV4ZWREQiB8fCBzZWxmLk9JbmRleGVkREI7CiAKLWluZGV4ZWREQi5v
cGVuKG5hbWUpCi1kYiA9IGV2ZW50LnRhcmdldC5yZXN1bHQKLXJlcXVlc3QgPSBkYi5zZXRWZXJz
aW9uKCcxJykKLURlbGV0ZWQgYWxsIG9iamVjdCBzdG9yZXMuCitkYm5hbWUgPSBzZWxmLmxvY2F0
aW9uLnBhdGhuYW1lCitpbmRleGVkREIuZGVsZXRlRGF0YWJhc2UoZGJuYW1lKQoraW5kZXhlZERC
Lm9wZW4oZGJuYW1lKQorZGIuc2V0VmVyc2lvbignMScpCiBvYmplY3RTdG9yZSA9IGRiLmNyZWF0
ZU9iamVjdFN0b3JlKG9zTmFtZSwgeyBhdXRvSW5jcmVtZW50OiB0cnVlIH0pOwogRXhwZWN0aW5n
IGV4Y2VwdGlvbiBmcm9tIGRiLnRyYW5zYWN0aW9uKFtvc05hbWVdKS5vYmplY3RTdG9yZShvc05h
bWUpLmFkZCh7fSk7CiBQQVNTIEV4Y2VwdGlvbiB3YXMgdGhyb3duLgpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvbW96aWxsYS9yZWFkd3JpdGUtdHJhbnNhY3Rpb25z
LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL21vemlsbGEvcmVh
ZHdyaXRlLXRyYW5zYWN0aW9ucy1leHBlY3RlZC50eHQKaW5kZXggNDIyNzc2MjcxZmY2OGZlMWI2
ZDM3OTg0ZmMyNGFiOTlmMTEzYTU5Yi4uNGEwYThjNWZlYWUxNTMzNjQwNzYzZGNmYWU1YzM3ZDJm
ZDhlYjJmYiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvbW96aWxs
YS9yZWFkd3JpdGUtdHJhbnNhY3Rpb25zLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9z
dG9yYWdlL2luZGV4ZWRkYi9tb3ppbGxhL3JlYWR3cml0ZS10cmFuc2FjdGlvbnMtZXhwZWN0ZWQu
dHh0CkBAIC01LDEwICs1LDEwIEBAIE9uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBv
ZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFCiAKIGluZGV4ZWRE
QiA9IHNlbGYuaW5kZXhlZERCIHx8IHNlbGYud2Via2l0SW5kZXhlZERCIHx8IHNlbGYubW96SW5k
ZXhlZERCIHx8IHNlbGYubXNJbmRleGVkREIgfHwgc2VsZi5PSW5kZXhlZERCOwogCi1pbmRleGVk
REIub3BlbihuYW1lKQotZGIgPSBldmVudC50YXJnZXQucmVzdWx0Ci1yZXF1ZXN0ID0gZGIuc2V0
VmVyc2lvbignMScpCi1EZWxldGVkIGFsbCBvYmplY3Qgc3RvcmVzLgorZGJuYW1lID0gc2VsZi5s
b2NhdGlvbi5wYXRobmFtZQoraW5kZXhlZERCLmRlbGV0ZURhdGFiYXNlKGRibmFtZSkKK2luZGV4
ZWREQi5vcGVuKGRibmFtZSkKK2RiLnNldFZlcnNpb24oJzEnKQogb2JqZWN0U3RvcmUgPSBkYi5j
cmVhdGVPYmplY3RTdG9yZShvc05hbWUsIHsgYXV0b0luY3JlbWVudDogdHJ1ZSB9KTsKIHJlcXVl
c3QgPSBkYi50cmFuc2FjdGlvbihbb3NOYW1lXSwgJ3JlYWR3cml0ZScpLm9iamVjdFN0b3JlKG9z
TmFtZSkuYWRkKHt9KTsKIFBBU1MgZXZlbnQudGFyZ2V0LnRyYW5zYWN0aW9uLm1vZGUgaXMgJ3Jl
YWR3cml0ZScKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL21vemls
bGEvcmVtb3ZlLWluZGV4LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhl
ZGRiL21vemlsbGEvcmVtb3ZlLWluZGV4LWV4cGVjdGVkLnR4dAppbmRleCA2YTQyY2RiMjFjMDNh
ZjQ2MjRhMzE3MDU2ZDVlNzIyN2RiMDFkMjZkLi41NGE5NTM3NTVmYzIyYjgxYjE5N2I1ZGQwMmI5
MWU0Yjk2NzZlNDMyIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9t
b3ppbGxhL3JlbW92ZS1pbmRleC1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvc3RvcmFn
ZS9pbmRleGVkZGIvbW96aWxsYS9yZW1vdmUtaW5kZXgtZXhwZWN0ZWQudHh0CkBAIC01LDEwICs1
LDEwIEBAIE9uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2Fn
ZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFCiAKIGluZGV4ZWREQiA9IHNlbGYuaW5kZXhl
ZERCIHx8IHNlbGYud2Via2l0SW5kZXhlZERCIHx8IHNlbGYubW96SW5kZXhlZERCIHx8IHNlbGYu
bXNJbmRleGVkREIgfHwgc2VsZi5PSW5kZXhlZERCOwogCi1pbmRleGVkREIub3BlbihuYW1lKQot
ZGIgPSBldmVudC50YXJnZXQucmVzdWx0Ci1yZXF1ZXN0ID0gZGIuc2V0VmVyc2lvbignMScpCi1E
ZWxldGVkIGFsbCBvYmplY3Qgc3RvcmVzLgorZGJuYW1lID0gc2VsZi5sb2NhdGlvbi5wYXRobmFt
ZQoraW5kZXhlZERCLmRlbGV0ZURhdGFiYXNlKGRibmFtZSkKK2luZGV4ZWREQi5vcGVuKGRibmFt
ZSkKK2RiLnNldFZlcnNpb24oJzEnKQogb2JqZWN0U3RvcmUgPSBkYi5jcmVhdGVPYmplY3RTdG9y
ZShvYmplY3RTdG9yZU5hbWUsIHsga2V5UGF0aDogJ2ZvbycgfSk7CiBQQVNTIGRiLm9iamVjdFN0
b3JlTmFtZXMubGVuZ3RoIGlzIDEKIFBBU1MgZGIub2JqZWN0U3RvcmVOYW1lcy5pdGVtKDApIGlz
IG9iamVjdFN0b3JlTmFtZQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVk
ZGIvbW96aWxsYS9yZXNvdXJjZXMvYWRkLXR3aWNlLWZhaWx1cmUuanMgYi9MYXlvdXRUZXN0cy9z
dG9yYWdlL2luZGV4ZWRkYi9tb3ppbGxhL3Jlc291cmNlcy9hZGQtdHdpY2UtZmFpbHVyZS5qcwpp
bmRleCAyOWUzZDU4MjU0NTYzNmI0MDg3YjQ4MjZlNTVmNDFkYWE1MjJhYzVmLi44NjE2ZmIyYzk0
NmRhZDk3M2VjZDgzMzYwM2JjZjVjY2E4M2M3ZmNiIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9z
dG9yYWdlL2luZGV4ZWRkYi9tb3ppbGxhL3Jlc291cmNlcy9hZGQtdHdpY2UtZmFpbHVyZS5qcwor
KysgYi9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9tb3ppbGxhL3Jlc291cmNlcy9hZGQt
dHdpY2UtZmFpbHVyZS5qcwpAQCAtMTEsMjkgKzExLDggQEAgaWYgKHRoaXMuaW1wb3J0U2NyaXB0
cykgewogCiBkZXNjcmlwdGlvbigiVGVzdCBJbmRleGVkREIgYmVoYXZpb3IgYWRkaW5nIHRoZSBz
YW1lIHByb3BlcnR5IHR3aWNlIik7CiAKLWZ1bmN0aW9uIHRlc3QoKQotewotICAgIHJlbW92ZVZl
bmRvclByZWZpeGVzKCk7Ci0KLSAgICBuYW1lID0gc2VsZi5sb2NhdGlvbi5wYXRobmFtZTsKLSAg
ICByZXF1ZXN0ID0gZXZhbEFuZExvZygiaW5kZXhlZERCLm9wZW4obmFtZSkiKTsKLSAgICByZXF1
ZXN0Lm9uc3VjY2VzcyA9IG9wZW5TdWNjZXNzOwotICAgIHJlcXVlc3Qub25lcnJvciA9IHVuZXhw
ZWN0ZWRFcnJvckNhbGxiYWNrOwotfQotCi1mdW5jdGlvbiBvcGVuU3VjY2VzcygpCi17Ci0gICAg
ZGIgPSBldmFsQW5kTG9nKCJkYiA9IGV2ZW50LnRhcmdldC5yZXN1bHQiKTsKLQotICAgIHJlcXVl
c3QgPSBldmFsQW5kTG9nKCJyZXF1ZXN0ID0gZGIuc2V0VmVyc2lvbignMScpIik7Ci0gICAgcmVx
dWVzdC5vbnN1Y2Nlc3MgPSBjbGVhbkRhdGFiYXNlOwotICAgIHJlcXVlc3Qub25lcnJvciA9IHVu
ZXhwZWN0ZWRFcnJvckNhbGxiYWNrOwotfQotCiBmdW5jdGlvbiBjbGVhbkRhdGFiYXNlKCkKIHsK
LSAgICBkZWxldGVBbGxPYmplY3RTdG9yZXMoZGIpOwotCiAgICAgb2JqZWN0U3RvcmUgPSBldmFs
QW5kTG9nKCJvYmplY3RTdG9yZSA9IGRiLmNyZWF0ZU9iamVjdFN0b3JlKCdmb28nKTsiKTsKICAg
ICBrZXkgPSBldmFsQW5kTG9nKCJrZXkgPSAxMCIpOwogICAgIHJlcXVlc3QgPSBldmFsQW5kTG9n
KCJyZXF1ZXN0ID0gb2JqZWN0U3RvcmUuYWRkKHt9LCBrZXkpOyIpOwpAQCAtNTUsNCArMzQsNCBA
QCBmdW5jdGlvbiBhZGRTZWNvbmRFeHBlY3RlZEVycm9yKCkKICAgICBmaW5pc2hKU1Rlc3QoKTsK
IH0KIAotdGVzdCgpOwpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKK2luZGV4ZWREQlRlc3Qo
Y2xlYW5EYXRhYmFzZSk7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRk
Yi9tb3ppbGxhL3Jlc291cmNlcy9hdXRvaW5jcmVtZW50LWluZGV4ZXMuanMgYi9MYXlvdXRUZXN0
cy9zdG9yYWdlL2luZGV4ZWRkYi9tb3ppbGxhL3Jlc291cmNlcy9hdXRvaW5jcmVtZW50LWluZGV4
ZXMuanMKaW5kZXggMWM4NTk4NDg2NWRiZjlhN2ZmMzc1YjQ5MDA3ZmZhYTM4YTQ4NjRlYi4uMTA3
OWE2OTZmZjk5NzFmZDU0MjIzZGI2N2I0YzVjMzE1OTMxZDI0OSAxMDA2NDQKLS0tIGEvTGF5b3V0
VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvbW96aWxsYS9yZXNvdXJjZXMvYXV0b2luY3JlbWVudC1p
bmRleGVzLmpzCisrKyBiL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL21vemlsbGEvcmVz
b3VyY2VzL2F1dG9pbmNyZW1lbnQtaW5kZXhlcy5qcwpAQCAtMTEsMjUgKzExLDYgQEAgaWYgKHRo
aXMuaW1wb3J0U2NyaXB0cykgewogCiBkZXNjcmlwdGlvbigiVGVzdCBJbmRleGVkREIgaW5kZXhl
cyBhZ2FpbnN0IGF1dG9pbmNyZW1lbnRpbmcga2V5cyIpOwogCi1mdW5jdGlvbiB0ZXN0KCkKLXsK
LSAgICByZW1vdmVWZW5kb3JQcmVmaXhlcygpOwotCi0gICAgbmFtZSA9IHNlbGYubG9jYXRpb24u
cGF0aG5hbWU7Ci0gICAgcmVxdWVzdCA9IGV2YWxBbmRMb2coImluZGV4ZWREQi5vcGVuKG5hbWUp
Iik7Ci0gICAgcmVxdWVzdC5vbnN1Y2Nlc3MgPSBvcGVuU3VjY2VzczsKLSAgICByZXF1ZXN0Lm9u
ZXJyb3IgPSB1bmV4cGVjdGVkRXJyb3JDYWxsYmFjazsKLX0KLQotZnVuY3Rpb24gb3BlblN1Y2Nl
c3MoKQotewotICAgIGRiID0gZXZhbEFuZExvZygiZGIgPSBldmVudC50YXJnZXQucmVzdWx0Iik7
Ci0KLSAgICByZXF1ZXN0ID0gZXZhbEFuZExvZygicmVxdWVzdCA9IGRiLnNldFZlcnNpb24oJzEn
KSIpOwotICAgIHJlcXVlc3Qub25zdWNjZXNzID0gc2V0dXBPYmplY3RTdG9yZTsKLSAgICByZXF1
ZXN0Lm9uZXJyb3IgPSB1bmV4cGVjdGVkRXJyb3JDYWxsYmFjazsKLX0KLQogZnVuY3Rpb24gc2V0
dXBPYmplY3RTdG9yZSgpCiB7CiAgICAgdHJhbnMgPSBldmVudC50YXJnZXQucmVzdWx0OwpAQCAt
NDksNyArMzAsNiBAQCBmdW5jdGlvbiBzZXR1cEluZGV4ZXMoKQogewogICAgIGtleSA9IGV2YWxB
bmRMb2coImtleSA9IGV2ZW50LnRhcmdldC5yZXN1bHQ7Iik7CiAgICAgc2hvdWxkQmVGYWxzZSgi
a2V5ID09IG51bGwiKTsKLSAgICB0cmFucy5vbmNvbXBsZXRlID0gc2V0VmVyc2lvbkNvbXBsZXRl
OwogfQogCiBmdW5jdGlvbiBzZXRWZXJzaW9uQ29tcGxldGUoKQpAQCAtODUsNCArNjUsNCBAQCBm
dW5jdGlvbiBjaGVja1RoaXJkSW5kZXgoKQogICAgIGZpbmlzaEpTVGVzdCgpOwogfQogCi10ZXN0
KCk7ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQoraW5kZXhlZERCVGVzdChzZXR1cE9iamVj
dFN0b3JlLCBzZXRWZXJzaW9uQ29tcGxldGUpOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvc3Rv
cmFnZS9pbmRleGVkZGIvbW96aWxsYS9yZXNvdXJjZXMvYmFkLWtleXBhdGguanMgYi9MYXlvdXRU
ZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9tb3ppbGxhL3Jlc291cmNlcy9iYWQta2V5cGF0aC5qcwpp
bmRleCBkM2ViMGIyN2M1YWQ3NTZkODJmMTYxMzMyZWRjMmE4NDE3YmU0MjUxLi5hNzAyNTAzMDk1
ZDVhYmI4YzRjNTNmM2M2ODk3ZDEyYzU1OTZhMDYyIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9z
dG9yYWdlL2luZGV4ZWRkYi9tb3ppbGxhL3Jlc291cmNlcy9iYWQta2V5cGF0aC5qcworKysgYi9M
YXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9tb3ppbGxhL3Jlc291cmNlcy9iYWQta2V5cGF0
aC5qcwpAQCAtMTEsMjkgKzExLDggQEAgaWYgKHRoaXMuaW1wb3J0U2NyaXB0cykgewogCiBkZXNj
cmlwdGlvbigiVGVzdCBJbmRleGVkREIgYWRkaW5nIHByb3BlcnR5IHdpdGggaW52YWxpZCBrZXlw
YXRoIik7CiAKLWZ1bmN0aW9uIHRlc3QoKQotewotICAgIHJlbW92ZVZlbmRvclByZWZpeGVzKCk7
Ci0KLSAgICBuYW1lID0gc2VsZi5sb2NhdGlvbi5wYXRobmFtZTsKLSAgICByZXF1ZXN0ID0gZXZh
bEFuZExvZygiaW5kZXhlZERCLm9wZW4obmFtZSkiKTsKLSAgICByZXF1ZXN0Lm9uc3VjY2VzcyA9
IG9wZW5TdWNjZXNzOwotICAgIHJlcXVlc3Qub25lcnJvciA9IHVuZXhwZWN0ZWRFcnJvckNhbGxi
YWNrOwotfQotCi1mdW5jdGlvbiBvcGVuU3VjY2VzcygpCi17Ci0gICAgZGIgPSBldmFsQW5kTG9n
KCJkYiA9IGV2ZW50LnRhcmdldC5yZXN1bHQiKTsKLQotICAgIHJlcXVlc3QgPSBldmFsQW5kTG9n
KCJyZXF1ZXN0ID0gZGIuc2V0VmVyc2lvbignMScpIik7Ci0gICAgcmVxdWVzdC5vbnN1Y2Nlc3Mg
PSBjbGVhbkRhdGFiYXNlOwotICAgIHJlcXVlc3Qub25lcnJvciA9IHVuZXhwZWN0ZWRFcnJvckNh
bGxiYWNrOwotfQotCiBmdW5jdGlvbiBjbGVhbkRhdGFiYXNlKCkKIHsKLSAgICBkZWxldGVBbGxP
YmplY3RTdG9yZXMoZGIpOwotCiAgICAgb2JqZWN0U3RvcmUgPSBldmFsQW5kTG9nKCJvYmplY3RT
dG9yZSA9IGRiLmNyZWF0ZU9iamVjdFN0b3JlKCdmb28nLCB7IGtleVBhdGg6ICdrZXlQYXRoJyB9
KTsiKTsKICAgICByZXF1ZXN0ID0gZXZhbEFuZExvZygicmVxdWVzdCA9IG9iamVjdFN0b3JlLmFk
ZCh7IGtleVBhdGg6ICdmb28nIH0pOyIpOwogICAgIHJlcXVlc3Qub25zdWNjZXNzID0gYWRkRmly
c3RTdWNjZXNzOwpAQCAtNDYsNCArMjUsNSBAQCBmdW5jdGlvbiBhZGRGaXJzdFN1Y2Nlc3MoKQog
ICAgIGZpbmlzaEpTVGVzdCgpOwogfQogCi10ZXN0KCk7ClwgTm8gbmV3bGluZSBhdCBlbmQgb2Yg
ZmlsZQoraW5kZXhlZERCVGVzdChjbGVhbkRhdGFiYXNlKTsKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvbW96aWxsYS9yZXNvdXJjZXMvY2xlYXIuanMgYi9MYXlv
dXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9tb3ppbGxhL3Jlc291cmNlcy9jbGVhci5qcwppbmRl
eCAyYjFiYjljNTNhODJjZDE3N2QwOWY3ODM1YjBkZjE5MTJhYzA4MmY2Li4yODQ1ODQzYTliNzhm
OGM3ODRiZGU5MzNhZTE5Y2QyY2U3MTk5MzIxIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9zdG9y
YWdlL2luZGV4ZWRkYi9tb3ppbGxhL3Jlc291cmNlcy9jbGVhci5qcworKysgYi9MYXlvdXRUZXN0
cy9zdG9yYWdlL2luZGV4ZWRkYi9tb3ppbGxhL3Jlc291cmNlcy9jbGVhci5qcwpAQCAtMTEsMzMg
KzExLDExIEBAIGlmICh0aGlzLmltcG9ydFNjcmlwdHMpIHsKIAogZGVzY3JpcHRpb24oIlRlc3Qg
SW5kZXhlZERCJ3MgY2xlYXJpbmcgYW4gb2JqZWN0IHN0b3JlIik7CiAKLWZ1bmN0aW9uIHRlc3Qo
KQotewotICAgIHJlbW92ZVZlbmRvclByZWZpeGVzKCk7Ci0KLSAgICBuYW1lID0gc2VsZi5sb2Nh
dGlvbi5wYXRobmFtZTsKLSAgICByZXF1ZXN0ID0gZXZhbEFuZExvZygiaW5kZXhlZERCLm9wZW4o
bmFtZSkiKTsKLSAgICByZXF1ZXN0Lm9uc3VjY2VzcyA9IG9wZW5TdWNjZXNzOwotICAgIHJlcXVl
c3Qub25lcnJvciA9IHVuZXhwZWN0ZWRFcnJvckNhbGxiYWNrOwotfQotCi1mdW5jdGlvbiBvcGVu
U3VjY2VzcygpCi17Ci0gICAgZGIgPSBldmFsQW5kTG9nKCJkYiA9IGV2ZW50LnRhcmdldC5yZXN1
bHQiKTsKLQotICAgIHJlcXVlc3QgPSBldmFsQW5kTG9nKCJyZXF1ZXN0ID0gZGIuc2V0VmVyc2lv
bignMScpIik7Ci0gICAgcmVxdWVzdC5vbnN1Y2Nlc3MgPSBjbGVhbkRhdGFiYXNlOwotICAgIHJl
cXVlc3Qub25lcnJvciA9IHVuZXhwZWN0ZWRFcnJvckNhbGxiYWNrOwotfQotCiBmdW5jdGlvbiBj
bGVhbkRhdGFiYXNlKCkKIHsKLSAgICBkZWxldGVBbGxPYmplY3RTdG9yZXMoZGIpOwotCiAgICAg
b2JqZWN0U3RvcmUgPSBldmFsQW5kTG9nKCJvYmplY3RTdG9yZSA9IGRiLmNyZWF0ZU9iamVjdFN0
b3JlKCdmb28nLCB7IGF1dG9JbmNyZW1lbnQ6IHRydWUgfSk7Iik7CiAgICAgcmVxdWVzdCA9IGV2
YWxBbmRMb2coInJlcXVlc3QgPSBvYmplY3RTdG9yZS5hZGQoe30pOyIpOwogICAgIHJlcXVlc3Qu
b25lcnJvciA9IHVuZXhwZWN0ZWRFcnJvckNhbGxiYWNrOwotICAgIGV2ZW50LnRhcmdldC5yZXN1
bHQub25jb21wbGV0ZSA9IGNsZWFyOwogfQogCiBmdW5jdGlvbiBjbGVhcigpCkBAIC01Niw0ICsz
NCw0IEBAIGZ1bmN0aW9uIGFyZVdlQ2xlYXJZZXQoKQogICAgIGZpbmlzaEpTVGVzdCgpOwogfQog
Ci10ZXN0KCk7ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQoraW5kZXhlZERCVGVzdChjbGVh
bkRhdGFiYXNlLCBjbGVhcik7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4
ZWRkYi9tb3ppbGxhL3Jlc291cmNlcy9jcmVhdGUtaW5kZXgtdW5pcXVlLmpzIGIvTGF5b3V0VGVz
dHMvc3RvcmFnZS9pbmRleGVkZGIvbW96aWxsYS9yZXNvdXJjZXMvY3JlYXRlLWluZGV4LXVuaXF1
ZS5qcwppbmRleCBlNmEwZTE5YzUzMWMxZGUzNDc4MzFlN2IwMjk0Mzk3MjFjYjBiNjMxLi42NjU5
ODUzMmI3MGVlMjllZDg5YmU2NTIyODE5YTI5M2UzOTc5MjgxIDEwMDY0NAotLS0gYS9MYXlvdXRU
ZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9tb3ppbGxhL3Jlc291cmNlcy9jcmVhdGUtaW5kZXgtdW5p
cXVlLmpzCisrKyBiL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL21vemlsbGEvcmVzb3Vy
Y2VzL2NyZWF0ZS1pbmRleC11bmlxdWUuanMKQEAgLTExLDI5ICsxMSw4IEBAIGlmICh0aGlzLmlt
cG9ydFNjcmlwdHMpIHsKIAogZGVzY3JpcHRpb24oIlRlc3QgSW5kZXhlZERCJ3MgY3JlYXRpbmcg
dW5pcXVlIGluZGV4IGFuZCB1cGRhdGluZyBpbmRleE5hbWVzIik7CiAKLWZ1bmN0aW9uIHRlc3Qo
KQotewotICAgIHJlbW92ZVZlbmRvclByZWZpeGVzKCk7Ci0KLSAgICBuYW1lID0gc2VsZi5sb2Nh
dGlvbi5wYXRobmFtZTsKLSAgICByZXF1ZXN0ID0gZXZhbEFuZExvZygiaW5kZXhlZERCLm9wZW4o
bmFtZSkiKTsKLSAgICByZXF1ZXN0Lm9uc3VjY2VzcyA9IG9wZW5TdWNjZXNzOwotICAgIHJlcXVl
c3Qub25lcnJvciA9IHVuZXhwZWN0ZWRFcnJvckNhbGxiYWNrOwotfQotCi1mdW5jdGlvbiBvcGVu
U3VjY2VzcygpCi17Ci0gICAgZGIgPSBldmFsQW5kTG9nKCJkYiA9IGV2ZW50LnRhcmdldC5yZXN1
bHQiKTsKLQotICAgIHJlcXVlc3QgPSBldmFsQW5kTG9nKCJyZXF1ZXN0ID0gZGIuc2V0VmVyc2lv
bignMScpIik7Ci0gICAgcmVxdWVzdC5vbnN1Y2Nlc3MgPSBjcmVhdGVBbmRWZXJpZnlJbmRleDsK
LSAgICByZXF1ZXN0Lm9uZXJyb3IgPSB1bmV4cGVjdGVkRXJyb3JDYWxsYmFjazsKLX0KLQogZnVu
Y3Rpb24gY3JlYXRlQW5kVmVyaWZ5SW5kZXgoKQogewotICAgIGRlbGV0ZUFsbE9iamVjdFN0b3Jl
cyhkYik7Ci0KICAgICBvYmplY3RTdG9yZSA9IGV2YWxBbmRMb2coIm9iamVjdFN0b3JlID0gZGIu
Y3JlYXRlT2JqZWN0U3RvcmUoJ2EnLCB7IGtleVBhdGg6ICdpZCcsIGF1dG9JbmNyZW1lbnQ6IHRy
dWUgfSk7Iik7CiAKICAgICBpbmRleE5hbWUgPSAiMSI7CkBAIC01Niw0ICszNSw0IEBAIGZ1bmN0
aW9uIGNyZWF0ZUFuZFZlcmlmeUluZGV4KCkKICAgICBmaW5pc2hKU1Rlc3QoKTsKIH0KIAotdGVz
dCgpOwpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKK2luZGV4ZWREQlRlc3QoY3JlYXRlQW5k
VmVyaWZ5SW5kZXgpOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIv
bW96aWxsYS9yZXNvdXJjZXMvY3JlYXRlLWluZGV4LXdpdGgtaW50ZWdlci1rZXlzLmpzIGIvTGF5
b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvbW96aWxsYS9yZXNvdXJjZXMvY3JlYXRlLWluZGV4
LXdpdGgtaW50ZWdlci1rZXlzLmpzCmluZGV4IGMwZDhhYjFlM2FhMWQwMmEzYWM3MGVjOGNlNGY1
ZmZjZGE0MmY3MzAuLjJlOTU3ODZmN2UzZGVjNjY3MzgyYmVmMWI2YjYwN2I0OGJhYTExOTYgMTAw
NjQ0Ci0tLSBhL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL21vemlsbGEvcmVzb3VyY2Vz
L2NyZWF0ZS1pbmRleC13aXRoLWludGVnZXIta2V5cy5qcworKysgYi9MYXlvdXRUZXN0cy9zdG9y
YWdlL2luZGV4ZWRkYi9tb3ppbGxhL3Jlc291cmNlcy9jcmVhdGUtaW5kZXgtd2l0aC1pbnRlZ2Vy
LWtleXMuanMKQEAgLTExLDI5ICsxMSw4IEBAIGlmICh0aGlzLmltcG9ydFNjcmlwdHMpIHsKIAog
ZGVzY3JpcHRpb24oIlRlc3QgSW5kZXhlZERCJ3MgY3JlYXRpbmcgaW5kZXggd2l0aCBpbnRlZ2Vy
IGtleXMiKTsKIAotZnVuY3Rpb24gdGVzdCgpCi17Ci0gICAgcmVtb3ZlVmVuZG9yUHJlZml4ZXMo
KTsKLQotICAgIG5hbWUgPSBzZWxmLmxvY2F0aW9uLnBhdGhuYW1lOwotICAgIHJlcXVlc3QgPSBl
dmFsQW5kTG9nKCJpbmRleGVkREIub3BlbihuYW1lKSIpOwotICAgIHJlcXVlc3Qub25zdWNjZXNz
ID0gb3BlblN1Y2Nlc3M7Ci0gICAgcmVxdWVzdC5vbmVycm9yID0gdW5leHBlY3RlZEVycm9yQ2Fs
bGJhY2s7Ci19Ci0KLWZ1bmN0aW9uIG9wZW5TdWNjZXNzKCkKLXsKLSAgICBkYiA9IGV2YWxBbmRM
b2coImRiID0gZXZlbnQudGFyZ2V0LnJlc3VsdCIpOwotCi0gICAgcmVxdWVzdCA9IGV2YWxBbmRM
b2coInJlcXVlc3QgPSBkYi5zZXRWZXJzaW9uKCcxJykiKTsKLSAgICByZXF1ZXN0Lm9uc3VjY2Vz
cyA9IHNldHVwT2JqZWN0U3RvcmVBbmRDcmVhdGVJbmRleDsKLSAgICByZXF1ZXN0Lm9uZXJyb3Ig
PSB1bmV4cGVjdGVkRXJyb3JDYWxsYmFjazsKLX0KLQogZnVuY3Rpb24gc2V0dXBPYmplY3RTdG9y
ZUFuZENyZWF0ZUluZGV4KCkKIHsKLSAgICBkZWxldGVBbGxPYmplY3RTdG9yZXMoZGIpOwotCiAg
ICAgb2JqZWN0U3RvcmUgPSBldmFsQW5kTG9nKCJvYmplY3RTdG9yZSA9IGRiLmNyZWF0ZU9iamVj
dFN0b3JlKCdmb28nLCB7IGtleVBhdGg6ICdpZCcgfSk7Iik7CiAgICAgZGF0YSA9IGV2YWxBbmRM
b2coImRhdGEgPSB7IGlkOiAxNiwgbnVtOiA0MiB9OyIpOwogICAgIGV2YWxBbmRMb2coIm9iamVj
dFN0b3JlLmFkZChkYXRhKTsiKTsKQEAgLTUyLDQgKzMxLDUgQEAgZnVuY3Rpb24gdmVyaWZ5S2V5
Q3Vyc29yKCkKICAgICBmaW5pc2hKU1Rlc3QoKTsKIH0KIAotdGVzdCgpOwpcIE5vIG5ld2xpbmUg
YXQgZW5kIG9mIGZpbGUKK2luZGV4ZWREQlRlc3Qoc2V0dXBPYmplY3RTdG9yZUFuZENyZWF0ZUlu
ZGV4KTsKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvbW96aWxs
YS9yZXNvdXJjZXMvY3JlYXRlLW9iamVjdHN0b3JlLWJhc2ljcy5qcyBiL0xheW91dFRlc3RzL3N0
b3JhZ2UvaW5kZXhlZGRiL21vemlsbGEvcmVzb3VyY2VzL2NyZWF0ZS1vYmplY3RzdG9yZS1iYXNp
Y3MuanMKaW5kZXggNGE3ODc4ODg3YjlkNmM1MDdkYWE5ZTRmNDE2ZjYwZDFlM2RhMDEzNy4uN2Jh
ZGRlM2FmNzlkZjE0ZTVhYWM5YjY2ZTVkNDE3MDFhNjllNjAyNiAxMDA2NDQKLS0tIGEvTGF5b3V0
VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvbW96aWxsYS9yZXNvdXJjZXMvY3JlYXRlLW9iamVjdHN0
b3JlLWJhc2ljcy5qcworKysgYi9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9tb3ppbGxh
L3Jlc291cmNlcy9jcmVhdGUtb2JqZWN0c3RvcmUtYmFzaWNzLmpzCkBAIC0xMSwyOSArMTEsOCBA
QCBpZiAodGhpcy5pbXBvcnRTY3JpcHRzKSB7CiAKIGRlc2NyaXB0aW9uKCJUZXN0IEluZGV4ZWRE
QidzIGNyZWF0aW5nIG9iamVjdCBzdG9yZSBhbmQgdXBkYXRpbmcgcHJvcGVydGllcyIpOwogCi1m
dW5jdGlvbiB0ZXN0KCkKLXsKLSAgICByZW1vdmVWZW5kb3JQcmVmaXhlcygpOwotCi0gICAgbmFt
ZSA9IHNlbGYubG9jYXRpb24ucGF0aG5hbWU7Ci0gICAgcmVxdWVzdCA9IGV2YWxBbmRMb2coImlu
ZGV4ZWREQi5vcGVuKG5hbWUpIik7Ci0gICAgcmVxdWVzdC5vbnN1Y2Nlc3MgPSBvcGVuU3VjY2Vz
czsKLSAgICByZXF1ZXN0Lm9uZXJyb3IgPSB1bmV4cGVjdGVkRXJyb3JDYWxsYmFjazsKLX0KLQot
ZnVuY3Rpb24gb3BlblN1Y2Nlc3MoKQotewotICAgIGRiID0gZXZhbEFuZExvZygiZGIgPSBldmVu
dC50YXJnZXQucmVzdWx0Iik7Ci0KLSAgICByZXF1ZXN0ID0gZXZhbEFuZExvZygicmVxdWVzdCA9
IGRiLnNldFZlcnNpb24oJzEnKSIpOwotICAgIHJlcXVlc3Qub25zdWNjZXNzID0gY2xlYW5EYXRh
YmFzZTsKLSAgICByZXF1ZXN0Lm9uZXJyb3IgPSB1bmV4cGVjdGVkRXJyb3JDYWxsYmFjazsKLX0K
LQogZnVuY3Rpb24gY2xlYW5EYXRhYmFzZSgpCiB7Ci0gICAgZGVsZXRlQWxsT2JqZWN0U3RvcmVz
KGRiKTsKLQogICAgIG9iamVjdFN0b3JlSW5mbyA9IFsKICAgICAgICAgeyBuYW1lOiAiMSIsIG9w
dGlvbnM6IHsgYXV0b0luY3JlbWVudDogdHJ1ZSB9IH0sCiAgICAgICAgIHsgbmFtZTogIjIiLCBv
cHRpb25zOiB7IGF1dG9JbmNyZW1lbnQ6IGZhbHNlIH0gfSwKQEAgLTY1LDQgKzQ0LDUgQEAgZnVu
Y3Rpb24gY2xlYW5EYXRhYmFzZSgpCiAgICAgZmluaXNoSlNUZXN0KCk7CiB9CiAKLXRlc3QoKTsK
K2luZGV4ZWREQlRlc3QoY2xlYW5EYXRhYmFzZSk7CisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L3N0b3JhZ2UvaW5kZXhlZGRiL21vemlsbGEvcmVzb3VyY2VzL2NyZWF0ZS1vYmplY3RzdG9yZS1u
dWxsLW5hbWUuanMgYi9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9tb3ppbGxhL3Jlc291
cmNlcy9jcmVhdGUtb2JqZWN0c3RvcmUtbnVsbC1uYW1lLmpzCmluZGV4IGNiMWJkMjA1NDk5MWJh
YjNiODIyZWYwNjJmZDBlYmUyMmJkNjEyZWQuLjQ1OGNjZmE5YWZmNDc4MzcxMzU2NzdhMDk1YjE2
ODA1M2JjNTc0MzkgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL21v
emlsbGEvcmVzb3VyY2VzL2NyZWF0ZS1vYmplY3RzdG9yZS1udWxsLW5hbWUuanMKKysrIGIvTGF5
b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvbW96aWxsYS9yZXNvdXJjZXMvY3JlYXRlLW9iamVj
dHN0b3JlLW51bGwtbmFtZS5qcwpAQCAtMTEsMzMgKzExLDEyIEBAIGlmICh0aGlzLmltcG9ydFNj
cmlwdHMpIHsKIAogZGVzY3JpcHRpb24oIlRlc3QgSW5kZXhlZERCJ3MgY3JlYXRpbmcgb2JqZWN0
IHN0b3JlIHdpdGggbnVsbCBuYW1lIik7CiAKLWZ1bmN0aW9uIHRlc3QoKQotewotICAgIHJlbW92
ZVZlbmRvclByZWZpeGVzKCk7Ci0KLSAgICBuYW1lID0gc2VsZi5sb2NhdGlvbi5wYXRobmFtZTsK
LSAgICByZXF1ZXN0ID0gZXZhbEFuZExvZygiaW5kZXhlZERCLm9wZW4obmFtZSkiKTsKLSAgICBy
ZXF1ZXN0Lm9uc3VjY2VzcyA9IG9wZW5TdWNjZXNzOwotICAgIHJlcXVlc3Qub25lcnJvciA9IHVu
ZXhwZWN0ZWRFcnJvckNhbGxiYWNrOwotfQotCi1mdW5jdGlvbiBvcGVuU3VjY2VzcygpCi17Ci0g
ICAgZGIgPSBldmFsQW5kTG9nKCJkYiA9IGV2ZW50LnRhcmdldC5yZXN1bHQiKTsKLQotICAgIHJl
cXVlc3QgPSBldmFsQW5kTG9nKCJyZXF1ZXN0ID0gZGIuc2V0VmVyc2lvbignMScpIik7Ci0gICAg
cmVxdWVzdC5vbnN1Y2Nlc3MgPSBjbGVhbkRhdGFiYXNlOwotICAgIHJlcXVlc3Qub25lcnJvciA9
IHVuZXhwZWN0ZWRFcnJvckNhbGxiYWNrOwotfQotCiBmdW5jdGlvbiBjbGVhbkRhdGFiYXNlKCkK
IHsKLSAgICBkZWxldGVBbGxPYmplY3RTdG9yZXMoZGIpOwotCiAgICAgb2JqZWN0U3RvcmUgPSBl
dmFsQW5kTG9nKCJvYmplY3RTdG9yZSA9IGRiLmNyZWF0ZU9iamVjdFN0b3JlKG51bGwpOyIpOwog
ICAgIHNob3VsZEJlKCJvYmplY3RTdG9yZS5uYW1lIiwgIidudWxsJyIpOwogCiAgICAgZmluaXNo
SlNUZXN0KCk7CiB9CiAKLXRlc3QoKTsKXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCitpbmRl
eGVkREJUZXN0KGNsZWFuRGF0YWJhc2UpOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvc3RvcmFn
ZS9pbmRleGVkZGIvbW96aWxsYS9yZXNvdXJjZXMvY3Vyc29yLW11dGF0aW9uLW9iamVjdHN0b3Jl
LW9ubHkuanMgYi9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9tb3ppbGxhL3Jlc291cmNl
cy9jdXJzb3ItbXV0YXRpb24tb2JqZWN0c3RvcmUtb25seS5qcwppbmRleCAyNDdjMGQyMzQ4OTQy
MTA4ZGY4MWNmNTA0MTFkNzc2ZDc0ODBjZGJiLi4wYjUzZGUwMTAzMjgwYWMzZDAxNzRiNzc1NzNi
NTdhZmE4OTcwZDdiIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9t
b3ppbGxhL3Jlc291cmNlcy9jdXJzb3ItbXV0YXRpb24tb2JqZWN0c3RvcmUtb25seS5qcworKysg
Yi9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9tb3ppbGxhL3Jlc291cmNlcy9jdXJzb3It
bXV0YXRpb24tb2JqZWN0c3RvcmUtb25seS5qcwpAQCAtMTEsMzQgKzExLDEzIEBAIGlmICh0aGlz
LmltcG9ydFNjcmlwdHMpIHsKIAogZGVzY3JpcHRpb24oIlRlc3QgSW5kZXhlZERCJ3MgY3Vyc29y
IG11dGF0aW9uIGR1cmluZyBvYmplY3Qgc3RvcmUgY3Vyc29yIGl0ZXJhdGlvbiIpOwogCi1mdW5j
dGlvbiB0ZXN0KCkKLXsKLSAgICByZW1vdmVWZW5kb3JQcmVmaXhlcygpOwotCi0gICAgbmFtZSA9
IHNlbGYubG9jYXRpb24ucGF0aG5hbWU7Ci0gICAgcmVxdWVzdCA9IGV2YWxBbmRMb2coImluZGV4
ZWREQi5vcGVuKG5hbWUpIik7Ci0gICAgcmVxdWVzdC5vbnN1Y2Nlc3MgPSBvcGVuU3VjY2VzczsK
LSAgICByZXF1ZXN0Lm9uZXJyb3IgPSB1bmV4cGVjdGVkRXJyb3JDYWxsYmFjazsKLX0KLQotZnVu
Y3Rpb24gb3BlblN1Y2Nlc3MoKQotewotICAgIGRlYnVnKCJvcGVuU3VjY2VzcygpOiIpOwotICAg
IGRiID0gZXZhbEFuZExvZygiZGIgPSBldmVudC50YXJnZXQucmVzdWx0Iik7Ci0KLSAgICByZXF1
ZXN0ID0gZXZhbEFuZExvZygicmVxdWVzdCA9IGRiLnNldFZlcnNpb24oJzEnKSIpOwotICAgIHJl
cXVlc3Qub25zdWNjZXNzID0gc2V0dXBPYmplY3RTdG9yZTsKLSAgICByZXF1ZXN0Lm9uZXJyb3Ig
PSB1bmV4cGVjdGVkRXJyb3JDYWxsYmFjazsKLX0KLQogZnVuY3Rpb24gc2V0dXBPYmplY3RTdG9y
ZSgpCiB7CiAgICAgZGVidWcoInNldHVwT2JqZWN0U3RvcmUoKToiKTsKLSAgICBkZWxldGVBbGxP
YmplY3RTdG9yZXMoZGIpOwogCiAgICAgb2JqZWN0U3RvcmUgPSBldmFsQW5kTG9nKCJvYmplY3RT
dG9yZSA9IGRiLmNyZWF0ZU9iamVjdFN0b3JlKCdmb28nLCB7IGtleVBhdGg6ICdzcycgfSk7Iik7
Ci0gICAgb2JqZWN0U3RvcmVEYXRhID0gZXZhbEFuZExvZygib2JqZWN0U3RvcmVEYXRhID0gW1xu
IiArIAotIiAgICAgICAgeyBzczogJzIzNy0yMy03NzMyJywgbmFtZTogJ0JvYicgfSxcbiIgKyAK
KyAgICBvYmplY3RTdG9yZURhdGEgPSBldmFsQW5kTG9nKCJvYmplY3RTdG9yZURhdGEgPSBbXG4i
ICsKKyIgICAgICAgIHsgc3M6ICcyMzctMjMtNzczMicsIG5hbWU6ICdCb2InIH0sXG4iICsKIAog
IiAgICAgICAgeyBzczogJzIzNy0yMy03NzMzJywgbmFtZTogJ0FubicgfSxcbiIgKwogIiAgICAg
ICAgeyBzczogJzIzNy0yMy03NzM0JywgbmFtZTogJ1JvbicgfSxcbiIgKwpAQCAtNjQsNyArNDMs
NiBAQCBmdW5jdGlvbiBzZXR1cE9iamVjdFN0b3JlKCkKIGZ1bmN0aW9uIGl0ZXJhdGVDdXJzb3Io
KQogewogICAgIGRlYnVnKCJpdGVyYXRlQ3Vyc29yKCk6Iik7Ci0gICAgZXZhbEFuZExvZygiZXZl
bnQudGFyZ2V0LnRyYW5zYWN0aW9uLm9uY29tcGxldGUgPSBjaGVja0N1cnNvclJlc3VsdHNBbmRT
ZXR1cE11dGF0aW5nQ3Vyc29yOyIpOwogICAgIGN1cnNvciA9IGV2YWxBbmRMb2coImN1cnNvciA9
IGV2ZW50LnRhcmdldC5yZXN1bHQ7Iik7CiAgICAgaWYgKGN1cnNvcikgewogICAgICAgICBpZiAo
Y3Vyc29yLnZhbHVlLm5hbWUgPT0gb2JqZWN0U3RvcmVEYXRhWzBdLm5hbWUpIHsKQEAgLTEyNCw3
ICsxMDIsNyBAQCBmdW5jdGlvbiBhZGRGaW5hbERhdGEoKQogewogICAgIGRlYnVnKCJhZGRGaW5h
bERhdGEoKToiKTsKICAgICByZXF1ZXN0ID0gZXZhbEFuZExvZygicmVxdWVzdCA9IG9iamVjdFN0
b3JlLmFkZChvYmplY3RTdG9yZURhdGFbb2JqZWN0U3RvcmVEYXRhLmxlbmd0aCAtIDFdKTsiKTsK
LSAgICByZXF1ZXN0Lm9uc3VjY2VzcyA9IGZ1bmN0aW9uICgpIHsgY3Vyc29yLmNvbnRpbnVlKCk7
IH0KKyAgICByZXF1ZXN0Lm9uc3VjY2VzcyA9IGZ1bmN0aW9uICgpIHsgY3Vyc29yLmNvbnRpbnVl
KCk7IH07CiAgICAgcmVxdWVzdC5vbmVycm9yID0gdW5leHBlY3RlZEVycm9yQ2FsbGJhY2s7CiB9
CiAKQEAgLTEzNyw0ICsxMTUsNCBAQCBmdW5jdGlvbiBjaGVja011dGF0aW5nQ3Vyc29yUmVzdWx0
cygpCiAgICAgZmluaXNoSlNUZXN0KCk7CiB9CiAKLXRlc3QoKTsKXCBObyBuZXdsaW5lIGF0IGVu
ZCBvZiBmaWxlCitpbmRleGVkREJUZXN0KHNldHVwT2JqZWN0U3RvcmUsIGNoZWNrQ3Vyc29yUmVz
dWx0c0FuZFNldHVwTXV0YXRpbmdDdXJzb3IpOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvc3Rv
cmFnZS9pbmRleGVkZGIvbW96aWxsYS9yZXNvdXJjZXMvY3Vyc29yLW11dGF0aW9uLmpzIGIvTGF5
b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvbW96aWxsYS9yZXNvdXJjZXMvY3Vyc29yLW11dGF0
aW9uLmpzCmluZGV4IGMxMWI0NDU4ODNjYjg0YTA5MGU0OWE0ZmY5ZGRlMGFkMDc3NmY3NTAuLmEw
NTI0YTgwNDE0OWNkYzQ0YWViOGY2Yjg5NmE3MGY1ZTc2YWE1NDAgMTAwNjQ0Ci0tLSBhL0xheW91
dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL21vemlsbGEvcmVzb3VyY2VzL2N1cnNvci1tdXRhdGlv
bi5qcworKysgYi9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9tb3ppbGxhL3Jlc291cmNl
cy9jdXJzb3ItbXV0YXRpb24uanMKQEAgLTExLDM4ICsxMSwxNiBAQCBpZiAodGhpcy5pbXBvcnRT
Y3JpcHRzKSB7CiAKIGRlc2NyaXB0aW9uKCJUZXN0IEluZGV4ZWREQidzIGN1cnNvciBtdXRhdGlv
biIpOwogCi1mdW5jdGlvbiB0ZXN0KCkKLXsKLSAgICByZW1vdmVWZW5kb3JQcmVmaXhlcygpOwot
Ci0gICAgZGVidWcoIiIpOwotICAgIG5hbWUgPSAnY3Vyc29yLW11dGF0aW9uJzsKLSAgICByZXF1
ZXN0ID0gZXZhbEFuZExvZygiaW5kZXhlZERCLmRlbGV0ZURhdGFiYXNlKG5hbWUpIik7Ci0gICAg
cmVxdWVzdC5vbmVycm9yID0gdW5leHBlY3RlZEVycm9yQ2FsbGJhY2s7Ci0gICAgcmVxdWVzdC5v
bnN1Y2Nlc3MgPSBmdW5jdGlvbiAoKSB7Ci0gICAgICAgIHJlcXVlc3QgPSBldmFsQW5kTG9nKCJp
bmRleGVkREIub3BlbihuYW1lKSIpOwotICAgICAgICByZXF1ZXN0Lm9uZXJyb3IgPSB1bmV4cGVj
dGVkRXJyb3JDYWxsYmFjazsKLSAgICAgICAgcmVxdWVzdC5vbnN1Y2Nlc3MgPSBmdW5jdGlvbiAo
KSB7Ci0gICAgICAgICAgICBldmFsQW5kTG9nKCJkYiA9IGV2ZW50LnRhcmdldC5yZXN1bHQiKTsK
LSAgICAgICAgICAgIHJlcXVlc3QgPSBldmFsQW5kTG9nKCJkYi5zZXRWZXJzaW9uKCcxJykiKTsK
LSAgICAgICAgICAgIHJlcXVlc3Qub25lcnJvciA9IHVuZXhwZWN0ZWRFcnJvckNhbGxiYWNrOwot
ICAgICAgICAgICAgcmVxdWVzdC5vbnN1Y2Nlc3MgPSBzZXR1cE9iamVjdFN0b3JlQW5kQ3JlYXRl
SW5kZXg7ICAgICAgICAgIAotICAgICAgICB9OwotICAgIH07Ci19Ci0KIGZ1bmN0aW9uIHNldHVw
T2JqZWN0U3RvcmVBbmRDcmVhdGVJbmRleCgpCiB7CiAgICAgZGVidWcoIiIpOwogICAgIGRlYnVn
KCJzZXR1cE9iamVjdFN0b3JlQW5kQ3JlYXRlSW5kZXgoKToiKTsKIAotICAgIHRyYW5zID0gZXZh
bEFuZExvZygidHJhbnMgPSByZXF1ZXN0LnJlc3VsdCIpOwotCiAgICAgb2JqZWN0U3RvcmUgPSBl
dmFsQW5kTG9nKCJvYmplY3RTdG9yZSA9IGRiLmNyZWF0ZU9iamVjdFN0b3JlKCdmb28nLCB7IGtl
eVBhdGg6ICdzcycgfSkiKTsKICAgICBpbmRleCA9IGV2YWxBbmRMb2coImluZGV4ID0gb2JqZWN0
U3RvcmUuY3JlYXRlSW5kZXgoJ25hbWUnLCAnbmFtZScsIHsgdW5pcXVlOiB0cnVlIH0pIik7Ci0g
ICAgb2JqZWN0U3RvcmVEYXRhID0gZXZhbEFuZExvZygib2JqZWN0U3RvcmVEYXRhID0gW1xuIiAr
IAorICAgIG9iamVjdFN0b3JlRGF0YSA9IGV2YWxBbmRMb2coIm9iamVjdFN0b3JlRGF0YSA9IFtc
biIgKwogICAgICAgICAgLy8gVG8gYmUgcmVtb3ZlZC4KLSIgICAgICAgIHsgc3M6ICcyMzctMjMt
NzczMicsIG5hbWU6ICdCb2InIH0sXG4iICsgCisiICAgICAgICB7IHNzOiAnMjM3LTIzLTc3MzIn
LCBuYW1lOiAnQm9iJyB9LFxuIiArCiAKICAgICAgICAgIC8vIEFsd2F5cyBwcmVzZW50LgogIiAg
ICAgICAgeyBzczogJzIzNy0yMy03NzMzJywgbmFtZTogJ0FubicgfSxcbiIgKwpAQCAtNTgsNyAr
MzYsNiBAQCBmdW5jdGlvbiBzZXR1cE9iamVjdFN0b3JlQW5kQ3JlYXRlSW5kZXgoKQogICAgICAg
ICBldmFsQW5kTG9nKCJvYmplY3RTdG9yZS5hZGQob2JqZWN0U3RvcmVEYXRhWyIgKyBpICsgIl0p
Iik7CiAgICAgfQogCi0gICAgZXZhbEFuZExvZygidHJhbnMub25jb21wbGV0ZSA9IGNoZWNrQ3Vy
c29yUmVzdWx0cyIpOwogICAgIHNldHVwQ3Vyc29yKCk7CiB9CiAKQEAgLTEwOSw3ICs4Niw3IEBA
IGZ1bmN0aW9uIHNldHVwTXV0YXRpbmdDdXJzb3IoKQogewogICAgIGRlYnVnKCIiKTsKICAgICBk
ZWJ1Zygic2V0dXBNdXRhdGluZ0N1cnNvcigpOiIpOwotICAgCisKICAgICBjb3VudCA9IGV2YWxB
bmRMb2coImNvdW50ID0gMCIpOwogICAgIHNhd0FkZGVkID0gZXZhbEFuZExvZygic2F3QWRkZWQg
PSBmYWxzZSIpOwogICAgIHNhd1JlbW92ZWQgPSBldmFsQW5kTG9nKCJzYXdSZW1vdmVkID0gZmFs
c2UiKTsKQEAgLTE2NSw3ICsxNDIsNyBAQCBmdW5jdGlvbiBhZGRGaW5hbERhdGEoKQogICAgIHJl
cXVlc3Qub25lcnJvciA9IHVuZXhwZWN0ZWRFcnJvckNhbGxiYWNrOwogICAgIHJlcXVlc3Qub25z
dWNjZXNzID0gZnVuY3Rpb24gKCkgewogICAgICAgICBjdXJzb3IuY29udGludWUoKTsKLSAgICB9
CisgICAgfTsKIH0KIAogZnVuY3Rpb24gY2hlY2tNdXRhdGluZ0N1cnNvclJlc3VsdHMoKQpAQCAt
MTc4LDQgKzE1NSw0IEBAIGZ1bmN0aW9uIGNoZWNrTXV0YXRpbmdDdXJzb3JSZXN1bHRzKCkKICAg
ICBmaW5pc2hKU1Rlc3QoKTsKIH0KIAotdGVzdCgpOwpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZp
bGUKK2luZGV4ZWREQlRlc3Qoc2V0dXBPYmplY3RTdG9yZUFuZENyZWF0ZUluZGV4LCBjaGVja0N1
cnNvclJlc3VsdHMpOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIv
bW96aWxsYS9yZXNvdXJjZXMvY3Vyc29ycy5qcyBiL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhl
ZGRiL21vemlsbGEvcmVzb3VyY2VzL2N1cnNvcnMuanMKaW5kZXggMTg4OTdkYWIxYTJlNDZjNDIz
Y2E4OTFlZTJkMmJlOWI1MzhhNDMyOC4uNzNhNTg3YjlkZWRiOWVjN2Q3YmQwYmMxNjY1NTJhNGJi
ZGY0NjUyMiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvbW96aWxs
YS9yZXNvdXJjZXMvY3Vyc29ycy5qcworKysgYi9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRk
Yi9tb3ppbGxhL3Jlc291cmNlcy9jdXJzb3JzLmpzCkBAIC0xMSwyOSArMTEsOCBAQCBpZiAodGhp
cy5pbXBvcnRTY3JpcHRzKSB7CiAKIGRlc2NyaXB0aW9uKCJUZXN0IEluZGV4ZWREQiBjdXJzb3Ig
YmVoYXZpb3IiKTsKIAotZnVuY3Rpb24gdGVzdCgpCi17Ci0gICAgcmVtb3ZlVmVuZG9yUHJlZml4
ZXMoKTsKLQotICAgIG5hbWUgPSBzZWxmLmxvY2F0aW9uLnBhdGhuYW1lOwotICAgIHJlcXVlc3Qg
PSBldmFsQW5kTG9nKCJpbmRleGVkREIub3BlbihuYW1lKSIpOwotICAgIHJlcXVlc3Qub25zdWNj
ZXNzID0gb3BlblN1Y2Nlc3M7Ci0gICAgcmVxdWVzdC5vbmVycm9yID0gdW5leHBlY3RlZEVycm9y
Q2FsbGJhY2s7Ci19Ci0KLWZ1bmN0aW9uIG9wZW5TdWNjZXNzKCkKLXsKLSAgICBkYiA9IGV2YWxB
bmRMb2coImRiID0gZXZlbnQudGFyZ2V0LnJlc3VsdCIpOwotCi0gICAgcmVxdWVzdCA9IGV2YWxB
bmRMb2coInJlcXVlc3QgPSBkYi5zZXRWZXJzaW9uKCcxJykiKTsKLSAgICByZXF1ZXN0Lm9uc3Vj
Y2VzcyA9IHRlc3RHcm91cDE7Ci0gICAgcmVxdWVzdC5vbmVycm9yID0gdW5leHBlY3RlZEVycm9y
Q2FsbGJhY2s7Ci19Ci0KIGZ1bmN0aW9uIHRlc3RHcm91cDEoKQogewotICAgIGRlbGV0ZUFsbE9i
amVjdFN0b3JlcyhkYik7Ci0KICAgICBvYmplY3RTdG9yZSA9IGV2YWxBbmRMb2coImRiLmNyZWF0
ZU9iamVjdFN0b3JlKCdhdXRvSW5jcmVtZW50JywgeyBhdXRvSW5jcmVtZW50OiB0cnVlIH0pOyIp
OwogCiAgICAgcmVxdWVzdCA9IGV2YWxBbmRMb2coInJlcXVlc3QgPSBvYmplY3RTdG9yZS5vcGVu
Q3Vyc29yKCk7Iik7CkBAIC00MSw3ICsyMCw3IEBAIGZ1bmN0aW9uIHRlc3RHcm91cDEoKQogICAg
IHJlcXVlc3Qub25zdWNjZXNzID0gZnVuY3Rpb24gKGV2ZW50KSB7CiAgICAgICBzaG91bGRCZSgi
ZXZlbnQudGFyZ2V0LnJlc3VsdCIsICJudWxsIik7CiAgICAgICB0ZXN0R3JvdXAyKCk7Ci0gICAg
fQorICAgIH07CiB9CiAKIGZ1bmN0aW9uIHRlc3RHcm91cDIoKQpAQCAtNTMsNyArMzIsNyBAQCBm
dW5jdGlvbiB0ZXN0R3JvdXAyKCkKICAgICByZXF1ZXN0Lm9uc3VjY2VzcyA9IGZ1bmN0aW9uIChl
dmVudCkgewogICAgICAgc2hvdWxkQmUoImV2ZW50LnRhcmdldC5yZXN1bHQiLCAibnVsbCIpOwog
ICAgICAgdGVzdEdyb3VwMygpOwotICAgIH0KKyAgICB9OwogfQogCiBmdW5jdGlvbiB0ZXN0R3Jv
dXAzKCkKQEAgLTY1LDcgKzQ0LDcgQEAgZnVuY3Rpb24gdGVzdEdyb3VwMygpCiAgICAgcmVxdWVz
dC5vbnN1Y2Nlc3MgPSBmdW5jdGlvbiAoZXZlbnQpIHsKICAgICAgIHNob3VsZEJlKCJldmVudC50
YXJnZXQucmVzdWx0IiwgIm51bGwiKTsKICAgICAgIHRlc3RHcm91cDQoKTsKLSAgICB9CisgICAg
fTsKIH0KIAogZnVuY3Rpb24gdGVzdEdyb3VwNCgpCkBAIC03Nyw3ICs1Niw3IEBAIGZ1bmN0aW9u
IHRlc3RHcm91cDQoKQogICAgIHJlcXVlc3Qub25zdWNjZXNzID0gZnVuY3Rpb24gKGV2ZW50KSB7
CiAgICAgICBzaG91bGRCZSgiZXZlbnQudGFyZ2V0LnJlc3VsdCIsICJudWxsIik7CiAgICAgICB0
ZXN0R3JvdXA1KCk7Ci0gICAgfQorICAgIH07CiB9CiAKIGZ1bmN0aW9uIHRlc3RHcm91cDUoKQpA
QCAtMTI0LDcgKzEwMyw3IEBAIGZ1bmN0aW9uIHRlc3RHcm91cDYoKQogICAgICAgICBzaG91bGRC
ZSgia2V5SW5kZXgiLCAia2V5cy5sZW5ndGgiKTsKICAgICAgICAgdGVzdEdyb3VwNygpOwogICAg
ICAgfQotICAgIH0KKyAgICB9OwogfQogCiBmdW5jdGlvbiB0ZXN0R3JvdXA3KCkKQEAgLTE1Myw3
ICsxMzIsNyBAQCBmdW5jdGlvbiB0ZXN0R3JvdXA3KCkKICAgICAgICAgc2hvdWxkQmUoImtleUlu
ZGV4IiwgIjgiKTsKICAgICAgICAgdGVzdEdyb3VwOCgpOwogICAgICAgfQotICAgIH0KKyAgICB9
OwogfQogCiBmdW5jdGlvbiB0ZXN0R3JvdXA4KCkKQEAgLTE4Niw3ICsxNjUsNyBAQCBmdW5jdGlv
biB0ZXN0R3JvdXA4KCkKICAgICAgICAgc2hvdWxkQmUoImtleUluZGV4IiwgImtleXMubGVuZ3Ro
Iik7CiAgICAgICAgIHRlc3RHcm91cDkoKTsKICAgICAgIH0KLSAgICB9CisgICAgfTsKIH0KIAog
ZnVuY3Rpb24gdGVzdEdyb3VwOSgpCkBAIC0yMTksNyArMTk4LDcgQEAgZnVuY3Rpb24gdGVzdEdy
b3VwOSgpCiAgICAgICAgIHNob3VsZEJlKCJrZXlJbmRleCIsICJrZXlzLmxlbmd0aCIpOwogICAg
ICAgICB0ZXN0R3JvdXAxMCgpOwogICAgICAgfQotICAgIH0KKyAgICB9OwogfQogCiBmdW5jdGlv
biB0ZXN0R3JvdXAxMCgpCkBAIC0yNTIsNyArMjMxLDcgQEAgZnVuY3Rpb24gdGVzdEdyb3VwMTAo
KQogICAgICAgICBzaG91bGRCZSgia2V5SW5kZXgiLCAia2V5cy5sZW5ndGgiKTsKICAgICAgICAg
dGVzdEdyb3VwMTEoKTsKICAgICAgIH0KLSAgICB9CisgICAgfTsKIH0KIAogZnVuY3Rpb24gdGVz
dEdyb3VwMTEoKQpAQCAtMjg1LDcgKzI2NCw3IEBAIGZ1bmN0aW9uIHRlc3RHcm91cDExKCkKICAg
ICAgICAgc2hvdWxkQmUoImtleUluZGV4IiwgImtleXMubGVuZ3RoIik7CiAgICAgICAgIHRlc3RH
cm91cDEyKCk7CiAgICAgICB9Ci0gICAgfQorICAgIH07CiB9CiAKIGZ1bmN0aW9uIHRlc3RHcm91
cDEyKCkKQEAgLTMzNyw3ICszMTYsNyBAQCBmdW5jdGlvbiB0ZXN0R3JvdXAxMygpCiAgICAgICAg
IHNob3VsZEJlKCJnb3RSZW1vdmVFdmVudCIsICJ0cnVlIik7CiAgICAgICAgIHRlc3RHcm91cDE0
KCk7CiAgICAgICB9Ci0gICAgfQorICAgIH07CiB9CiAKIGZ1bmN0aW9uIHRlc3RHcm91cDE0KCkK
QEAgLTM4MSw3ICszNjAsOCBAQCBmdW5jdGlvbiB0ZXN0R3JvdXAxNSgpCiAgICAgICAgIHNob3Vs
ZEJlKCJrZXlJbmRleCIsICItMSIpOwogICAgICAgICBmaW5pc2hKU1Rlc3QoKTsKICAgICAgIH0K
LSAgICB9CisgICAgfTsKIH0KIAotdGVzdCgpOwpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUK
K2luZGV4ZWREQlRlc3QodGVzdEdyb3VwMSk7CisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3N0
b3JhZ2UvaW5kZXhlZGRiL21vemlsbGEvcmVzb3VyY2VzL2RlbGV0ZS1yZXN1bHQuanMgYi9MYXlv
dXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9tb3ppbGxhL3Jlc291cmNlcy9kZWxldGUtcmVzdWx0
LmpzCmluZGV4IDZmYWEyNDAyMmNlNTQ2NGY4YzQzZWViN2MwZDBmNzk1NzA2ZWJhNDEuLjJjMGMw
N2U0N2RjMTNhM2FhZDRlNWQ3YWYyNDViOGM3ODJhNmYwZWIgMTAwNjQ0Ci0tLSBhL0xheW91dFRl
c3RzL3N0b3JhZ2UvaW5kZXhlZGRiL21vemlsbGEvcmVzb3VyY2VzL2RlbGV0ZS1yZXN1bHQuanMK
KysrIGIvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvbW96aWxsYS9yZXNvdXJjZXMvZGVs
ZXRlLXJlc3VsdC5qcwpAQCAtMTEsMjcgKzExLDggQEAgaWYgKHRoaXMuaW1wb3J0U2NyaXB0cykg
ewogCiBkZXNjcmlwdGlvbigiVGVzdCBJbmRleGVkREI6IHJlc3VsdCBwcm9wZXJ0eSBhZnRlciBk
ZWxldGluZyBleGlzdGluZyBhbmQgbm9uLWV4aXN0aW5nIHJlY29yZCIpOwogCi1mdW5jdGlvbiB0
ZXN0KCkKLXsKLSAgICByZW1vdmVWZW5kb3JQcmVmaXhlcygpOwotCi0gICAgbmFtZSA9IHNlbGYu
bG9jYXRpb24ucGF0aG5hbWU7Ci0gICAgcmVxdWVzdCA9IGV2YWxBbmRMb2coImluZGV4ZWREQi5v
cGVuKG5hbWUpIik7Ci0gICAgcmVxdWVzdC5vbnN1Y2Nlc3MgPSBvcGVuU3VjY2VzczsKLSAgICBy
ZXF1ZXN0Lm9uZXJyb3IgPSB1bmV4cGVjdGVkRXJyb3JDYWxsYmFjazsKLX0KLQotZnVuY3Rpb24g
b3BlblN1Y2Nlc3MoKQotewotICAgIGRiID0gZXZhbEFuZExvZygiZGIgPSBldmVudC50YXJnZXQu
cmVzdWx0Iik7Ci0gICAgcmVxdWVzdCA9IGV2YWxBbmRMb2coInJlcXVlc3QgPSBkYi5zZXRWZXJz
aW9uKCcxJykiKTsKLSAgICByZXF1ZXN0Lm9uc3VjY2VzcyA9IGNyZWF0ZU9iamVjdFN0b3JlOwot
ICAgIHJlcXVlc3Qub25lcnJvciA9IHVuZXhwZWN0ZWRFcnJvckNhbGxiYWNrOwotfQotCiBmdW5j
dGlvbiBjcmVhdGVPYmplY3RTdG9yZSgpCiB7Ci0gICAgZGVsZXRlQWxsT2JqZWN0U3RvcmVzKGRi
KTsKICAgICBvYmplY3RTdG9yZSA9IGV2YWxBbmRMb2coIm9iamVjdFN0b3JlID0gZGIuY3JlYXRl
T2JqZWN0U3RvcmUoJ2ZvbycsIHsga2V5UGF0aDogJ2lkJywgYXV0b0luY3JlbWVudDogdHJ1ZSB9
KTsiKTsKICAgICByZXF1ZXN0ID0gZXZhbEFuZExvZygicmVxdWVzdCA9IG9iamVjdFN0b3JlLmFk
ZCh7fSk7Iik7CiAgICAgcmVxdWVzdC5vbnN1Y2Nlc3MgPSBkZWxldGVSZWNvcmQxOwpAQCAtNjAs
NCArNDEsNCBAQCBmdW5jdGlvbiBmaW5hbENoZWNrKCkKICAgICBmaW5pc2hKU1Rlc3QoKTsKIH0K
IAotdGVzdCgpOwpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKK2luZGV4ZWREQlRlc3QoY3Jl
YXRlT2JqZWN0U3RvcmUpOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVk
ZGIvbW96aWxsYS9yZXNvdXJjZXMvZXZlbnQtc291cmNlLmpzIGIvTGF5b3V0VGVzdHMvc3RvcmFn
ZS9pbmRleGVkZGIvbW96aWxsYS9yZXNvdXJjZXMvZXZlbnQtc291cmNlLmpzCmluZGV4IGM3NDkz
YzY3YmY2NjA0ZmEzNjhlMzM5ZGM2MjE2NzhhMDZjNDZhNjguLjJmODI3MWFlZDk2ZWY1MzVhZTIx
MjJmYmIyMWI1MTNhYzMyNmIzMWMgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5k
ZXhlZGRiL21vemlsbGEvcmVzb3VyY2VzL2V2ZW50LXNvdXJjZS5qcworKysgYi9MYXlvdXRUZXN0
cy9zdG9yYWdlL2luZGV4ZWRkYi9tb3ppbGxhL3Jlc291cmNlcy9ldmVudC1zb3VyY2UuanMKQEAg
LTExLDM0ICsxMSwxMSBAQCBpZiAodGhpcy5pbXBvcnRTY3JpcHRzKSB7CiAKIGRlc2NyaXB0aW9u
KCJUZXN0IEluZGV4ZWREQidzIGV2ZW50LnRhcmdldC5zb3VyY2UgaW4gc3VjY2VzcyBjYWxsYmFj
a3MiKTsKIAotZnVuY3Rpb24gdGVzdCgpCi17Ci0gICAgcmVtb3ZlVmVuZG9yUHJlZml4ZXMoKTsK
LQotICAgIG5hbWUgPSBzZWxmLmxvY2F0aW9uLnBhdGhuYW1lOwotICAgIHJlcXVlc3QgPSBldmFs
QW5kTG9nKCJpbmRleGVkREIub3BlbihuYW1lKSIpOwotICAgIHJlcXVlc3Qub25zdWNjZXNzID0g
b3BlblN1Y2Nlc3M7Ci0gICAgcmVxdWVzdC5vbmVycm9yID0gdW5leHBlY3RlZEVycm9yQ2FsbGJh
Y2s7Ci19Ci0KLWZ1bmN0aW9uIG9wZW5TdWNjZXNzKCkKLXsKLSAgICBzb3VyY2UgPSBldmFsQW5k
TG9nKCJzb3VyY2UgPSBldmVudC50YXJnZXQuc291cmNlOyIpOwotICAgIHNob3VsZEJlKCJzb3Vy
Y2UiLCAiaW5kZXhlZERCIik7Ci0KLSAgICBkYiA9IGV2YWxBbmRMb2coImRiID0gZXZlbnQudGFy
Z2V0LnJlc3VsdCIpOwotICAgIHJlcXVlc3QgPSBldmFsQW5kTG9nKCJyZXF1ZXN0ID0gZGIuc2V0
VmVyc2lvbignMScpIik7Ci0gICAgcmVxdWVzdC5vbnN1Y2Nlc3MgPSBjbGVhbkRhdGFiYXNlOwot
ICAgIHJlcXVlc3Qub25lcnJvciA9IHVuZXhwZWN0ZWRFcnJvckNhbGxiYWNrOwotfQotCiBmdW5j
dGlvbiBjbGVhbkRhdGFiYXNlKCkKIHsKICAgICBzb3VyY2UgPSBldmFsQW5kTG9nKCJzb3VyY2Ug
PSBldmVudC50YXJnZXQuc291cmNlOyIpOwogICAgIHNob3VsZEJlKCJzb3VyY2UiLCAiZGIiKTsK
IAotICAgIGRlbGV0ZUFsbE9iamVjdFN0b3JlcyhkYik7Ci0KICAgICBvYmplY3RTdG9yZU5hbWUg
PSAiT2JqZWN0cyI7CiAgICAgb2JqZWN0U3RvcmUgPSBldmFsQW5kTG9nKCJvYmplY3RTdG9yZSA9
IGRiLmNyZWF0ZU9iamVjdFN0b3JlKG9iamVjdFN0b3JlTmFtZSwgeyBhdXRvSW5jcmVtZW50OiB0
cnVlIH0pOyIpOwogICAgIHJlcXVlc3QgPSBldmFsQW5kTG9nKCJyZXF1ZXN0ID0gb2JqZWN0U3Rv
cmUuYWRkKHt9KTsiKTsKQEAgLTUzLDQgKzMwLDQgQEAgZnVuY3Rpb24gYXJlV2VEb25lWWV0KCkK
ICAgICBmaW5pc2hKU1Rlc3QoKTsKIH0KIAotdGVzdCgpOwpcIE5vIG5ld2xpbmUgYXQgZW5kIG9m
IGZpbGUKK2luZGV4ZWREQlRlc3QoY2xlYW5EYXRhYmFzZSk7CmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9tb3ppbGxhL3Jlc291cmNlcy9pbmRleGVzLmpzIGIvTGF5
b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvbW96aWxsYS9yZXNvdXJjZXMvaW5kZXhlcy5qcwpp
bmRleCA0Zjc1YzJkZjlhYWVjN2QxMjk3ZDI2MTA2ZWU4YzE4M2ViZGQ2NWFlLi4wMzQzODZlODNk
MGVmMTIzNTU5Mjg5MGZiOGJiMTYyYzlkODhmYmYzIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9z
dG9yYWdlL2luZGV4ZWRkYi9tb3ppbGxhL3Jlc291cmNlcy9pbmRleGVzLmpzCisrKyBiL0xheW91
dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL21vemlsbGEvcmVzb3VyY2VzL2luZGV4ZXMuanMKQEAg
LTExLDIxICsxMSw4IEBAIGlmICh0aGlzLmltcG9ydFNjcmlwdHMpIHsKIAogZGVzY3JpcHRpb24o
IlRlc3QgSW5kZXhlZERCOiBpdGVyYXRpbmcgdGhyb3VnaCBpbmRleCBjdXJzb3JzIHdpdGgga2V5
cyBhbmQga2V5IHJhbmdlcyIpOwogCi1mdW5jdGlvbiB0ZXN0KCkKLXsKLSAgICByZW1vdmVWZW5k
b3JQcmVmaXhlcygpOwotCi0gICAgbmFtZSA9IHNlbGYubG9jYXRpb24ucGF0aG5hbWU7Ci0gICAg
cmVxdWVzdCA9IGV2YWxBbmRMb2coImluZGV4ZWREQi5vcGVuKG5hbWUpIik7Ci0gICAgcmVxdWVz
dC5vbnN1Y2Nlc3MgPSBvcGVuU3VjY2VzczsKLSAgICByZXF1ZXN0Lm9uZXJyb3IgPSB1bmV4cGVj
dGVkRXJyb3JDYWxsYmFjazsKLX0KLQotZnVuY3Rpb24gb3BlblN1Y2Nlc3MoKQorZnVuY3Rpb24g
Y3JlYXRlQW5kUG9wdWxhdGVPYmplY3RTdG9yZSgpCiB7Ci0gICAgZGVidWcoIm9wZW5TdWNjZXNz
KCk6Iik7Ci0gICAgZGIgPSBldmFsQW5kTG9nKCJkYiA9IGV2ZW50LnRhcmdldC5yZXN1bHQiKTsK
LQogICAgIG9iamVjdFN0b3JlTmFtZSA9ICJQZW9wbGUiOwogCiAgICAgb2JqZWN0U3RvcmVEYXRh
ID0gWwpAQCAtNzAsMTYgKzU3LDYgQEAgZnVuY3Rpb24gb3BlblN1Y2Nlc3MoKQogICAgICAgICB7
IGtleTogIjIzNy0yMy03NzM0IiwgdmFsdWU6IHsgbmFtZTogIlJvbiIsIGhlaWdodDogNzMsIHdl
aWdodDogMTgwIH0gfQogICAgIF07CiAKLSAgICByZXF1ZXN0ID0gZXZhbEFuZExvZygicmVxdWVz
dCA9IGRiLnNldFZlcnNpb24oJzEnKSIpOwotICAgIHJlcXVlc3Qub25zdWNjZXNzID0gY3JlYXRl
QW5kUG9wdWxhdGVPYmplY3RTdG9yZTsKLSAgICByZXF1ZXN0Lm9uZXJyb3IgPSB1bmV4cGVjdGVk
RXJyb3JDYWxsYmFjazsKLX0KLQotZnVuY3Rpb24gY3JlYXRlQW5kUG9wdWxhdGVPYmplY3RTdG9y
ZSgpCi17Ci0gICAgZGVsZXRlQWxsT2JqZWN0U3RvcmVzKGRiKTsKLSAgICB0cmFucyA9IGV2ZW50
LnRhcmdldC5yZXN1bHQ7Ci0KICAgICBvYmplY3RTdG9yZSA9IGV2YWxBbmRMb2coIm9iamVjdFN0
b3JlID0gZGIuY3JlYXRlT2JqZWN0U3RvcmUob2JqZWN0U3RvcmVOYW1lKTsiKTsKIAogICAgIGRl
YnVnKCJGaXJzdCwgYWRkIGFsbCBvdXIgZGF0YSB0byB0aGUgb2JqZWN0IHN0b3JlLiIpOwpAQCAt
OTEsNyArNjgsNyBAQCBmdW5jdGlvbiBjcmVhdGVBbmRQb3B1bGF0ZU9iamVjdFN0b3JlKCkKICAg
ICAgICAgaWYgKCsrYWRkZWREYXRhID09IG9iamVjdFN0b3JlRGF0YS5sZW5ndGgpIHsKICAgICAg
ICAgICBjcmVhdGVJbmRleGVzKCk7CiAgICAgICAgIH0KLSAgICAgIH0KKyAgICAgIH07CiAgICAg
fQogfQogCkBAIC0xMDIsNyArNzksNiBAQCBmdW5jdGlvbiBjcmVhdGVJbmRleGVzKCkKICAgICAg
IGV2YWxBbmRMb2coIm9iamVjdFN0b3JlLmNyZWF0ZUluZGV4KGluZGV4RGF0YVtpXS5uYW1lLCBp
bmRleERhdGFbaV0ua2V5UGF0aCwgaW5kZXhEYXRhW2ldLm9wdGlvbnMpOyIpOwogICAgIH0KICAg
ICBzaG91bGRCZSgib2JqZWN0U3RvcmUuaW5kZXhOYW1lcy5sZW5ndGgiLCAiaW5kZXhEYXRhLmxl
bmd0aCIpOwotICAgIHRyYW5zLm9uY29tcGxldGUgPSBzZXRWZXJzaW9uQ29tcGxldGU7CiB9CiAK
IGZ1bmN0aW9uIHNldFZlcnNpb25Db21wbGV0ZSgpCkBAIC0xMDA3LDQgKzk4Myw0IEBAIGZ1bmN0
aW9uIHRlc3RHcm91cDMwKCkKICAgICB9CiB9CiAKLXRlc3QoKTsKXCBObyBuZXdsaW5lIGF0IGVu
ZCBvZiBmaWxlCitpbmRleGVkREJUZXN0KGNyZWF0ZUFuZFBvcHVsYXRlT2JqZWN0U3RvcmUsIHNl
dFZlcnNpb25Db21wbGV0ZSk7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4
ZWRkYi9tb3ppbGxhL3Jlc291cmNlcy9rZXktcmVxdWlyZW1lbnRzLWRlbGV0ZS1udWxsLWtleS5q
cyBiL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL21vemlsbGEvcmVzb3VyY2VzL2tleS1y
ZXF1aXJlbWVudHMtZGVsZXRlLW51bGwta2V5LmpzCmluZGV4IGZmMDYyYzNkOTFlZTY3MTM0NmEx
NTFhZGZkMTgzYTY3Y2I2NzViZDkuLmM5MzE0ODgyM2I4YTAxYjgxZDhmMDNkZjUwNmNlNjYyMmNi
OTc5YjIgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL21vemlsbGEv
cmVzb3VyY2VzL2tleS1yZXF1aXJlbWVudHMtZGVsZXRlLW51bGwta2V5LmpzCisrKyBiL0xheW91
dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL21vemlsbGEvcmVzb3VyY2VzL2tleS1yZXF1aXJlbWVu
dHMtZGVsZXRlLW51bGwta2V5LmpzCkBAIC0xMSwzMSArMTEsMTEgQEAgaWYgKHRoaXMuaW1wb3J0
U2NyaXB0cykgewogCiBkZXNjcmlwdGlvbigiVGVzdCBJbmRleGVkREIncyBiZWhhdmlvciBkZWxl
dGluZyBlbnRyeSB3aXRoIG5vIGtleSIpOwogCi1mdW5jdGlvbiB0ZXN0KCkKLXsKLSAgICByZW1v
dmVWZW5kb3JQcmVmaXhlcygpOwotCi0gICAgbmFtZSA9IHNlbGYubG9jYXRpb24ucGF0aG5hbWU7
Ci0gICAgcmVxdWVzdCA9IGV2YWxBbmRMb2coImluZGV4ZWREQi5vcGVuKG5hbWUpIik7Ci0gICAg
cmVxdWVzdC5vbnN1Y2Nlc3MgPSBvcGVuU3VjY2VzczsKLSAgICByZXF1ZXN0Lm9uZXJyb3IgPSB1
bmV4cGVjdGVkRXJyb3JDYWxsYmFjazsKLX0KLQotZnVuY3Rpb24gb3BlblN1Y2Nlc3MoKQotewot
ICAgIGRiID0gZXZhbEFuZExvZygiZGIgPSBldmVudC50YXJnZXQucmVzdWx0Iik7Ci0KLSAgICBy
ZXF1ZXN0ID0gZXZhbEFuZExvZygicmVxdWVzdCA9IGRiLnNldFZlcnNpb24oJ3ZlcnNpb24gMScp
Iik7Ci0gICAgcmVxdWVzdC5vbnN1Y2Nlc3MgPSBjbGVhbkRhdGFiYXNlQW5kQ3JlYXRlT2JqZWN0
U3RvcmU7Ci0gICAgcmVxdWVzdC5vbmVycm9yID0gdW5leHBlY3RlZEVycm9yQ2FsbGJhY2s7Ci19
Ci0KIGZ1bmN0aW9uIGNsZWFuRGF0YWJhc2VBbmRDcmVhdGVPYmplY3RTdG9yZSgpCiB7Ci0gICAg
ZGVsZXRlQWxsT2JqZWN0U3RvcmVzKGRiKTsKICAgICBvYmplY3RTdG9yZSA9IGV2YWxBbmRMb2co
Im9iamVjdFN0b3JlID0gZGIuY3JlYXRlT2JqZWN0U3RvcmUoJ2JhcicpOyIpOwogICAgIGV2YWxB
bmRFeHBlY3RFeGNlcHRpb24oIm9iamVjdFN0b3JlLmRlbGV0ZShudWxsKTsiLCAiSURCRGF0YWJh
c2VFeGNlcHRpb24uREFUQV9FUlIiKTsKICAgICBmaW5pc2hKU1Rlc3QoKTsKIH0KIAotdGVzdCgp
OwpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKK2luZGV4ZWREQlRlc3QoY2xlYW5EYXRhYmFz
ZUFuZENyZWF0ZU9iamVjdFN0b3JlKTsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3N0b3JhZ2Uv
aW5kZXhlZGRiL21vemlsbGEvcmVzb3VyY2VzL2tleS1yZXF1aXJlbWVudHMtaW5saW5lLWFuZC1w
YXNzZWQuanMgYi9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9tb3ppbGxhL3Jlc291cmNl
cy9rZXktcmVxdWlyZW1lbnRzLWlubGluZS1hbmQtcGFzc2VkLmpzCmluZGV4IDI4N2E4MDBkMDkz
MDY0OTQxZjA5MTM3YmJlMDc2MGQ4ZDA2YWY0MmQuLjEzNTNlM2E2NGQwZDFiNDQ2ZjNlZTljZTQ2
YzJjOWI2MmQ0YzhjNmQgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRi
L21vemlsbGEvcmVzb3VyY2VzL2tleS1yZXF1aXJlbWVudHMtaW5saW5lLWFuZC1wYXNzZWQuanMK
KysrIGIvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvbW96aWxsYS9yZXNvdXJjZXMva2V5
LXJlcXVpcmVtZW50cy1pbmxpbmUtYW5kLXBhc3NlZC5qcwpAQCAtMTEsMzMgKzExLDEyIEBAIGlm
ICh0aGlzLmltcG9ydFNjcmlwdHMpIHsKIAogZGVzY3JpcHRpb24oIlRlc3QgSW5kZXhlZERCJ3Mg
YmVoYXZpb3IgYWRkaW5nIGlubGluZSBhbmQgcGFzc2VkIGtleSBzaW11bHRhbmVvdXNseSIpOwog
Ci1mdW5jdGlvbiB0ZXN0KCkKLXsKLSAgICByZW1vdmVWZW5kb3JQcmVmaXhlcygpOwotCi0gICAg
bmFtZSA9IHNlbGYubG9jYXRpb24ucGF0aG5hbWU7Ci0gICAgcmVxdWVzdCA9IGV2YWxBbmRMb2co
ImluZGV4ZWREQi5vcGVuKG5hbWUpIik7Ci0gICAgcmVxdWVzdC5vbnN1Y2Nlc3MgPSBvcGVuU3Vj
Y2VzczsKLSAgICByZXF1ZXN0Lm9uZXJyb3IgPSB1bmV4cGVjdGVkRXJyb3JDYWxsYmFjazsKLX0K
LQotZnVuY3Rpb24gb3BlblN1Y2Nlc3MoKQotewotICAgIGRlYnVnKCJvcGVuU3VjY2VzcygpOiIp
OwotICAgIGRiID0gZXZhbEFuZExvZygiZGIgPSBldmVudC50YXJnZXQucmVzdWx0Iik7Ci0KLSAg
ICByZXF1ZXN0ID0gZXZhbEFuZExvZygicmVxdWVzdCA9IGRiLnNldFZlcnNpb24oJ3ZlcnNpb24g
MScpIik7Ci0gICAgcmVxdWVzdC5vbnN1Y2Nlc3MgPSBjbGVhbkRhdGFiYXNlOwotICAgIHJlcXVl
c3Qub25lcnJvciA9IHVuZXhwZWN0ZWRFcnJvckNhbGxiYWNrOwotfQotCiBmdW5jdGlvbiBjbGVh
bkRhdGFiYXNlKCkKIHsKICAgICBkZWJ1ZygiY2xlYW5EYXRhYmFzZSgpOiIpOwotICAgIGRlbGV0
ZUFsbE9iamVjdFN0b3JlcyhkYik7CiAgICAgb2JqZWN0U3RvcmUgPSBldmFsQW5kTG9nKCJvYmpl
Y3RTdG9yZSA9IGRiLmNyZWF0ZU9iamVjdFN0b3JlKCdiYXonLCB7IGtleVBhdGg6ICdpZCcgfSk7
Iik7CiAgICAgZXZhbEFuZEV4cGVjdEV4Y2VwdGlvbigib2JqZWN0U3RvcmUuYWRkKHtpZDogNX0s
IDUpOyIsICJJREJEYXRhYmFzZUV4Y2VwdGlvbi5EQVRBX0VSUiIpOwogICAgIGZpbmlzaEpTVGVz
dCgpOwogfQogCi10ZXN0KCk7ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQoraW5kZXhlZERC
VGVzdChjbGVhbkRhdGFiYXNlKTsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5k
ZXhlZGRiL21vemlsbGEvcmVzb3VyY2VzL2tleS1yZXF1aXJlbWVudHMtcHV0LW5vLWtleS5qcyBi
L0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL21vemlsbGEvcmVzb3VyY2VzL2tleS1yZXF1
aXJlbWVudHMtcHV0LW5vLWtleS5qcwppbmRleCA0Njc2NGNlZmY4MTdlNWY1OTBlMGM2MjA4MzJi
NWQwNzg2ZWI5ZjhhLi5lZWI3MWIzNjI0MmEzOGU4N2ExN2ZhZmYyZmM5MmFlNWQ1MTVlZjc3IDEw
MDY0NAotLS0gYS9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9tb3ppbGxhL3Jlc291cmNl
cy9rZXktcmVxdWlyZW1lbnRzLXB1dC1uby1rZXkuanMKKysrIGIvTGF5b3V0VGVzdHMvc3RvcmFn
ZS9pbmRleGVkZGIvbW96aWxsYS9yZXNvdXJjZXMva2V5LXJlcXVpcmVtZW50cy1wdXQtbm8ta2V5
LmpzCkBAIC0xMSwzMSArMTEsMTEgQEAgaWYgKHRoaXMuaW1wb3J0U2NyaXB0cykgewogCiBkZXNj
cmlwdGlvbigiVGVzdCBJbmRleGVkREIncyBiZWhhdmlvciBwdXRpbmcgd2l0aG91dCBrZXkiKTsK
IAotZnVuY3Rpb24gdGVzdCgpCi17Ci0gICAgcmVtb3ZlVmVuZG9yUHJlZml4ZXMoKTsKLQotICAg
IG5hbWUgPSBzZWxmLmxvY2F0aW9uLnBhdGhuYW1lOwotICAgIHJlcXVlc3QgPSBldmFsQW5kTG9n
KCJpbmRleGVkREIub3BlbihuYW1lKSIpOwotICAgIHJlcXVlc3Qub25zdWNjZXNzID0gb3BlblN1
Y2Nlc3M7Ci0gICAgcmVxdWVzdC5vbmVycm9yID0gdW5leHBlY3RlZEVycm9yQ2FsbGJhY2s7Ci19
Ci0KLWZ1bmN0aW9uIG9wZW5TdWNjZXNzKCkKLXsKLSAgICBkYiA9IGV2YWxBbmRMb2coImRiID0g
ZXZlbnQudGFyZ2V0LnJlc3VsdCIpOwotCi0gICAgcmVxdWVzdCA9IGV2YWxBbmRMb2coInJlcXVl
c3QgPSBkYi5zZXRWZXJzaW9uKCcxJykiKTsKLSAgICByZXF1ZXN0Lm9uc3VjY2VzcyA9IGNsZWFu
RGF0YWJhc2U7Ci0gICAgcmVxdWVzdC5vbmVycm9yID0gdW5leHBlY3RlZEVycm9yQ2FsbGJhY2s7
Ci19Ci0KIGZ1bmN0aW9uIGNsZWFuRGF0YWJhc2UoKQogewotICAgIGRlbGV0ZUFsbE9iamVjdFN0
b3JlcyhkYik7CiAgICAgb2JqZWN0U3RvcmUgPSBldmFsQW5kTG9nKCJvYmplY3RTdG9yZSA9IGRi
LmNyZWF0ZU9iamVjdFN0b3JlKCdiYXInKTsiKTsKICAgICBldmFsQW5kRXhwZWN0RXhjZXB0aW9u
KCJvYmplY3RTdG9yZS5wdXQoe30pOyIsICJJREJEYXRhYmFzZUV4Y2VwdGlvbi5EQVRBX0VSUiIp
OwogICAgIGZpbmlzaEpTVGVzdCgpOwogfQogCi10ZXN0KCk7ClwgTm8gbmV3bGluZSBhdCBlbmQg
b2YgZmlsZQoraW5kZXhlZERCVGVzdChjbGVhbkRhdGFiYXNlKTsKZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL21vemlsbGEvcmVzb3VyY2VzL2tleS1yZXF1aXJlbWVu
dHMtcHV0LW51bGwta2V5LmpzIGIvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvbW96aWxs
YS9yZXNvdXJjZXMva2V5LXJlcXVpcmVtZW50cy1wdXQtbnVsbC1rZXkuanMKaW5kZXggOGUwZTc0
N2JiZTE0ZGU0NzhhZjEyMWEwYTUzZWFlZjIxMWRiZGFhZi4uNjkwMDhiNWM3ODIxMDlmYzg5OGRi
YmE5NzRlZDhiY2U0YWEzZDBmNCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRl
eGVkZGIvbW96aWxsYS9yZXNvdXJjZXMva2V5LXJlcXVpcmVtZW50cy1wdXQtbnVsbC1rZXkuanMK
KysrIGIvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvbW96aWxsYS9yZXNvdXJjZXMva2V5
LXJlcXVpcmVtZW50cy1wdXQtbnVsbC1rZXkuanMKQEAgLTExLDMxICsxMSwxMSBAQCBpZiAodGhp
cy5pbXBvcnRTY3JpcHRzKSB7CiAKIGRlc2NyaXB0aW9uKCJUZXN0IEluZGV4ZWREQidzIGJlaGF2
aW9yIHB1dCgpaW5nIHdpdGggbnVsbCBrZXkiKTsKIAotZnVuY3Rpb24gdGVzdCgpCi17Ci0gICAg
cmVtb3ZlVmVuZG9yUHJlZml4ZXMoKTsKLQotICAgIG5hbWUgPSBzZWxmLmxvY2F0aW9uLnBhdGhu
YW1lOwotICAgIHJlcXVlc3QgPSBldmFsQW5kTG9nKCJpbmRleGVkREIub3BlbihuYW1lKSIpOwot
ICAgIHJlcXVlc3Qub25zdWNjZXNzID0gb3BlblN1Y2Nlc3M7Ci0gICAgcmVxdWVzdC5vbmVycm9y
ID0gdW5leHBlY3RlZEVycm9yQ2FsbGJhY2s7Ci19Ci0KLWZ1bmN0aW9uIG9wZW5TdWNjZXNzKCkK
LXsKLSAgICBkYiA9IGV2YWxBbmRMb2coImRiID0gZXZlbnQudGFyZ2V0LnJlc3VsdCIpOwotCi0g
ICAgcmVxdWVzdCA9IGV2YWxBbmRMb2coInJlcXVlc3QgPSBkYi5zZXRWZXJzaW9uKCcxJykiKTsK
LSAgICByZXF1ZXN0Lm9uc3VjY2VzcyA9IGNsZWFuRGF0YWJhc2U7Ci0gICAgcmVxdWVzdC5vbmVy
cm9yID0gdW5leHBlY3RlZEVycm9yQ2FsbGJhY2s7Ci19Ci0KIGZ1bmN0aW9uIGNsZWFuRGF0YWJh
c2UoKQogewotICAgIGRlbGV0ZUFsbE9iamVjdFN0b3JlcyhkYik7CiAgICAgb2JqZWN0U3RvcmUg
PSBldmFsQW5kTG9nKCJvYmplY3RTdG9yZSA9IGRiLmNyZWF0ZU9iamVjdFN0b3JlKCdiYXInKTsi
KTsKICAgICBldmFsQW5kRXhwZWN0RXhjZXB0aW9uKCJvYmplY3RTdG9yZS5wdXQoe30sIG51bGwp
OyIsICJJREJEYXRhYmFzZUV4Y2VwdGlvbi5EQVRBX0VSUiIpOwogICAgIGZpbmlzaEpTVGVzdCgp
OwogfQogCi10ZXN0KCk7ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQoraW5kZXhlZERCVGVz
dChjbGVhbkRhdGFiYXNlKTsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhl
ZGRiL21vemlsbGEvcmVzb3VyY2VzL2tleS1yZXF1aXJlbWVudHMuanMgYi9MYXlvdXRUZXN0cy9z
dG9yYWdlL2luZGV4ZWRkYi9tb3ppbGxhL3Jlc291cmNlcy9rZXktcmVxdWlyZW1lbnRzLmpzCmlu
ZGV4IDA3MmM1NGYxNTQwNDMyMzYzYjRmZGE0OWU3MjQ3ODBjMGViYmNkZWUuLjFlOTA4MmE1ZWNh
NmMzMzY4ZjY1ZmFiMzM3YTMzYThhYmIyZTQ1M2IgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3N0
b3JhZ2UvaW5kZXhlZGRiL21vemlsbGEvcmVzb3VyY2VzL2tleS1yZXF1aXJlbWVudHMuanMKKysr
IGIvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvbW96aWxsYS9yZXNvdXJjZXMva2V5LXJl
cXVpcmVtZW50cy5qcwpAQCAtMTEsMjggKzExLDggQEAgaWYgKHRoaXMuaW1wb3J0U2NyaXB0cykg
ewogCiBkZXNjcmlwdGlvbigiVGVzdCBJbmRleGVkREIncyBldmVudC50YXJnZXQucmVzdWx0IGFm
dGVyIGFkZCgpIGFuZCBwdXQoKSIpOwogCi1mdW5jdGlvbiB0ZXN0KCkKLXsKLSAgICByZW1vdmVW
ZW5kb3JQcmVmaXhlcygpOwotCi0gICAgbmFtZSA9IHNlbGYubG9jYXRpb24ucGF0aG5hbWU7Ci0g
ICAgcmVxdWVzdCA9IGV2YWxBbmRMb2coImluZGV4ZWREQi5vcGVuKG5hbWUpIik7Ci0gICAgcmVx
dWVzdC5vbnN1Y2Nlc3MgPSBvcGVuU3VjY2VzczsKLSAgICByZXF1ZXN0Lm9uZXJyb3IgPSB1bmV4
cGVjdGVkRXJyb3JDYWxsYmFjazsKLX0KLQotZnVuY3Rpb24gb3BlblN1Y2Nlc3MoKQotewotICAg
IGRiID0gZXZhbEFuZExvZygiZGIgPSBldmVudC50YXJnZXQucmVzdWx0Iik7Ci0KLSAgICByZXF1
ZXN0ID0gZXZhbEFuZExvZygicmVxdWVzdCA9IGRiLnNldFZlcnNpb24oJzEnKSIpOwotICAgIHJl
cXVlc3Qub25zdWNjZXNzID0gY2xlYW5EYXRhYmFzZTsKLSAgICByZXF1ZXN0Lm9uZXJyb3IgPSB1
bmV4cGVjdGVkRXJyb3JDYWxsYmFjazsKLX0KLQogZnVuY3Rpb24gY2xlYW5EYXRhYmFzZSgpCiB7
Ci0gICAgZGVsZXRlQWxsT2JqZWN0U3RvcmVzKGRiKTsKICAgICBvYmplY3RTdG9yZSA9IGV2YWxB
bmRMb2coIm9iamVjdFN0b3JlID0gZGIuY3JlYXRlT2JqZWN0U3RvcmUoJ2ZvbycsIHsgYXV0b0lu
Y3JlbWVudDogdHJ1ZSB9KTsiKTsKICAgICByZXF1ZXN0ID0gZXZhbEFuZExvZygicmVxdWVzdCA9
IG9iamVjdFN0b3JlLmFkZCh7fSk7Iik7CiAgICAgcmVxdWVzdC5vbnN1Y2Nlc3MgPSBwb3N0QWRk
OwpAQCAtNzEsNCArNTEsNCBAQCBmdW5jdGlvbiBwb3N0UHV0MygpCiAgICAgZmluaXNoSlNUZXN0
KCk7CiB9CiAKLXRlc3QoKTsKXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCitpbmRleGVkREJU
ZXN0KGNsZWFuRGF0YWJhc2UpOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRl
eGVkZGIvbW96aWxsYS9yZXNvdXJjZXMvb2JqZWN0LWN1cnNvcnMuanMgYi9MYXlvdXRUZXN0cy9z
dG9yYWdlL2luZGV4ZWRkYi9tb3ppbGxhL3Jlc291cmNlcy9vYmplY3QtY3Vyc29ycy5qcwppbmRl
eCA5M2RhMjA4NWRiODZlNWQzZjg5YjhjN2IxOTk5ZDg0YTVkMTZjYjI1Li5lNzNlNjdjNTIxOWNi
MDU2MzdhNDIzYWFjMjQ2ODI5YzQ4ZTllM2JhIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9zdG9y
YWdlL2luZGV4ZWRkYi9tb3ppbGxhL3Jlc291cmNlcy9vYmplY3QtY3Vyc29ycy5qcworKysgYi9M
YXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9tb3ppbGxhL3Jlc291cmNlcy9vYmplY3QtY3Vy
c29ycy5qcwpAQCAtMTEsMjggKzExLDggQEAgaWYgKHRoaXMuaW1wb3J0U2NyaXB0cykgewogCiBk
ZXNjcmlwdGlvbigiVGVzdCBJbmRleGVkREIncyBpbmRleCBjdXJzb3JzIik7CiAKLWZ1bmN0aW9u
IHRlc3QoKQotewotICAgIHJlbW92ZVZlbmRvclByZWZpeGVzKCk7Ci0KLSAgICBuYW1lID0gc2Vs
Zi5sb2NhdGlvbi5wYXRobmFtZTsKLSAgICByZXF1ZXN0ID0gZXZhbEFuZExvZygiaW5kZXhlZERC
Lm9wZW4obmFtZSkiKTsKLSAgICByZXF1ZXN0Lm9uc3VjY2VzcyA9IG9wZW5TdWNjZXNzOwotICAg
IHJlcXVlc3Qub25lcnJvciA9IHVuZXhwZWN0ZWRFcnJvckNhbGxiYWNrOwotfQotCi1mdW5jdGlv
biBvcGVuU3VjY2VzcygpCi17Ci0gICAgZGIgPSBldmFsQW5kTG9nKCJkYiA9IGV2ZW50LnRhcmdl
dC5yZXN1bHQiKTsKLQotICAgIHJlcXVlc3QgPSBldmFsQW5kTG9nKCJyZXF1ZXN0ID0gZGIuc2V0
VmVyc2lvbignMScpIik7Ci0gICAgcmVxdWVzdC5vbnN1Y2Nlc3MgPSBjbGVhbkRhdGFiYXNlOwot
ICAgIHJlcXVlc3Qub25lcnJvciA9IHVuZXhwZWN0ZWRFcnJvckNhbGxiYWNrOwotfQotCiBmdW5j
dGlvbiBjbGVhbkRhdGFiYXNlKCkKIHsKLSAgICBkZWxldGVBbGxPYmplY3RTdG9yZXMoZGIpOwog
ICAgIGF1dG9JbmNyZW1lbnQgPSBldmFsQW5kTG9nKCJhdXRvSW5jcmVtZW50ID0gZmFsc2U7Iik7
CiAgICAgb2JqZWN0U3RvcmUgPSBldmFsQW5kTG9nKCJvYmplY3RTdG9yZSA9IGRiLmNyZWF0ZU9i
amVjdFN0b3JlKCdhJywgeyBrZXlQYXRoOiAnaWQnLCBhdXRvSW5jcmVtZW50OiBhdXRvSW5jcmVt
ZW50IH0pOyIpOwogICAgIGluZGV4ZXMgPSBbCkBAIC04Miw0ICs2Miw0IEBAIGZ1bmN0aW9uIHNl
dHVwQXV0b0luY3JlbWVudCgpCiAgICAgcmVxdWVzdC5vbmVycm9yID0gdW5leHBlY3RlZEVycm9y
Q2FsbGJhY2s7CiB9CiAKLXRlc3QoKTsKK2luZGV4ZWREQlRlc3QoY2xlYW5EYXRhYmFzZSk7CmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9tb3ppbGxhL3Jlc291cmNl
cy9vYmplY3QtaWRlbnRpdHkuanMgYi9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9tb3pp
bGxhL3Jlc291cmNlcy9vYmplY3QtaWRlbnRpdHkuanMKaW5kZXggYjM5Y2RhNDNjMjhiODcyNzdi
Yjg5YjZkMDUwYTZmYWVlZGMzOWEzZC4uNTY1Yjc0OWI5YzI0OWE0ZjRjZmViZjMwNDI2ZTI2MGE4
MWE4ODhiZSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvbW96aWxs
YS9yZXNvdXJjZXMvb2JqZWN0LWlkZW50aXR5LmpzCisrKyBiL0xheW91dFRlc3RzL3N0b3JhZ2Uv
aW5kZXhlZGRiL21vemlsbGEvcmVzb3VyY2VzL29iamVjdC1pZGVudGl0eS5qcwpAQCAtMTEsMzUg
KzExLDE0IEBAIGlmICh0aGlzLmltcG9ydFNjcmlwdHMpIHsKIAogZGVzY3JpcHRpb24oIlRlc3Qg
SW5kZXhlZERCOiBvYmplY3QgaWRlbnRpdHkiKTsKIAotZnVuY3Rpb24gdGVzdCgpCi17Ci0gICAg
cmVtb3ZlVmVuZG9yUHJlZml4ZXMoKTsKLQotICAgIG5hbWUgPSBzZWxmLmxvY2F0aW9uLnBhdGhu
YW1lOwotICAgIHJlcXVlc3QgPSBldmFsQW5kTG9nKCJpbmRleGVkREIub3BlbihuYW1lKSIpOwot
ICAgIHJlcXVlc3Qub25zdWNjZXNzID0gb3BlblN1Y2Nlc3M7Ci0gICAgcmVxdWVzdC5vbmVycm9y
ID0gdW5leHBlY3RlZEVycm9yQ2FsbGJhY2s7Ci19Ci0KLWZ1bmN0aW9uIG9wZW5TdWNjZXNzKCkK
LXsKLSAgICBkYiA9IGV2YWxBbmRMb2coImRiID0gZXZlbnQudGFyZ2V0LnJlc3VsdCIpOwotICAg
IHJlcXVlc3QgPSBldmFsQW5kTG9nKCJyZXF1ZXN0ID0gZGIuc2V0VmVyc2lvbignMScpIik7Ci0g
ICAgcmVxdWVzdC5vbnN1Y2Nlc3MgPSBjcmVhdGVPYmplY3RTdG9yZUFuZEluZGV4OwotICAgIHJl
cXVlc3Qub25lcnJvciA9IHVuZXhwZWN0ZWRFcnJvckNhbGxiYWNrOwotfQotCiBmdW5jdGlvbiBj
cmVhdGVPYmplY3RTdG9yZUFuZEluZGV4KCkKIHsKLSAgICB0cmFuc2FjdGlvbiA9IGV2YWxBbmRM
b2coInRyYW5zYWN0aW9uID0gZXZlbnQudGFyZ2V0LnRyYW5zYWN0aW9uOyIpOwotICAgIGRlbGV0
ZUFsbE9iamVjdFN0b3JlcyhkYik7CiAgICAgb2JqZWN0U3RvcmUxID0gZXZhbEFuZExvZygib2Jq
ZWN0U3RvcmUxID0gZGIuY3JlYXRlT2JqZWN0U3RvcmUoJ2ZvbycpOyIpOwotICAgIG9iamVjdFN0
b3JlMiA9IGV2YWxBbmRMb2coIm9iamVjdFN0b3JlMiA9IHRyYW5zYWN0aW9uLm9iamVjdFN0b3Jl
KCdmb28nKTsiKTsKKyAgICBvYmplY3RTdG9yZTIgPSBldmFsQW5kTG9nKCJvYmplY3RTdG9yZTIg
PSB0cmFucy5vYmplY3RTdG9yZSgnZm9vJyk7Iik7CiAgICAgc2hvdWxkQmVUcnVlKCJvYmplY3RT
dG9yZTEgPT09IG9iamVjdFN0b3JlMiIpOwogICAgIGluZGV4MSA9IGV2YWxBbmRMb2coImluZGV4
MSA9IG9iamVjdFN0b3JlMS5jcmVhdGVJbmRleCgnYmFyJywgJ2tleScpOyIpOwogICAgIGluZGV4
MiA9IGV2YWxBbmRMb2coImluZGV4MiA9IG9iamVjdFN0b3JlMi5pbmRleCgnYmFyJyk7Iik7CiAg
ICAgc2hvdWxkQmVUcnVlKCJpbmRleDEgPT09IGluZGV4MiIpOwotICAgIGV2YWxBbmRMb2coInRy
YW5zYWN0aW9uLm9uY29tcGxldGUgPSB0ZXN0SWRlbnRpdHlTb21lTW9yZTsiKTsKIH0KIAogZnVu
Y3Rpb24gdGVzdElkZW50aXR5U29tZU1vcmUoKQpAQCAtNjIsNCArNDEsNCBAQCBmdW5jdGlvbiB0
ZXN0SWRlbnRpdHlTb21lTW9yZSgpCiAgICAgZmluaXNoSlNUZXN0KCk7CiB9CiAKLXRlc3QoKTsK
XCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCitpbmRleGVkREJUZXN0KGNyZWF0ZU9iamVjdFN0
b3JlQW5kSW5kZXgsIHRlc3RJZGVudGl0eVNvbWVNb3JlKTsKZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL3N0b3JhZ2UvaW5kZXhlZGRiL21vemlsbGEvcmVzb3VyY2VzL29iamVjdC1zdG9yZS1pbmxp
bmUtYXV0b2luY3JlbWVudC1rZXktYWRkZWQtb24tcHV0LmpzIGIvTGF5b3V0VGVzdHMvc3RvcmFn
ZS9pbmRleGVkZGIvbW96aWxsYS9yZXNvdXJjZXMvb2JqZWN0LXN0b3JlLWlubGluZS1hdXRvaW5j
cmVtZW50LWtleS1hZGRlZC1vbi1wdXQuanMKaW5kZXggZDc5YTc3ZjQwZTU1Y2FkOTA4NTI2YjM3
NmU0YWI5YjljM2E0ZDUyMy4uNTRlMDMwZTU0ZTU5NWM2M2M1YmIwNmFmNmM5NjY3M2Y2N2ZiNmVk
MyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvbW96aWxsYS9yZXNv
dXJjZXMvb2JqZWN0LXN0b3JlLWlubGluZS1hdXRvaW5jcmVtZW50LWtleS1hZGRlZC1vbi1wdXQu
anMKKysrIGIvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvbW96aWxsYS9yZXNvdXJjZXMv
b2JqZWN0LXN0b3JlLWlubGluZS1hdXRvaW5jcmVtZW50LWtleS1hZGRlZC1vbi1wdXQuanMKQEAg
LTExLDI4ICsxMSw4IEBAIGlmICh0aGlzLmltcG9ydFNjcmlwdHMpIHsKIAogZGVzY3JpcHRpb24o
IlRlc3QgSW5kZXhlZERCIGFkZGluZyBhbiBhdXRvaW5jcmVtZW50ZWQga2V5IGFuZCByZXRyaWV2
aW5nIGl0IHN1Y2Nlc3NmdWxseSIpOwogCi1mdW5jdGlvbiB0ZXN0KCkKLXsKLSAgICByZW1vdmVW
ZW5kb3JQcmVmaXhlcygpOwotCi0gICAgbmFtZSA9IHNlbGYubG9jYXRpb24ucGF0aG5hbWU7Ci0g
ICAgcmVxdWVzdCA9IGV2YWxBbmRMb2coImluZGV4ZWREQi5vcGVuKG5hbWUpIik7Ci0gICAgcmVx
dWVzdC5vbnN1Y2Nlc3MgPSBvcGVuU3VjY2VzczsKLSAgICByZXF1ZXN0Lm9uZXJyb3IgPSB1bmV4
cGVjdGVkRXJyb3JDYWxsYmFjazsKLX0KLQotZnVuY3Rpb24gb3BlblN1Y2Nlc3MoKQotewotICAg
IGRiID0gZXZhbEFuZExvZygiZGIgPSBldmVudC50YXJnZXQucmVzdWx0Iik7Ci0KLSAgICByZXF1
ZXN0ID0gZXZhbEFuZExvZygicmVxdWVzdCA9IGRiLnNldFZlcnNpb24oJzEnKSIpOwotICAgIHJl
cXVlc3Qub25zdWNjZXNzID0gc2V0dXBPYmplY3RTdG9yZTsKLSAgICByZXF1ZXN0Lm9uZXJyb3Ig
PSB1bmV4cGVjdGVkRXJyb3JDYWxsYmFjazsKLX0KLQogZnVuY3Rpb24gc2V0dXBPYmplY3RTdG9y
ZSgpCiB7Ci0gICAgZGVsZXRlQWxsT2JqZWN0U3RvcmVzKGRiKTsKICAgICB0ZXN0ID0gZXZhbEFu
ZExvZygidGVzdCA9IHtcbiIgKwogIiAgICAgICAgbmFtZTogJ2lubGluZSBrZXk7IGtleSBnZW5l
cmF0b3InLFxuIiArCiAiICAgICAgICBhdXRvSW5jcmVtZW50OiB0cnVlLFxuIiArCkBAIC02MCw0
ICs0MCw0IEBAIGZ1bmN0aW9uIGdldFN1Y2Nlc3MoKQogICAgIGZpbmlzaEpTVGVzdCgpOwogfQog
Ci10ZXN0KCk7ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQoraW5kZXhlZERCVGVzdChzZXR1
cE9iamVjdFN0b3JlKTsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRi
L21vemlsbGEvcmVzb3VyY2VzL29iamVjdHN0b3JlbmFtZXMuanMgYi9MYXlvdXRUZXN0cy9zdG9y
YWdlL2luZGV4ZWRkYi9tb3ppbGxhL3Jlc291cmNlcy9vYmplY3RzdG9yZW5hbWVzLmpzCmluZGV4
IDNmNWExMDIyODcyMDlhMjRiY2U3ZTQyNzVjNmM5MTViNjdiZGE2NzEuLjhhZjQzMjU4MDVmMzU0
ODBlZDIxOTM1MjM4NDg1YTk5MzNmNTEwZGUgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3N0b3Jh
Z2UvaW5kZXhlZGRiL21vemlsbGEvcmVzb3VyY2VzL29iamVjdHN0b3JlbmFtZXMuanMKKysrIGIv
TGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvbW96aWxsYS9yZXNvdXJjZXMvb2JqZWN0c3Rv
cmVuYW1lcy5qcwpAQCAtMTEsMjUgKzExLDYgQEAgaWYgKHRoaXMuaW1wb3J0U2NyaXB0cykgewog
CiBkZXNjcmlwdGlvbigiVGVzdCBJbmRleGVkREIncyBvYmplY3RTdG9yZU5hbWVzIGFycmF5Iik7
CiAKLWZ1bmN0aW9uIHRlc3QoKQotewotICAgIHJlbW92ZVZlbmRvclByZWZpeGVzKCk7Ci0KLSAg
ICBuYW1lID0gc2VsZi5sb2NhdGlvbi5wYXRobmFtZTsKLSAgICByZXF1ZXN0ID0gZXZhbEFuZExv
ZygiaW5kZXhlZERCLm9wZW4obmFtZSkiKTsKLSAgICByZXF1ZXN0Lm9uc3VjY2VzcyA9IG9wZW5T
dWNjZXNzOwotICAgIHJlcXVlc3Qub25lcnJvciA9IHVuZXhwZWN0ZWRFcnJvckNhbGxiYWNrOwot
fQotCi1mdW5jdGlvbiBvcGVuU3VjY2VzcygpCi17Ci0gICAgZGIgPSBldmFsQW5kTG9nKCJkYiA9
IGV2ZW50LnRhcmdldC5yZXN1bHQiKTsKLQotICAgIHJlcXVlc3QgPSBldmFsQW5kTG9nKCJyZXF1
ZXN0ID0gZGIuc2V0VmVyc2lvbignMScpIik7Ci0gICAgcmVxdWVzdC5vbnN1Y2Nlc3MgPSBjbGVh
bkRhdGFiYXNlOwotICAgIHJlcXVlc3Qub25lcnJvciA9IHVuZXhwZWN0ZWRFcnJvckNhbGxiYWNr
OwotfQotCiBmdW5jdGlvbiBjbGVhbkRhdGFiYXNlKCkKIHsKICAgICBkZWxldGVBbGxPYmplY3RT
dG9yZXMoZGIpOwpAQCAtNDMsNCArMjQsNCBAQCBmdW5jdGlvbiBjbGVhbkRhdGFiYXNlKCkKICAg
ICBmaW5pc2hKU1Rlc3QoKTsKIH0KIAotdGVzdCgpOwpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZp
bGUKK2luZGV4ZWREQlRlc3QoY2xlYW5EYXRhYmFzZSk7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9zdG9yYWdlL2luZGV4ZWRkYi9tb3ppbGxhL3Jlc291cmNlcy9vZGQtcmVzdWx0LW9yZGVyLmpz
IGIvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvbW96aWxsYS9yZXNvdXJjZXMvb2RkLXJl
c3VsdC1vcmRlci5qcwppbmRleCAzNmY4NWNiNGIyN2RiMzgzM2IzN2U2ZTk2Y2VlM2UyNmQwMDc1
NjhlLi42Mjk2OGUwM2ZlNzAzYzU3MDdkODM2NDhhMzkxOTJlOTBlMDY3MjIwIDEwMDY0NAotLS0g
YS9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9tb3ppbGxhL3Jlc291cmNlcy9vZGQtcmVz
dWx0LW9yZGVyLmpzCisrKyBiL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL21vemlsbGEv
cmVzb3VyY2VzL29kZC1yZXN1bHQtb3JkZXIuanMKQEAgLTExLDQzICsxMSwxMiBAQCBpZiAodGhp
cy5pbXBvcnRTY3JpcHRzKSB7CiAKIGRlc2NyaXB0aW9uKCJUZXN0IEluZGV4ZWREQjogcmVxdWVz
dCByZXN1bHQgcGVyc2lzdHMgaW4gc2V0VGltZW91dCBjYWxsYmFjayIpOwogCi1mdW5jdGlvbiB0
ZXN0KCkKLXsKLSAgICByZW1vdmVWZW5kb3JQcmVmaXhlcygpOwotCi0gICAgbmFtZSA9IHNlbGYu
bG9jYXRpb24ucGF0aG5hbWU7Ci0gICAgcmVxdWVzdCA9IGV2YWxBbmRMb2coImluZGV4ZWREQi5v
cGVuKG5hbWUpIik7Ci0gICAgcmVxdWVzdC5vbnN1Y2Nlc3MgPSBvcGVuU3VjY2VzczsKLSAgICBy
ZXF1ZXN0Lm9uZXJyb3IgPSB1bmV4cGVjdGVkRXJyb3JDYWxsYmFjazsKLX0KLQotZnVuY3Rpb24g
b3BlblN1Y2Nlc3MoKQotewotICAgIGRlYnVnKCJvcGVuU3VjY2VzcygpOiIpOwotICAgIGRiID0g
ZXZhbEFuZExvZygiZGIgPSBudWxsOyIpOwotICAgIHNldFRpbWVvdXQoZnVuY3Rpb24oKSB7Ci0g
ICAgICAgIGRiID0gZXZhbEFuZExvZygiZGIgPSByZXF1ZXN0LnJlc3VsdDsiKTsKLSAgICAgICAg
Y2hlY2tEYXRhYmFzZVR5cGUoKTsKLSAgICB9LCAwKTsKLX0KLQotZnVuY3Rpb24gY2hlY2tEYXRh
YmFzZVR5cGUoKQotewotICAgIGRlYnVnKCJjaGVja0RhdGFiYXNlVHlwZSgpOiIpOwotICAgIHNo
b3VsZEJlVHJ1ZSgiZGIgaW5zdGFuY2VvZiBJREJEYXRhYmFzZSIpOwotICAgIGRiLm9uZXJyb3Ig
PSB1bmV4cGVjdGVkRXJyb3JDYWxsYmFjazsKLSAgICByZXF1ZXN0ID0gZXZhbEFuZExvZygicmVx
dWVzdCA9IGRiLnNldFZlcnNpb24oJzEnKSIpOwotICAgIHJlcXVlc3Qub25zdWNjZXNzID0gc2V0
dXBPYmplY3RTdG9yZTsKLSAgICByZXF1ZXN0Lm9uZXJyb3IgPSB1bmV4cGVjdGVkRXJyb3JDYWxs
YmFjazsKLX0KLQogZnVuY3Rpb24gc2V0dXBPYmplY3RTdG9yZSgpCiB7CiAgICAgZGVidWcoInNl
dHVwT2JqZWN0U3RvcmUoKToiKTsKLSAgICBkZWxldGVBbGxPYmplY3RTdG9yZXMoZGIpOworICAg
IHNob3VsZEJlVHJ1ZSgiZGIgaW5zdGFuY2VvZiBJREJEYXRhYmFzZSIpOwogICAgIG9iamVjdFN0
b3JlID0gZXZhbEFuZExvZygib2JqZWN0U3RvcmUgPSBkYi5jcmVhdGVPYmplY3RTdG9yZSgnZm9v
JywgeyBrZXlQYXRoOiAna2V5JywgYXV0b0luY3JlbWVudDogdHJ1ZSB9KTsiKTsKICAgICBpbmRl
eCA9IGV2YWxBbmRMb2coImluZGV4ID0gb2JqZWN0U3RvcmUuY3JlYXRlSW5kZXgoJ2ZvbycsICdp
bmRleCcpOyIpOwotICAgIGV2YWxBbmRMb2coImV2ZW50LnRhcmdldC50cmFuc2FjdGlvbi5vbmNv
bXBsZXRlID0gYWRkUmVjb3JkOyIpOwogfQogCiBmdW5jdGlvbiBhZGRSZWNvcmQoKQpAQCAtMTEz
LDQgKzgyLDQgQEAgZnVuY3Rpb24gZGVsZXRlU3VjY2VzcygpCiAgICAgZmluaXNoSlNUZXN0KCk7
CiB9CiAKLXRlc3QoKTsKXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCitpbmRleGVkREJUZXN0
KHNldHVwT2JqZWN0U3RvcmUsIGFkZFJlY29yZCk7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9z
dG9yYWdlL2luZGV4ZWRkYi9tb3ppbGxhL3Jlc291cmNlcy9wdXQtZ2V0LXZhbHVlcy5qcyBiL0xh
eW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL21vemlsbGEvcmVzb3VyY2VzL3B1dC1nZXQtdmFs
dWVzLmpzCmluZGV4IGU0MzA2YmJkODgyNzQyNjkwMzNjZTQyZTY0YTkyNGI3ZDk2NGY1MWYuLjRj
YThlNmNmZjE4OWY0NTVlYmNiOGY3OWVjM2NjYmE4OWIwOWUwZTggMTAwNjQ0Ci0tLSBhL0xheW91
dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL21vemlsbGEvcmVzb3VyY2VzL3B1dC1nZXQtdmFsdWVz
LmpzCisrKyBiL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL21vemlsbGEvcmVzb3VyY2Vz
L3B1dC1nZXQtdmFsdWVzLmpzCkBAIC0xMSwyOCArMTEsOCBAQCBpZiAodGhpcy5pbXBvcnRTY3Jp
cHRzKSB7CiAKIGRlc2NyaXB0aW9uKCJUZXN0IEluZGV4ZWREQidzIHB1dHRpbmcgYW5kIGdldHRp
bmcgdmFsdWVzIGluIGFuIG9iamVjdCBzdG9yZSIpOwogCi1mdW5jdGlvbiB0ZXN0KCkKLXsKLSAg
ICByZW1vdmVWZW5kb3JQcmVmaXhlcygpOwotCi0gICAgbmFtZSA9IHNlbGYubG9jYXRpb24ucGF0
aG5hbWU7Ci0gICAgcmVxdWVzdCA9IGV2YWxBbmRMb2coImluZGV4ZWREQi5vcGVuKG5hbWUpIik7
Ci0gICAgcmVxdWVzdC5vbnN1Y2Nlc3MgPSBvcGVuU3VjY2VzczsKLSAgICByZXF1ZXN0Lm9uZXJy
b3IgPSB1bmV4cGVjdGVkRXJyb3JDYWxsYmFjazsKLX0KLQotZnVuY3Rpb24gb3BlblN1Y2Nlc3Mo
KQotewotICAgIGRiID0gZXZhbEFuZExvZygiZGIgPSBldmVudC50YXJnZXQucmVzdWx0Iik7Ci0g
ICAgcmVxdWVzdCA9IGV2YWxBbmRMb2coInJlcXVlc3QgPSBkYi5zZXRWZXJzaW9uKCcxJykiKTsK
LSAgICByZXF1ZXN0Lm9uc3VjY2VzcyA9IGNsZWFuRGF0YWJhc2U7Ci0gICAgcmVxdWVzdC5vbmVy
cm9yID0gdW5leHBlY3RlZEVycm9yQ2FsbGJhY2s7Ci19Ci0KIGZ1bmN0aW9uIGNsZWFuRGF0YWJh
c2UoKQogewotICAgIGRlbGV0ZUFsbE9iamVjdFN0b3JlcyhkYik7Ci0KICAgICB0ZXN0U3RyaW5n
ID0gZXZhbEFuZExvZygidGVzdFN0cmluZyA9IHsga2V5OiAwLCB2YWx1ZTogJ3Rlc3RTdHJpbmcn
IH07Iik7CiAgICAgdGVzdEludCA9IGV2YWxBbmRMb2coInRlc3RJbnQgPSB7IGtleTogMSwgdmFs
dWU6IDEwMDIgfTsiKTsKICAgICBvYmplY3RTdG9yZSA9IGV2YWxBbmRMb2coIm9iamVjdFN0b3Jl
ID0gZGIuY3JlYXRlT2JqZWN0U3RvcmUoJ09iamVjdHMnLCB7IGF1dG9JbmNyZW1lbnQ6IGZhbHNl
IH0pOyIpOwpAQCAtMTA0LDQgKzg0LDQgQEAgZnVuY3Rpb24gcG9zdEdldEludEF1dG9JbmNyZW1l
bnQoKQogICAgIGZpbmlzaEpTVGVzdCgpOwogfQogCi10ZXN0KCk7ClwgTm8gbmV3bGluZSBhdCBl
bmQgb2YgZmlsZQoraW5kZXhlZERCVGVzdChjbGVhbkRhdGFiYXNlKTsKZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL21vemlsbGEvcmVzb3VyY2VzL3JlYWRvbmx5LXRy
YW5zYWN0aW9ucy5qcyBiL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL21vemlsbGEvcmVz
b3VyY2VzL3JlYWRvbmx5LXRyYW5zYWN0aW9ucy5qcwppbmRleCA0YTk0M2JlZmE1ZDRmY2ZmNzI4
YWI0NGFmOTU4NjI3ZDY4ZTYzNzUwLi5lMGNlZjE2ZDU0YTc4NDBiMGYzOTAzOTQ1NjdlODFiMjYx
MTI1NTk1IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9tb3ppbGxh
L3Jlc291cmNlcy9yZWFkb25seS10cmFuc2FjdGlvbnMuanMKKysrIGIvTGF5b3V0VGVzdHMvc3Rv
cmFnZS9pbmRleGVkZGIvbW96aWxsYS9yZXNvdXJjZXMvcmVhZG9ubHktdHJhbnNhY3Rpb25zLmpz
CkBAIC0xMSwzMiArMTEsMTAgQEAgaWYgKHRoaXMuaW1wb3J0U2NyaXB0cykgewogCiBkZXNjcmlw
dGlvbigiVGVzdCBJbmRleGVkREIncyByZWFkb25seSB0cmFuc2FjdGlvbnMiKTsKIAotZnVuY3Rp
b24gdGVzdCgpCi17Ci0gICAgcmVtb3ZlVmVuZG9yUHJlZml4ZXMoKTsKLQotICAgIG5hbWUgPSBz
ZWxmLmxvY2F0aW9uLnBhdGhuYW1lOwotICAgIHJlcXVlc3QgPSBldmFsQW5kTG9nKCJpbmRleGVk
REIub3BlbihuYW1lKSIpOwotICAgIHJlcXVlc3Qub25zdWNjZXNzID0gb3BlblN1Y2Nlc3M7Ci0g
ICAgcmVxdWVzdC5vbmVycm9yID0gdW5leHBlY3RlZEVycm9yQ2FsbGJhY2s7Ci19Ci0KLWZ1bmN0
aW9uIG9wZW5TdWNjZXNzKCkKLXsKLSAgICBkYiA9IGV2YWxBbmRMb2coImRiID0gZXZlbnQudGFy
Z2V0LnJlc3VsdCIpOwotCi0gICAgcmVxdWVzdCA9IGV2YWxBbmRMb2coInJlcXVlc3QgPSBkYi5z
ZXRWZXJzaW9uKCcxJykiKTsKLSAgICByZXF1ZXN0Lm9uc3VjY2VzcyA9IGNsZWFuRGF0YWJhc2U7
Ci0gICAgcmVxdWVzdC5vbmVycm9yID0gdW5leHBlY3RlZEVycm9yQ2FsbGJhY2s7Ci19Ci0KIGZ1
bmN0aW9uIGNsZWFuRGF0YWJhc2UoKQogewotICAgIGRlbGV0ZUFsbE9iamVjdFN0b3JlcyhkYik7
Ci0KICAgICBvc05hbWUgPSAidGVzdCBzdG9yZSI7CiAgICAgb2JqZWN0U3RvcmUgPSBldmFsQW5k
TG9nKCJvYmplY3RTdG9yZSA9IGRiLmNyZWF0ZU9iamVjdFN0b3JlKG9zTmFtZSwgeyBhdXRvSW5j
cmVtZW50OiB0cnVlIH0pOyIpOwotICAgIGV2ZW50LnRhcmdldC5yZXN1bHQub25jb21wbGV0ZSA9
IHNldFZlcnNpb25Db21wbGV0ZTsKIH0KIAogZnVuY3Rpb24gc2V0VmVyc2lvbkNvbXBsZXRlKCkK
QEAgLTU0LDQgKzMyLDQgQEAgZnVuY3Rpb24gc2V0VmVyc2lvbkNvbXBsZXRlKCkKICAgICBmaW5p
c2hKU1Rlc3QoKTsKIH0KIAotdGVzdCgpOwpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKK2lu
ZGV4ZWREQlRlc3QoY2xlYW5EYXRhYmFzZSwgc2V0VmVyc2lvbkNvbXBsZXRlKTsKZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL21vemlsbGEvcmVzb3VyY2VzL3JlYWR3
cml0ZS10cmFuc2FjdGlvbnMuanMgYi9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9tb3pp
bGxhL3Jlc291cmNlcy9yZWFkd3JpdGUtdHJhbnNhY3Rpb25zLmpzCmluZGV4IGFhZmE2ZjNlZTlj
ZjBjZGQ1ZDIzYTNjZTMzNGJkNmQ5ZDRlNGI5OTguLmQxNzU3MzJlYjMwM2FmNWZhMzFlOGQ5YjBm
MDdkYTM4MThhOWJmOGMgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRi
L21vemlsbGEvcmVzb3VyY2VzL3JlYWR3cml0ZS10cmFuc2FjdGlvbnMuanMKKysrIGIvTGF5b3V0
VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvbW96aWxsYS9yZXNvdXJjZXMvcmVhZHdyaXRlLXRyYW5z
YWN0aW9ucy5qcwpAQCAtMTEsMzIgKzExLDEwIEBAIGlmICh0aGlzLmltcG9ydFNjcmlwdHMpIHsK
IAogZGVzY3JpcHRpb24oIlRlc3QgSW5kZXhlZERCJ3MgcmVhZC93cml0ZSB0cmFuc2FjdGlvbnMi
KTsKIAotZnVuY3Rpb24gdGVzdCgpCi17Ci0gICAgcmVtb3ZlVmVuZG9yUHJlZml4ZXMoKTsKLQot
ICAgIG5hbWUgPSBzZWxmLmxvY2F0aW9uLnBhdGhuYW1lOwotICAgIHJlcXVlc3QgPSBldmFsQW5k
TG9nKCJpbmRleGVkREIub3BlbihuYW1lKSIpOwotICAgIHJlcXVlc3Qub25zdWNjZXNzID0gb3Bl
blN1Y2Nlc3M7Ci0gICAgcmVxdWVzdC5vbmVycm9yID0gdW5leHBlY3RlZEVycm9yQ2FsbGJhY2s7
Ci19Ci0KLWZ1bmN0aW9uIG9wZW5TdWNjZXNzKCkKLXsKLSAgICBkYiA9IGV2YWxBbmRMb2coImRi
ID0gZXZlbnQudGFyZ2V0LnJlc3VsdCIpOwotCi0gICAgcmVxdWVzdCA9IGV2YWxBbmRMb2coInJl
cXVlc3QgPSBkYi5zZXRWZXJzaW9uKCcxJykiKTsKLSAgICByZXF1ZXN0Lm9uc3VjY2VzcyA9IGNs
ZWFuRGF0YWJhc2U7Ci0gICAgcmVxdWVzdC5vbmVycm9yID0gdW5leHBlY3RlZEVycm9yQ2FsbGJh
Y2s7Ci19Ci0KIGZ1bmN0aW9uIGNsZWFuRGF0YWJhc2UoKQogewotICAgIGRlbGV0ZUFsbE9iamVj
dFN0b3JlcyhkYik7Ci0KICAgICBvc05hbWUgPSAidGVzdCBzdG9yZSI7CiAgICAgb2JqZWN0U3Rv
cmUgPSBldmFsQW5kTG9nKCJvYmplY3RTdG9yZSA9IGRiLmNyZWF0ZU9iamVjdFN0b3JlKG9zTmFt
ZSwgeyBhdXRvSW5jcmVtZW50OiB0cnVlIH0pOyIpOwotICAgIGV2ZW50LnRhcmdldC5yZXN1bHQu
b25jb21wbGV0ZSA9IHNldFZlcnNpb25Db21wbGV0ZTsKIH0KIAogZnVuY3Rpb24gc2V0VmVyc2lv
bkNvbXBsZXRlKCkKQEAgLTExMCw0ICs4OCw0IEBAIGZ1bmN0aW9uIHBvc3REZWxldGUyKCkKICAg
ICBmaW5pc2hKU1Rlc3QoKTsKIH0KIAotdGVzdCgpOwpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZp
bGUKK2luZGV4ZWREQlRlc3QoY2xlYW5EYXRhYmFzZSwgc2V0VmVyc2lvbkNvbXBsZXRlKTsKZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL21vemlsbGEvcmVzb3VyY2Vz
L3JlbW92ZS1pbmRleC5qcyBiL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL21vemlsbGEv
cmVzb3VyY2VzL3JlbW92ZS1pbmRleC5qcwppbmRleCA0OTZkZGE2YTg1OWEwYmY2YzRiMDQ4MTI0
ZDM3MjcyOWM2NmE1NzAxLi4zZThmM2FiMDQ0YzFhOWUzOTQ1OWViZGIxODZmZWVmMjc5YTU4N2M3
IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9tb3ppbGxhL3Jlc291
cmNlcy9yZW1vdmUtaW5kZXguanMKKysrIGIvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIv
bW96aWxsYS9yZXNvdXJjZXMvcmVtb3ZlLWluZGV4LmpzCkBAIC0xMSwyOSArMTEsOCBAQCBpZiAo
dGhpcy5pbXBvcnRTY3JpcHRzKSB7CiAKIGRlc2NyaXB0aW9uKCJUZXN0IEluZGV4ZWREQidzIGNy
ZWF0aW5nIGFuZCBkZWxldGluZyBpbmRleGVzIik7CiAKLWZ1bmN0aW9uIHRlc3QoKQotewotICAg
IHJlbW92ZVZlbmRvclByZWZpeGVzKCk7Ci0KLSAgICBuYW1lID0gc2VsZi5sb2NhdGlvbi5wYXRo
bmFtZTsKLSAgICByZXF1ZXN0ID0gZXZhbEFuZExvZygiaW5kZXhlZERCLm9wZW4obmFtZSkiKTsK
LSAgICByZXF1ZXN0Lm9uc3VjY2VzcyA9IG9wZW5TdWNjZXNzOwotICAgIHJlcXVlc3Qub25lcnJv
ciA9IHVuZXhwZWN0ZWRFcnJvckNhbGxiYWNrOwotfQotCi1mdW5jdGlvbiBvcGVuU3VjY2Vzcygp
Ci17Ci0gICAgZGIgPSBldmFsQW5kTG9nKCJkYiA9IGV2ZW50LnRhcmdldC5yZXN1bHQiKTsKLQot
ICAgIHJlcXVlc3QgPSBldmFsQW5kTG9nKCJyZXF1ZXN0ID0gZGIuc2V0VmVyc2lvbignMScpIik7
Ci0gICAgcmVxdWVzdC5vbnN1Y2Nlc3MgPSBjcmVhdGVBbmREZWxldGVJbmRleDsKLSAgICByZXF1
ZXN0Lm9uZXJyb3IgPSB1bmV4cGVjdGVkRXJyb3JDYWxsYmFjazsKLX0KLQogZnVuY3Rpb24gY3Jl
YXRlQW5kRGVsZXRlSW5kZXgoKQogewotICAgIGRlbGV0ZUFsbE9iamVjdFN0b3JlcyhkYik7Ci0K
ICAgICBvYmplY3RTdG9yZU5hbWUgPSAidGVzdCBzdG9yZSI7CiAgICAgb2JqZWN0U3RvcmUgPSBl
dmFsQW5kTG9nKCJvYmplY3RTdG9yZSA9IGRiLmNyZWF0ZU9iamVjdFN0b3JlKG9iamVjdFN0b3Jl
TmFtZSwgeyBrZXlQYXRoOiAnZm9vJyB9KTsiKTsKICAgICBzaG91bGRCZSgiZGIub2JqZWN0U3Rv
cmVOYW1lcy5sZW5ndGgiLCAiMSIpOwpAQCAtNDcsOCArMjYsNiBAQCBmdW5jdGlvbiBjcmVhdGVB
bmREZWxldGVJbmRleCgpCiAKICAgICBldmFsQW5kTG9nKCJvYmplY3RTdG9yZS5kZWxldGVJbmRl
eChpbmRleE5hbWUpOyIpOwogICAgIHNob3VsZEJlKCJvYmplY3RTdG9yZS5pbmRleE5hbWVzLmxl
bmd0aCIsICIwIik7Ci0KLSAgICBmaW5pc2hKU1Rlc3QoKTsKIH0KIAotdGVzdCgpOwpcIE5vIG5l
d2xpbmUgYXQgZW5kIG9mIGZpbGUKK2luZGV4ZWREQlRlc3QoY3JlYXRlQW5kRGVsZXRlSW5kZXgs
IGZpbmlzaEpTVGVzdCk7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRk
Yi9tdXRhdGluZy1jdXJzb3ItZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRl
eGVkZGIvbXV0YXRpbmctY3Vyc29yLWV4cGVjdGVkLnR4dAppbmRleCAwZTBjZDdjNmQ4OGM2MmMy
YzE5YjEwYzRiNTJkNTUxZGJhZmVmMjIyLi45ZmEwYWQ0ZGZjNTFiZDg5YjE2ZDEyMGQ4Njg2NWJk
ODViMzNkODY4IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9tdXRh
dGluZy1jdXJzb3ItZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhl
ZGRiL211dGF0aW5nLWN1cnNvci1leHBlY3RlZC50eHQKQEAgLTUsMTMgKzUsMTAgQEAgT24gc3Vj
Y2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQg
YnkgIlRFU1QgQ09NUExFVEUKIAogaW5kZXhlZERCID0gc2VsZi5pbmRleGVkREIgfHwgc2VsZi53
ZWJraXRJbmRleGVkREIgfHwgc2VsZi5tb3pJbmRleGVkREIgfHwgc2VsZi5tc0luZGV4ZWREQiB8
fCBzZWxmLk9JbmRleGVkREI7CiAKLWluZGV4ZWREQi5vcGVuKCdtdXRhdGluZy1jdXJzb3InKQot
ZGIgPSBldmVudC50YXJnZXQucmVzdWx0CitkYm5hbWUgPSBzZWxmLmxvY2F0aW9uLnBhdGhuYW1l
CitpbmRleGVkREIuZGVsZXRlRGF0YWJhc2UoZGJuYW1lKQoraW5kZXhlZERCLm9wZW4oZGJuYW1l
KQogZGIuc2V0VmVyc2lvbignMScpCi1zZXRWZXJzaW9uU3VjY2VzcygpOgotdHJhbnMgPSBldmVu
dC50YXJnZXQucmVzdWx0Ci1QQVNTIHRyYW5zIGlzIG5vbi1udWxsLgotRGVsZXRlZCBhbGwgb2Jq
ZWN0IHN0b3Jlcy4KIG9iamVjdFN0b3JlID0gZGIuY3JlYXRlT2JqZWN0U3RvcmUoJ3N0b3JlJykK
IG9iamVjdFN0b3JlLmFkZCgxLCAxKS5vbmVycm9yID0gdW5leHBlY3RlZEVycm9yQ2FsbGJhY2sK
IG9iamVjdFN0b3JlLmFkZCgyLCAyKS5vbmVycm9yID0gdW5leHBlY3RlZEVycm9yQ2FsbGJhY2sK
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL25vYmxvYnMtZXhwZWN0
ZWQudHh0IGIvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvbm9ibG9icy1leHBlY3RlZC50
eHQKaW5kZXggNTU4Yzg3YTgxNjc4YTc5NTZjYTQ2MWYyZGNhZjExNGFjYzRjYzg2Yi4uNjlmNDg4
ZWMwMzBlZjE0YzVjYzBjMjNlYzhkN2E2MzUyNDQ2YzJlNiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVz
dHMvc3RvcmFnZS9pbmRleGVkZGIvbm9ibG9icy1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVz
dHMvc3RvcmFnZS9pbmRleGVkZGIvbm9ibG9icy1leHBlY3RlZC50eHQKQEAgLTUsMTIgKzUsOSBA
QCBPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBm
b2xsb3dlZCBieSAiVEVTVCBDT01QTEVURQogCiBpbmRleGVkREIgPSBzZWxmLmluZGV4ZWREQiB8
fCBzZWxmLndlYmtpdEluZGV4ZWREQiB8fCBzZWxmLm1vekluZGV4ZWREQiB8fCBzZWxmLm1zSW5k
ZXhlZERCIHx8IHNlbGYuT0luZGV4ZWREQjsKIAotCi1QcmVwYXJlIERhdGFiYXNlCi1pbmRleGVk
REIuZGVsZXRlRGF0YWJhc2UoJ25vYmxvYnMnKQotaW5kZXhlZERCLm9wZW4oJ25vYmxvYnMnKQot
ZGIgPSByZXF1ZXN0LnJlc3VsdAotUEFTUyBkYi52ZXJzaW9uIGlzICIiCitkYm5hbWUgPSBzZWxm
LmxvY2F0aW9uLnBhdGhuYW1lCitpbmRleGVkREIuZGVsZXRlRGF0YWJhc2UoZGJuYW1lKQoraW5k
ZXhlZERCLm9wZW4oZGJuYW1lKQogZGIuc2V0VmVyc2lvbignMScpCiBzdG9yZSA9IGRiLmNyZWF0
ZU9iamVjdFN0b3JlKCdzdG9yZU5hbWUnKQogc3RvcmUucHV0KCd2YWx1ZScsICdrZXknKQpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvbm9ibG9icy5odG1sIGIvTGF5
b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvbm9ibG9icy5odG1sCmluZGV4IDgzMTg2NmI5ZTUy
NDgxYmExMGI1ZWNiZGE5NTVjNTAxOGNkZjk1ZWUuLmFkZmYwM2Y1M2EyNGFjNjA1Y2ZiMTc1Yjky
NzIwNWY3NDgwODU3OGYgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRi
L25vYmxvYnMuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9ub2Jsb2Jz
Lmh0bWwKQEAgLTIzLDM0ICsyMywxMyBAQCBpZiAod2luZG93LmV2ZW50U2VuZGVyKSB7CiAKIGZ1
bmN0aW9uIHRlc3QoKQogewotICAgIHJlbW92ZVZlbmRvclByZWZpeGVzKCk7Ci0gICAgcHJlcGFy
ZURhdGFiYXNlKCk7CisgICAgaW5kZXhlZERCVGVzdChwcmVwYXJlRGF0YWJhc2UsIHRlc3RCbG9i
KTsKIH0KIAogZnVuY3Rpb24gcHJlcGFyZURhdGFiYXNlKCkKIHsKLSAgICBkZWJ1ZygiIik7Ci0g
ICAgZGVidWcoIlByZXBhcmUgRGF0YWJhc2UiKTsKLSAgICByZXF1ZXN0ID0gZXZhbEFuZExvZygi
aW5kZXhlZERCLmRlbGV0ZURhdGFiYXNlKCdub2Jsb2JzJykiKTsKLSAgICByZXF1ZXN0Lm9uZXJy
b3IgPSB1bmV4cGVjdGVkRXJyb3JDYWxsYmFjazsKLSAgICByZXF1ZXN0Lm9uc3VjY2VzcyA9IGZ1
bmN0aW9uKGUpIHsKLSAgICAgICAgcmVxdWVzdCA9IGV2YWxBbmRMb2coImluZGV4ZWREQi5vcGVu
KCdub2Jsb2JzJykiKTsKLSAgICAgICAgcmVxdWVzdC5vbmVycm9yID0gdW5leHBlY3RlZEVycm9y
Q2FsbGJhY2s7Ci0gICAgICAgIHJlcXVlc3Qub25zdWNjZXNzID0gZnVuY3Rpb24oZSkgewotICAg
ICAgICAgICAgZXZhbEFuZExvZygiZGIgPSByZXF1ZXN0LnJlc3VsdCIpOwotICAgICAgICAgICAg
c2hvdWxkQmVFcXVhbFRvU3RyaW5nKCJkYi52ZXJzaW9uIiwgIiIpOwotICAgICAgICAgICAgcmVx
dWVzdCA9IGV2YWxBbmRMb2coImRiLnNldFZlcnNpb24oJzEnKSIpOwotICAgICAgICAgICAgcmVx
dWVzdC5vbmVycm9yID0gdW5leHBlY3RlZEVycm9yQ2FsbGJhY2s7Ci0gICAgICAgICAgICByZXF1
ZXN0Lm9uc3VjY2VzcyA9IGZ1bmN0aW9uKGUpIHsKLSAgICAgICAgICAgICAgICBldmFsQW5kTG9n
KCJzdG9yZSA9IGRiLmNyZWF0ZU9iamVjdFN0b3JlKCdzdG9yZU5hbWUnKSIpOwotICAgICAgICAg
ICAgICAgIGV2YWxBbmRMb2coInN0b3JlLnB1dCgndmFsdWUnLCAna2V5JykiKTsKLSAgICAgICAg
ICAgICAgICB2YXIgdHJhbnMgPSByZXF1ZXN0LnJlc3VsdDsKLSAgICAgICAgICAgICAgICB0cmFu
cy5vbmVycm9yID0gdW5leHBlY3RlZEVycm9yQ2FsbGJhY2s7Ci0gICAgICAgICAgICAgICAgdHJh
bnMub25hYm9ydCA9IHVuZXhwZWN0ZWRBYm9ydENhbGxiYWNrOwotICAgICAgICAgICAgICAgIHRy
YW5zLm9uY29tcGxldGUgPSB0ZXN0QmxvYjsKLSAgICAgICAgICAgIH07Ci0gICAgICAgIH07Ci0g
ICAgfTsKKyAgICBldmFsQW5kTG9nKCJzdG9yZSA9IGRiLmNyZWF0ZU9iamVjdFN0b3JlKCdzdG9y
ZU5hbWUnKSIpOworICAgIGV2YWxBbmRMb2coInN0b3JlLnB1dCgndmFsdWUnLCAna2V5JykiKTsK
IH0KIAogZnVuY3Rpb24gdGVzdEJsb2IoKQpAQCAtMTAzLDYgKzgyLDcgQEAgaWYgKHdpbmRvdy5l
dmVudFNlbmRlcikgewogICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJmaWxlSW5wdXQiKS5v
bmNoYW5nZSA9IHRlc3Q7CiB9CiAKKwogPC9zY3JpcHQ+CiA8c2NyaXB0IHNyYz0iLi4vLi4vZmFz
dC9qcy9yZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KIDwvYm9keT4KZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL29iamVjdFN0b3JlLXJlcXVpcmVk
LWFyZ3VtZW50cy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9v
YmplY3RTdG9yZS1yZXF1aXJlZC1hcmd1bWVudHMtZXhwZWN0ZWQudHh0CmluZGV4IDI2MTMzY2I1
ZGU3ZWMwNzMzNzliYjYzZjlmYzg2YzJkYmQyODY2NWQuLjk0NmQ3ZGMyMDQwZDNhOTljOTUyNjdk
ZTk4ZGYzOTQyNDgxZjk1MDQgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhl
ZGRiL29iamVjdFN0b3JlLXJlcXVpcmVkLWFyZ3VtZW50cy1leHBlY3RlZC50eHQKKysrIGIvTGF5
b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvb2JqZWN0U3RvcmUtcmVxdWlyZWQtYXJndW1lbnRz
LWV4cGVjdGVkLnR4dApAQCAtNSwxMCArNSwxMCBAQCBPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUg
YSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURQog
CiBpbmRleGVkREIgPSBzZWxmLmluZGV4ZWREQiB8fCBzZWxmLndlYmtpdEluZGV4ZWREQiB8fCBz
ZWxmLm1vekluZGV4ZWREQiB8fCBzZWxmLm1zSW5kZXhlZERCIHx8IHNlbGYuT0luZGV4ZWREQjsK
IAotaW5kZXhlZERCLm9wZW4obmFtZSkKLWRiID0gZXZlbnQudGFyZ2V0LnJlc3VsdAotcmVxdWVz
dCA9IGRiLnNldFZlcnNpb24oJzEnKQotRGVsZXRlZCBhbGwgb2JqZWN0IHN0b3Jlcy4KK2RibmFt
ZSA9IHNlbGYubG9jYXRpb24ucGF0aG5hbWUKK2luZGV4ZWREQi5kZWxldGVEYXRhYmFzZShkYm5h
bWUpCitpbmRleGVkREIub3BlbihkYm5hbWUpCitkYi5zZXRWZXJzaW9uKCcxJykKIG9iamVjdFN0
b3JlID0gZGIuY3JlYXRlT2JqZWN0U3RvcmUoJ2ZvbycpOwogUEFTUyBvYmplY3RTdG9yZS5wdXQo
KTsgdGhyZXcgZXhjZXB0aW9uIFR5cGVFcnJvcjogTm90IGVub3VnaCBhcmd1bWVudHMuCiBQQVNT
IG9iamVjdFN0b3JlLmFkZCgpOyB0aHJldyBleGNlcHRpb24gVHlwZUVycm9yOiBOb3QgZW5vdWdo
IGFyZ3VtZW50cy4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL29i
amVjdHN0b3JlLWF1dG9pbmNyZW1lbnQtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvc3RvcmFn
ZS9pbmRleGVkZGIvb2JqZWN0c3RvcmUtYXV0b2luY3JlbWVudC1leHBlY3RlZC50eHQKaW5kZXgg
Y2NhYTlhMzMzN2QyOGJiNTdmNGU3OGQ5YjQxZjkwYzI2ODY1YTM1Mi4uZTc2MzcwMDdlYTY3YTNi
OTc4ZDJiN2NlOWY5NDY4NWY4ZTVjODYyYiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvc3RvcmFn
ZS9pbmRleGVkZGIvb2JqZWN0c3RvcmUtYXV0b2luY3JlbWVudC1leHBlY3RlZC50eHQKKysrIGIv
TGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvb2JqZWN0c3RvcmUtYXV0b2luY3JlbWVudC1l
eHBlY3RlZC50eHQKQEAgLTUsMTQgKzUsMTAgQEAgT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEg
c2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUKIAog
aW5kZXhlZERCID0gc2VsZi5pbmRleGVkREIgfHwgc2VsZi53ZWJraXRJbmRleGVkREIgfHwgc2Vs
Zi5tb3pJbmRleGVkREIgfHwgc2VsZi5tc0luZGV4ZWREQiB8fCBzZWxmLk9JbmRleGVkREI7CiAK
LWluZGV4ZWREQi5vcGVuKCdvYmplY3RzdG9yZS1hdXRvaW5jcmVtZW50JykKLW9wZW5TdWNjZXNz
KCk6Ci1kYiA9IGV2ZW50LnRhcmdldC5yZXN1bHQKLWRiLnNldFZlcnNpb24oJ25ldyB2ZXJzaW9u
JykKLXNldFZlcnNpb25TdWNjZXNzKCk6Ci10cmFucyA9IGV2ZW50LnRhcmdldC5yZXN1bHQKLVBB
U1MgdHJhbnMgaXMgbm9uLW51bGwuCi1EZWxldGVkIGFsbCBvYmplY3Qgc3RvcmVzLgorZGJuYW1l
ID0gc2VsZi5sb2NhdGlvbi5wYXRobmFtZQoraW5kZXhlZERCLmRlbGV0ZURhdGFiYXNlKGRibmFt
ZSkKK2luZGV4ZWREQi5vcGVuKGRibmFtZSkKK2RiLnNldFZlcnNpb24oJzEnKQogY3JlYXRlT2Jq
ZWN0U3RvcmUoKToKIHN0b3JlID0gZGIuY3JlYXRlT2JqZWN0U3RvcmUoJ1N0b3JlV2l0aEtleVBh
dGgnLCB7a2V5UGF0aDogJ2lkJywgYXV0b0luY3JlbWVudDogdHJ1ZX0pCiBkYi5jcmVhdGVPYmpl
Y3RTdG9yZSgnU3RvcmVXaXRoQXV0b0luY3JlbWVudCcsIHthdXRvSW5jcmVtZW50OiB0cnVlfSkK
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL29iamVjdHN0b3JlLWNs
ZWFyLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL29iamVjdHN0
b3JlLWNsZWFyLWV4cGVjdGVkLnR4dAppbmRleCA2MzM1ZWNjNDBkNDhjOTIwYmZhMDUyNmIxM2Uz
MDMyMzljNjdmZTlkLi45NzY5YmY3ZmUwZTAwZTJkNzQzYTVjY2M0NjZhZWMwMjZjY2RiNDIzIDEw
MDY0NAotLS0gYS9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9vYmplY3RzdG9yZS1jbGVh
ci1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvb2JqZWN0
c3RvcmUtY2xlYXItZXhwZWN0ZWQudHh0CkBAIC01LDEyICs1LDEwIEBAIE9uIHN1Y2Nlc3MsIHlv
dSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNU
IENPTVBMRVRFCiAKIGluZGV4ZWREQiA9IHNlbGYuaW5kZXhlZERCIHx8IHNlbGYud2Via2l0SW5k
ZXhlZERCIHx8IHNlbGYubW96SW5kZXhlZERCIHx8IHNlbGYubXNJbmRleGVkREIgfHwgc2VsZi5P
SW5kZXhlZERCOwogCi1pbmRleGVkREIub3Blbignb2JqZWN0c3RvcmUtY2xlYXInKQotZGIgPSBl
dmVudC50YXJnZXQucmVzdWx0Ci1kYi5zZXRWZXJzaW9uKCduZXcgdmVyc2lvbicpCi10cmFucyA9
IGV2ZW50LnRhcmdldC5yZXN1bHQKLVBBU1MgdHJhbnMgaXMgbm9uLW51bGwuCi1EZWxldGVkIGFs
bCBvYmplY3Qgc3RvcmVzLgorZGJuYW1lID0gc2VsZi5sb2NhdGlvbi5wYXRobmFtZQoraW5kZXhl
ZERCLmRlbGV0ZURhdGFiYXNlKGRibmFtZSkKK2luZGV4ZWREQi5vcGVuKGRibmFtZSkKK2RiLnNl
dFZlcnNpb24oJzEnKQogc3RvcmUgPSBkYi5jcmVhdGVPYmplY3RTdG9yZSgnc3RvcmVOYW1lJywg
bnVsbCkKIHN0b3JlLmNyZWF0ZUluZGV4KCdpbmRleE5hbWUnLCAnJykKIFBBU1Mgc3RvcmUuaW5k
ZXhOYW1lcy5jb250YWlucygnaW5kZXhOYW1lJykgaXMgdHJ1ZQpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvb2JqZWN0c3RvcmUtY291bnQtZXhwZWN0ZWQudHh0IGIv
TGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvb2JqZWN0c3RvcmUtY291bnQtZXhwZWN0ZWQu
dHh0CmluZGV4IDVmOWRhOGM2NTc0ZmNlOGYxYzM5NWM0MjQxYWE3YzliYzYwZmQ1OTcuLjU3Nzll
NDdlYjMxMDY2MjMwODYxZTliZmQ3ZjgyODU0NDFkZDQ0ZTQgMTAwNjQ0Ci0tLSBhL0xheW91dFRl
c3RzL3N0b3JhZ2UvaW5kZXhlZGRiL29iamVjdHN0b3JlLWNvdW50LWV4cGVjdGVkLnR4dAorKysg
Yi9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9vYmplY3RzdG9yZS1jb3VudC1leHBlY3Rl
ZC50eHQKQEAgLTUsMTQgKzUsMTAgQEAgT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVz
IG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUKIAogaW5kZXhl
ZERCID0gc2VsZi5pbmRleGVkREIgfHwgc2VsZi53ZWJraXRJbmRleGVkREIgfHwgc2VsZi5tb3pJ
bmRleGVkREIgfHwgc2VsZi5tc0luZGV4ZWREQiB8fCBzZWxmLk9JbmRleGVkREI7CiAKLWluZGV4
ZWREQi5vcGVuKCdvYmplY3RzdG9yZS1jb3VudCcpCi1kYiA9IGV2ZW50LnRhcmdldC5yZXN1bHQK
LWRiLnNldFZlcnNpb24oJ25ldyB2ZXJzaW9uJykKLQotcHJlcGFyaW5nIGRhdGFiYXNlCi10cmFu
cyA9IGV2ZW50LnRhcmdldC5yZXN1bHQKLVBBU1MgdHJhbnMgaXMgbm9uLW51bGwuCi1EZWxldGVk
IGFsbCBvYmplY3Qgc3RvcmVzLgorZGJuYW1lID0gc2VsZi5sb2NhdGlvbi5wYXRobmFtZQoraW5k
ZXhlZERCLmRlbGV0ZURhdGFiYXNlKGRibmFtZSkKK2luZGV4ZWREQi5vcGVuKGRibmFtZSkKK2Ri
LnNldFZlcnNpb24oJzEnKQogc3RvcmUgPSBkYi5jcmVhdGVPYmplY3RTdG9yZSgnc3RvcmVOYW1l
JywgbnVsbCkKIGFkZGluZyAwIC4uLiA5OQogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9zdG9y
YWdlL2luZGV4ZWRkYi9vYmplY3RzdG9yZS1jdXJzb3ItZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVz
dHMvc3RvcmFnZS9pbmRleGVkZGIvb2JqZWN0c3RvcmUtY3Vyc29yLWV4cGVjdGVkLnR4dAppbmRl
eCAyMDE1YzA1NTBlNzIwMDg1NjJiM2ZhODVjZDY1ZTAxYzlkNGVhMmY0Li5hZTU5NTUyNzY2ODI2
MDg5Nzc4YTNiZTUxNmFhMDdhNmRmMTI0ZDFlIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9zdG9y
YWdlL2luZGV4ZWRkYi9vYmplY3RzdG9yZS1jdXJzb3ItZXhwZWN0ZWQudHh0CisrKyBiL0xheW91
dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL29iamVjdHN0b3JlLWN1cnNvci1leHBlY3RlZC50eHQK
QEAgLTUsMTIgKzUsMTAgQEAgT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQ
QVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUKIAogaW5kZXhlZERCID0g
c2VsZi5pbmRleGVkREIgfHwgc2VsZi53ZWJraXRJbmRleGVkREIgfHwgc2VsZi5tb3pJbmRleGVk
REIgfHwgc2VsZi5tc0luZGV4ZWREQiB8fCBzZWxmLk9JbmRleGVkREI7CiAKLWluZGV4ZWREQi5v
cGVuKCdvYmplY3RzdG9yZS1jdXJzb3InKQotZGIgPSBldmVudC50YXJnZXQucmVzdWx0Ci1kYi5z
ZXRWZXJzaW9uKCduZXcgdmVyc2lvbicpCi10cmFucyA9IGV2ZW50LnRhcmdldC5yZXN1bHQKLVBB
U1MgdHJhbnMgaXMgbm9uLW51bGwuCi1EZWxldGVkIGFsbCBvYmplY3Qgc3RvcmVzLgorZGJuYW1l
ID0gc2VsZi5sb2NhdGlvbi5wYXRobmFtZQoraW5kZXhlZERCLmRlbGV0ZURhdGFiYXNlKGRibmFt
ZSkKK2luZGV4ZWREQi5vcGVuKGRibmFtZSkKK2RiLnNldFZlcnNpb24oJzEnKQogb2JqZWN0U3Rv
cmUgPSBkYi5jcmVhdGVPYmplY3RTdG9yZSgnc29tZU9iamVjdFN0b3JlJykKIAogVmVyaWZ5IHRo
YXQgc3BlY2lmeWluZyBhbiBpbnZhbGlkIGRpcmVjdGlvbiByYWlzZXMgYW4gZXhjZXB0aW9uOgpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvb3Blbi1jdXJzb3ItZXhw
ZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvb3Blbi1jdXJzb3ItZXhw
ZWN0ZWQudHh0CmluZGV4IGJlZmY5YjhhZDI1NWMzZmE0MzBiYzEyYjIxMjhlY2I1YzA0N2Y2YWYu
LmY4MWJiMjMzZTRmMzA1MmJmNTM3ZGQ4ZGY3Y2Q3Y2Q3ZjVlNThlYWEgMTAwNjQ0Ci0tLSBhL0xh
eW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL29wZW4tY3Vyc29yLWV4cGVjdGVkLnR4dAorKysg
Yi9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9vcGVuLWN1cnNvci1leHBlY3RlZC50eHQK
QEAgLTUsMTcgKzUsMTYgQEAgT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQ
QVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUKIAogaW5kZXhlZERCID0g
c2VsZi5pbmRleGVkREIgfHwgc2VsZi53ZWJraXRJbmRleGVkREIgfHwgc2VsZi5tb3pJbmRleGVk
REIgfHwgc2VsZi5tc0luZGV4ZWREQiB8fCBzZWxmLk9JbmRleGVkREI7CiAKLWluZGV4ZWREQi5v
cGVuKCdvcGVuLWN1cnNvcicpCi1kYiA9IGV2ZW50LnRhcmdldC5yZXN1bHQKLWRiLnNldFZlcnNp
b24oJ25ldyB2ZXJzaW9uJykKLXNldFZlcnNpb25TdWNjZXNzKCk6Ci10cmFucyA9IGV2ZW50LnRh
cmdldC5yZXN1bHQKLVBBU1MgdHJhbnMgaXMgbm9uLW51bGwuCi1EZWxldGVkIGFsbCBvYmplY3Qg
c3RvcmVzLgorZGJuYW1lID0gc2VsZi5sb2NhdGlvbi5wYXRobmFtZQoraW5kZXhlZERCLmRlbGV0
ZURhdGFiYXNlKGRibmFtZSkKK2luZGV4ZWREQi5vcGVuKGRibmFtZSkKK2RiLnNldFZlcnNpb24o
JzEnKQogb2JqZWN0U3RvcmUgPSBkYi5jcmVhdGVPYmplY3RTdG9yZSgndGVzdCcpCiBvYmplY3RT
dG9yZS5hZGQoJ215VmFsdWUnLCAnbXlLZXknKQordHJhbnNhY3Rpb24gPSBkYi50cmFuc2FjdGlv
bigndGVzdCcpCitvYmplY3RTdG9yZSA9IHRyYW5zYWN0aW9uLm9iamVjdFN0b3JlKCd0ZXN0JykK
IE9wZW5pbmcgY3Vyc29yCi1ldmVudC50YXJnZXQuc291cmNlLm9wZW5DdXJzb3Ioa2V5UmFuZ2Up
CitvYmplY3RTdG9yZS5vcGVuQ3Vyc29yKGtleVJhbmdlKQogQ3Vyc29yIG9wZW5lZCBzdWNjZXNz
ZnVsbHkuCiBQQVNTIGN1cnNvci5kaXJlY3Rpb24gaXMgIm5leHQiCiBQQVNTIGN1cnNvci5rZXkg
aXMgIm15S2V5IgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvb3Bl
bmN1cnNvci1rZXktZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIv
b3BlbmN1cnNvci1rZXktZXhwZWN0ZWQudHh0CmluZGV4IDVlOTAyYWNjMWZhYjJjYzM5MDJlY2M2
NTMyODJiZGYzN2I0OWFlZWYuLmFhOTI3MzJmODdiNmYzZDc4ZDhlMDlkZjgxMzkyMWFjODc1ZTk0
OWIgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL29wZW5jdXJzb3It
a2V5LWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9vcGVu
Y3Vyc29yLWtleS1leHBlY3RlZC50eHQKQEAgLTUsMTEgKzUsMTAgQEAgT24gc3VjY2VzcywgeW91
IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1Qg
Q09NUExFVEUKIAogaW5kZXhlZERCID0gc2VsZi5pbmRleGVkREIgfHwgc2VsZi53ZWJraXRJbmRl
eGVkREIgfHwgc2VsZi5tb3pJbmRleGVkREIgfHwgc2VsZi5tc0luZGV4ZWREQiB8fCBzZWxmLk9J
bmRleGVkREI7CiAKLWluZGV4ZWREQi5vcGVuKG5hbWUpCi1vcGVuU3VjY2VzcygpOgotZGIgPSBl
dmVudC50YXJnZXQucmVzdWx0Ci1yZXF1ZXN0ID0gZGIuc2V0VmVyc2lvbignMScpCi1EZWxldGVk
IGFsbCBvYmplY3Qgc3RvcmVzLgorZGJuYW1lID0gc2VsZi5sb2NhdGlvbi5wYXRobmFtZQoraW5k
ZXhlZERCLmRlbGV0ZURhdGFiYXNlKGRibmFtZSkKK2luZGV4ZWREQi5vcGVuKGRibmFtZSkKK2Ri
LnNldFZlcnNpb24oJzEnKQogb2JqZWN0U3RvcmUgPSBkYi5jcmVhdGVPYmplY3RTdG9yZShvYmpl
Y3RTdG9yZU5hbWUpOwogRmlyc3QsIGFkZCBhbGwgb3VyIGRhdGEgdG8gdGhlIG9iamVjdCBzdG9y
ZS4KIHJlcXVlc3QgPSBvYmplY3RTdG9yZS5hZGQob2JqZWN0U3RvcmVEYXRhW2ldLnZhbHVlLCBv
YmplY3RTdG9yZURhdGFbaV0ua2V5KTsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3N0b3JhZ2Uv
aW5kZXhlZGRiL3ByZWZldGNoLWJ1Z2ZpeC0xMDgwNzEtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVz
dHMvc3RvcmFnZS9pbmRleGVkZGIvcHJlZmV0Y2gtYnVnZml4LTEwODA3MS1leHBlY3RlZC50eHQK
aW5kZXggZDcwYjhkMmFhM2IzZjFiY2M5ZWIwNGU1YTkwNTUzZDAyNDQ1NWIzYy4uYjMxNzI3OTRm
OWRjOTg2MzFjMGZjOGEyZDA2ZjlkZDZjYzVhZmYwNSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMv
c3RvcmFnZS9pbmRleGVkZGIvcHJlZmV0Y2gtYnVnZml4LTEwODA3MS1leHBlY3RlZC50eHQKKysr
IGIvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvcHJlZmV0Y2gtYnVnZml4LTEwODA3MS1l
eHBlY3RlZC50eHQKQEAgLTUsMTMgKzUsMTAgQEAgT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEg
c2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUKIAog
aW5kZXhlZERCID0gc2VsZi5pbmRleGVkREIgfHwgc2VsZi53ZWJraXRJbmRleGVkREIgfHwgc2Vs
Zi5tb3pJbmRleGVkREIgfHwgc2VsZi5tc0luZGV4ZWREQiB8fCBzZWxmLk9JbmRleGVkREI7CiAK
LWluZGV4ZWREQi5kZWxldGVEYXRhYmFzZShEQk5BTUUpCi1pbmRleGVkREIub3BlbihEQk5BTUUp
Ci1kYiA9IGV2ZW50LnRhcmdldC5yZXN1bHQKLWRiLnNldFZlcnNpb24oJ25ldyB2ZXJzaW9uJykK
LXNldFZlcnNpb25TdWNjZXNzKCk6Ci10cmFucyA9IGV2ZW50LnRhcmdldC5yZXN1bHQKLVBBU1Mg
dHJhbnMgaXMgbm9uLW51bGwuCitkYm5hbWUgPSBzZWxmLmxvY2F0aW9uLnBhdGhuYW1lCitpbmRl
eGVkREIuZGVsZXRlRGF0YWJhc2UoZGJuYW1lKQoraW5kZXhlZERCLm9wZW4oZGJuYW1lKQorZGIu
c2V0VmVyc2lvbignMScpCiBvYmplY3RTdG9yZSA9IGRiLmNyZWF0ZU9iamVjdFN0b3JlKCdzdG9y
ZScsIHtrZXlQYXRoOiAnaWQnfSkKIAogcmVzZXRPYmplY3RTdG9yZSgpOgpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvcXVldWVkLWNvbW1hbmRzLWV4cGVjdGVkLnR4
dCBiL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL3F1ZXVlZC1jb21tYW5kcy1leHBlY3Rl
ZC50eHQKaW5kZXggOWRhNTViZWRkYjU4ZjEzZDU1MWZlYjM0YzM2MjM2ODgzZmM5NDNhYS4uNjEx
YThlZWRhY2EwMGEyYTMwMjM5OTI1Y2FiYTk0YTE0YjY2ZjAzYSAxMDA2NDQKLS0tIGEvTGF5b3V0
VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvcXVldWVkLWNvbW1hbmRzLWV4cGVjdGVkLnR4dAorKysg
Yi9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9xdWV1ZWQtY29tbWFuZHMtZXhwZWN0ZWQu
dHh0CkBAIC01LDEzICs1LDEwIEBAIE9uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBv
ZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFCiAKIGluZGV4ZWRE
QiA9IHNlbGYuaW5kZXhlZERCIHx8IHNlbGYud2Via2l0SW5kZXhlZERCIHx8IHNlbGYubW96SW5k
ZXhlZERCIHx8IHNlbGYubXNJbmRleGVkREIgfHwgc2VsZi5PSW5kZXhlZERCOwogCi1pbmRleGVk
REIub3BlbigncXVldWVkLWNvbW1hbmRzJykKLWRiID0gZXZlbnQudGFyZ2V0LnJlc3VsdAotZGIu
c2V0VmVyc2lvbignbmV3IHZlcnNpb24nKQotc2V0VmVyc2lvblN1Y2Nlc3MoKToKLXRyYW5zID0g
ZXZlbnQudGFyZ2V0LnJlc3VsdAotUEFTUyB0cmFucyBpcyBub24tbnVsbC4KLURlbGV0ZWQgYWxs
IG9iamVjdCBzdG9yZXMuCitkYm5hbWUgPSBzZWxmLmxvY2F0aW9uLnBhdGhuYW1lCitpbmRleGVk
REIuZGVsZXRlRGF0YWJhc2UoZGJuYW1lKQoraW5kZXhlZERCLm9wZW4oZGJuYW1lKQorZGIuc2V0
VmVyc2lvbignMScpCiBkYi5jcmVhdGVPYmplY3RTdG9yZSgnc3RvcmVOYW1lJykKIHN0b3JlLmNy
ZWF0ZUluZGV4KCdpbmRleE5hbWUnLCAneCcpCiBzdG9yZS5hZGQoe3g6ICd2YWx1ZScsIHk6ICd6
enonfSwgJ2tleScpCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9y
ZWFkb25seS1wcm9wZXJ0aWVzLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5k
ZXhlZGRiL3JlYWRvbmx5LXByb3BlcnRpZXMtZXhwZWN0ZWQudHh0CmluZGV4IDRlZThkY2JiZDJj
NWFmOGFhNDU1ZTU4M2FmMmE1MmMxNTA2NTE4OTYuLjBlMDkwNjZjODU0MTVmNTZiZWM0YjY5NWQ3
N2ExYzJlYjBmMGJiZjkgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRi
L3JlYWRvbmx5LXByb3BlcnRpZXMtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL3N0b3Jh
Z2UvaW5kZXhlZGRiL3JlYWRvbmx5LXByb3BlcnRpZXMtZXhwZWN0ZWQudHh0CkBAIC01LDExICs1
LDEwIEBAIE9uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2Fn
ZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFCiAKIGluZGV4ZWREQiA9IHNlbGYuaW5kZXhl
ZERCIHx8IHNlbGYud2Via2l0SW5kZXhlZERCIHx8IHNlbGYubW96SW5kZXhlZERCIHx8IHNlbGYu
bXNJbmRleGVkREIgfHwgc2VsZi5PSW5kZXhlZERCOwogCi1pbmRleGVkREIub3BlbihuYW1lKQot
ZGIgPSBldmVudC50YXJnZXQucmVzdWx0Ci1yZXF1ZXN0ID0gZGIuc2V0VmVyc2lvbignMScpCi10
cmFuc2FjdGlvbiA9IGV2ZW50LnRhcmdldC5yZXN1bHQ7Ci1EZWxldGVkIGFsbCBvYmplY3Qgc3Rv
cmVzLgorZGJuYW1lID0gc2VsZi5sb2NhdGlvbi5wYXRobmFtZQoraW5kZXhlZERCLmRlbGV0ZURh
dGFiYXNlKGRibmFtZSkKK2luZGV4ZWREQi5vcGVuKGRibmFtZSkKK2RiLnNldFZlcnNpb24oJzEn
KQogb2JqZWN0U3RvcmUgPSBkYi5jcmVhdGVPYmplY3RTdG9yZSgnZm9vJyk7CiB0cnlpbmcgdG8g
c2V0IHJlYWRvbmx5IHByb3BlcnR5IG9iamVjdFN0b3JlLnRyYW5zYWN0aW9uCiBvYmplY3RTdG9y
ZS50cmFuc2FjdGlvbiA9IHRoaXMKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5k
ZXhlZGRiL3JlcXVlc3QtZXZlbnQtcHJvcGFnYXRpb24tZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVz
dHMvc3RvcmFnZS9pbmRleGVkZGIvcmVxdWVzdC1ldmVudC1wcm9wYWdhdGlvbi1leHBlY3RlZC50
eHQKaW5kZXggOWU4Y2I5M2Q5ZTA2Y2UwZjUyMDA3ZTMyNGZjYmNhZDQxZDU0ODg2YS4uOGE5Yjgy
NDAwNGY3NjU3MjE2ZTgyMzY5MDM5MDkxMGEyYzZkMjk1ZiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVz
dHMvc3RvcmFnZS9pbmRleGVkZGIvcmVxdWVzdC1ldmVudC1wcm9wYWdhdGlvbi1leHBlY3RlZC50
eHQKKysrIGIvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvcmVxdWVzdC1ldmVudC1wcm9w
YWdhdGlvbi1leHBlY3RlZC50eHQKQEAgLTUsMTQgKzUsMTEgQEAgT24gc3VjY2VzcywgeW91IHdp
bGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09N
UExFVEUKIAogaW5kZXhlZERCID0gc2VsZi5pbmRleGVkREIgfHwgc2VsZi53ZWJraXRJbmRleGVk
REIgfHwgc2VsZi5tb3pJbmRleGVkREIgfHwgc2VsZi5tc0luZGV4ZWREQiB8fCBzZWxmLk9JbmRl
eGVkREI7CiAKLWluZGV4ZWREQi5vcGVuKCdyZXF1ZXN0LWV2ZW50LXByb3BhZ2F0aW9uJykKLWRi
ID0gZXZlbnQudGFyZ2V0LnJlc3VsdAotZGIuc2V0VmVyc2lvbignbmV3IHZlcnNpb24nKQorZGJu
YW1lID0gc2VsZi5sb2NhdGlvbi5wYXRobmFtZQoraW5kZXhlZERCLmRlbGV0ZURhdGFiYXNlKGRi
bmFtZSkKK2luZGV4ZWREQi5vcGVuKGRibmFtZSkKK2RiLnNldFZlcnNpb24oJzEnKQogc2V0VmVy
c2lvblN1Y2Nlc3MoKToKLXRyYW5zID0gZXZlbnQudGFyZ2V0LnJlc3VsdAotUEFTUyB0cmFucyBp
cyBub24tbnVsbC4KLXRyYW5zLm9uY29tcGxldGUgPSBzdGFydFRlc3QKLURlbGV0ZWQgYWxsIG9i
amVjdCBzdG9yZXMuCiBzdG9yZSA9IGRiLmNyZWF0ZU9iamVjdFN0b3JlKCdzdG9yZU5hbWUnLCBu
dWxsKQogc3RvcmUuYWRkKHt4OiAndmFsdWUnLCB5OiAnenp6J30sICdrZXknKQogVmVyaWZ5IHRo
YXQgaGFuZGxlciBmaXJlcyBhbmQgdGhhdCBub3QgcHJldmVudGluZyBkZWZhdWx0IHdpbGwgcmVz
dWx0IGluIGFuIGFib3J0CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRk
Yi9yZXNvdXJjZXMvY3JlYXRlLWFuZC1yZW1vdmUtb2JqZWN0LXN0b3JlLmpzIGIvTGF5b3V0VGVz
dHMvc3RvcmFnZS9pbmRleGVkZGIvcmVzb3VyY2VzL2NyZWF0ZS1hbmQtcmVtb3ZlLW9iamVjdC1z
dG9yZS5qcwppbmRleCBkMmM2OTk0NjIwYTBkMTAyN2RjMTBhMGE0OTdiZjliYzZlMDk4YzhlLi4w
ZDdmYWIyNjZiZmEzNjM0YTZhZWQ2ZGJhZGYxNTc3YzNkNGZkYmRjIDEwMDY0NAotLS0gYS9MYXlv
dXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9yZXNvdXJjZXMvY3JlYXRlLWFuZC1yZW1vdmUtb2Jq
ZWN0LXN0b3JlLmpzCisrKyBiL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL3Jlc291cmNl
cy9jcmVhdGUtYW5kLXJlbW92ZS1vYmplY3Qtc3RvcmUuanMKQEAgLTYzLDQgKzYzLDQgQEAgZnVu
Y3Rpb24gdHJ5T25jZU1vcmUoKQogICAgIGZpbmlzaEpTVGVzdCgpOwogfQogCi10ZXN0KCk7Clwg
Tm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQordGVzdCgpOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvc3RvcmFnZS9pbmRleGVkZGIvcmVzb3VyY2VzL2NyZWF0ZS1vYmplY3Qtc3RvcmUtb3B0aW9u
cy5qcyBiL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL3Jlc291cmNlcy9jcmVhdGUtb2Jq
ZWN0LXN0b3JlLW9wdGlvbnMuanMKaW5kZXggNzAzOWJjMDg1ZDcwZTg4MzdhZTRkNTU0YWZiMTYx
Y2ZkYjVmNDljMi4uODAyNjIwYWIzYmZhM2VkNDA2Y2RmM2I4ZmFkNzEyYTk0M2Q4ZDE3OCAxMDA2
NDQKLS0tIGEvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvcmVzb3VyY2VzL2NyZWF0ZS1v
YmplY3Qtc3RvcmUtb3B0aW9ucy5qcworKysgYi9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRk
Yi9yZXNvdXJjZXMvY3JlYXRlLW9iamVjdC1zdG9yZS1vcHRpb25zLmpzCkBAIC01LDM0ICs1LDEz
IEBAIGlmICh0aGlzLmltcG9ydFNjcmlwdHMpIHsKIAogZGVzY3JpcHRpb24oIlRlc3QgSW5kZXhl
ZERCJ3MgY3JlYXRlT2JqZWN0U3RvcmUncyB2YXJpb3VzIG9wdGlvbnMiKTsKIAotZnVuY3Rpb24g
dGVzdCgpCi17Ci0gICAgcmVtb3ZlVmVuZG9yUHJlZml4ZXMoKTsKLQotICAgIHJlcXVlc3QgPSBl
dmFsQW5kTG9nKCJpbmRleGVkREIub3BlbignY3JlYXRlLW9iamVjdC1zdG9yZS1vcHRpb25zJyki
KTsKLSAgICByZXF1ZXN0Lm9uc3VjY2VzcyA9IG9wZW5TdWNjZXNzOwotICAgIHJlcXVlc3Qub25l
cnJvciA9IHVuZXhwZWN0ZWRFcnJvckNhbGxiYWNrOwotfQotCi1mdW5jdGlvbiBvcGVuU3VjY2Vz
cygpCi17Ci0gICAgZGIgPSBldmFsQW5kTG9nKCJkYiA9IGV2ZW50LnRhcmdldC5yZXN1bHQiKTsK
LQotICAgIHJlcXVlc3QgPSBldmFsQW5kTG9nKCJyZXF1ZXN0ID0gZGIuc2V0VmVyc2lvbigndmVy
c2lvbiAxJykiKTsKLSAgICByZXF1ZXN0Lm9uc3VjY2VzcyA9IGNsZWFuRGF0YWJhc2U7Ci0gICAg
cmVxdWVzdC5vbmVycm9yID0gdW5leHBlY3RlZEVycm9yQ2FsbGJhY2s7Ci19Ci0KIGZ1bmN0aW9u
IGNsZWFuRGF0YWJhc2UoKQogewotICAgIGRlbGV0ZUFsbE9iamVjdFN0b3JlcyhkYik7Ci0KICAg
ICBldmFsQW5kTG9nKCJkYi5jcmVhdGVPYmplY3RTdG9yZSgnYScsIHtrZXlQYXRoOiAnYSd9KSIp
OwogICAgIGV2YWxBbmRMb2coImRiLmNyZWF0ZU9iamVjdFN0b3JlKCdiJykiKTsKIAogICAgIGRl
YnVnKCJkYi5jcmVhdGVPYmplY3RTdG9yZSgnYycsIHthdXRvSW5jcmVtZW50OiB0cnVlfSk7Iik7
CiAgICAgZGIuY3JlYXRlT2JqZWN0U3RvcmUoJ2MnLCB7YXV0b0luY3JlbWVudDogdHJ1ZX0pOwot
ICAgIGV2ZW50LnRhcmdldC5yZXN1bHQub25jb21wbGV0ZSA9IHNldFZlcnNpb25Db21wbGV0ZTsK
IH0KIAogZnVuY3Rpb24gc2V0VmVyc2lvbkNvbXBsZXRlKCkKQEAgLTc4LDQgKzU3LDQgQEAgZnVu
Y3Rpb24gY2hlY2tCKCkKICAgICBmaW5pc2hKU1Rlc3QoKTsKIH0KIAotdGVzdCgpOworaW5kZXhl
ZERCVGVzdChjbGVhbkRhdGFiYXNlLCBzZXRWZXJzaW9uQ29tcGxldGUpOwpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvcmVzb3VyY2VzL2NyZWF0ZU9iamVjdFN0b3Jl
LW5hbWUtYXJndW1lbnQtcmVxdWlyZWQuanMgYi9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRk
Yi9yZXNvdXJjZXMvY3JlYXRlT2JqZWN0U3RvcmUtbmFtZS1hcmd1bWVudC1yZXF1aXJlZC5qcwpp
bmRleCA5MWQ5YTdhYTZhZWI1MjgxMDk4OGE0NWE1MGFmZTEyYTU2Y2YxNjVjLi43OGNhMDQ3ODM3
NmI0YTdmYzMzYmRiMDVkNWIxMmE0YWZhMGE5NjJjIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9z
dG9yYWdlL2luZGV4ZWRkYi9yZXNvdXJjZXMvY3JlYXRlT2JqZWN0U3RvcmUtbmFtZS1hcmd1bWVu
dC1yZXF1aXJlZC5qcworKysgYi9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9yZXNvdXJj
ZXMvY3JlYXRlT2JqZWN0U3RvcmUtbmFtZS1hcmd1bWVudC1yZXF1aXJlZC5qcwpAQCAtNSwzMSAr
NSw5IEBAIGlmICh0aGlzLmltcG9ydFNjcmlwdHMpIHsKIAogZGVzY3JpcHRpb24oIlRlc3QgSW5k
ZXhlZERCIGNyZWF0ZU9iamVjdFN0b3JlIG5hbWUgYXJndW1lbnQgaXMgcmVxdWlyZWQiKTsKIAot
ZnVuY3Rpb24gdGVzdCgpCi17Ci0gICAgcmVtb3ZlVmVuZG9yUHJlZml4ZXMoKTsKLQotICAgIG5h
bWUgPSBzZWxmLmxvY2F0aW9uLnBhdGhuYW1lOwotICAgIHJlcXVlc3QgPSBldmFsQW5kTG9nKCJp
bmRleGVkREIub3BlbihuYW1lKSIpOwotICAgIHJlcXVlc3Qub25zdWNjZXNzID0gb3BlblN1Y2Nl
c3M7Ci0gICAgcmVxdWVzdC5vbmVycm9yID0gdW5leHBlY3RlZEVycm9yQ2FsbGJhY2s7Ci19Ci0K
LWZ1bmN0aW9uIG9wZW5TdWNjZXNzKCkKLXsKLSAgICBkYiA9IGV2YWxBbmRMb2coImRiID0gZXZl
bnQudGFyZ2V0LnJlc3VsdCIpOwotCi0gICAgcmVxdWVzdCA9IGV2YWxBbmRMb2coInJlcXVlc3Qg
PSBkYi5zZXRWZXJzaW9uKCcxJykiKTsKLSAgICByZXF1ZXN0Lm9uc3VjY2VzcyA9IGNyZWF0ZUFu
ZFBvcHVsYXRlT2JqZWN0U3RvcmU7Ci0gICAgcmVxdWVzdC5vbmVycm9yID0gdW5leHBlY3RlZEVy
cm9yQ2FsbGJhY2s7Ci19Ci0KIGZ1bmN0aW9uIGNyZWF0ZUFuZFBvcHVsYXRlT2JqZWN0U3RvcmUo
KQogewotICAgIGRlbGV0ZUFsbE9iamVjdFN0b3JlcyhkYik7Ci0KLSAgICBzaG91bGRUaHJvdygi
ZGIuY3JlYXRlT2JqZWN0U3RvcmUoKTsiKTsKLSAgICBmaW5pc2hKU1Rlc3QoKTsKKyAgICBzaG91
bGRUaHJvdygiZGIuY3JlYXRlT2JqZWN0U3RvcmUoKSIpOwogfQogCi10ZXN0KCk7ClwgTm8gbmV3
bGluZSBhdCBlbmQgb2YgZmlsZQoraW5kZXhlZERCVGVzdChjcmVhdGVBbmRQb3B1bGF0ZU9iamVj
dFN0b3JlLCBmaW5pc2hKU1Rlc3QpOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvc3RvcmFnZS9p
bmRleGVkZGIvcmVzb3VyY2VzL2NyZWF0ZU9iamVjdFN0b3JlLW51bGwtbmFtZS5qcyBiL0xheW91
dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL3Jlc291cmNlcy9jcmVhdGVPYmplY3RTdG9yZS1udWxs
LW5hbWUuanMKaW5kZXggMzVkN2MwOTU4MDJmMTQ3YTRhMzBjZDI3MWVkMTdlYzU3ZjRiMmRmMS4u
NTlmODlkZTk5ZTYwOWI1M2Q3MTJjZmRlYjUxYWFhNThiM2NiNGQyNyAxMDA2NDQKLS0tIGEvTGF5
b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvcmVzb3VyY2VzL2NyZWF0ZU9iamVjdFN0b3JlLW51
bGwtbmFtZS5qcworKysgYi9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9yZXNvdXJjZXMv
Y3JlYXRlT2JqZWN0U3RvcmUtbnVsbC1uYW1lLmpzCkBAIC01LDMyICs1LDEwIEBAIGlmICh0aGlz
LmltcG9ydFNjcmlwdHMpIHsKIAogZGVzY3JpcHRpb24oIlRlc3QgSW5kZXhlZERCIGNyZWF0ZU9i
amVjdFN0b3JlIG51bGwgaGFuZGxpbmciKTsKIAotZnVuY3Rpb24gdGVzdCgpCi17Ci0gICAgcmVt
b3ZlVmVuZG9yUHJlZml4ZXMoKTsKLQotICAgIG5hbWUgPSBzZWxmLmxvY2F0aW9uLnBhdGhuYW1l
OwotICAgIHJlcXVlc3QgPSBldmFsQW5kTG9nKCJpbmRleGVkREIub3BlbihuYW1lKSIpOwotICAg
IHJlcXVlc3Qub25zdWNjZXNzID0gb3BlblN1Y2Nlc3M7Ci0gICAgcmVxdWVzdC5vbmVycm9yID0g
dW5leHBlY3RlZEVycm9yQ2FsbGJhY2s7Ci19Ci0KLWZ1bmN0aW9uIG9wZW5TdWNjZXNzKCkKLXsK
LSAgICBkYiA9IGV2YWxBbmRMb2coImRiID0gZXZlbnQudGFyZ2V0LnJlc3VsdCIpOwotCi0gICAg
cmVxdWVzdCA9IGV2YWxBbmRMb2coInJlcXVlc3QgPSBkYi5zZXRWZXJzaW9uKCcxJykiKTsKLSAg
ICByZXF1ZXN0Lm9uc3VjY2VzcyA9IGNyZWF0ZUFuZFBvcHVsYXRlT2JqZWN0U3RvcmU7Ci0gICAg
cmVxdWVzdC5vbmVycm9yID0gdW5leHBlY3RlZEVycm9yQ2FsbGJhY2s7Ci19Ci0KIGZ1bmN0aW9u
IGNyZWF0ZUFuZFBvcHVsYXRlT2JqZWN0U3RvcmUoKQogewotICAgIGRlbGV0ZUFsbE9iamVjdFN0
b3JlcyhkYik7Ci0KICAgICBvYmplY3RTdG9yZSA9IGV2YWxBbmRMb2coImRiLmNyZWF0ZU9iamVj
dFN0b3JlKG51bGwpOyIpOwogICAgIHNob3VsZEJlRXF1YWxUb1N0cmluZygib2JqZWN0U3RvcmUu
bmFtZSIsICJudWxsIik7Ci0gICAgZmluaXNoSlNUZXN0KCk7CiB9CiAKLXRlc3QoKTsKXCBObyBu
ZXdsaW5lIGF0IGVuZCBvZiBmaWxlCitpbmRleGVkREJUZXN0KGNyZWF0ZUFuZFBvcHVsYXRlT2Jq
ZWN0U3RvcmUsIGZpbmlzaEpTVGVzdCk7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9zdG9yYWdl
L2luZGV4ZWRkYi9yZXNvdXJjZXMvY3Vyc29yLWFkZGVkLWJ1Zy5qcyBiL0xheW91dFRlc3RzL3N0
b3JhZ2UvaW5kZXhlZGRiL3Jlc291cmNlcy9jdXJzb3ItYWRkZWQtYnVnLmpzCmluZGV4IDc0ZGRi
YzQwMjY4ZTA3ZTFhMWE0ZjhiYmJkNzI2YWM1YjhmNGRjOWYuLjRlMTA3ZjQ3MDgwY2Y1Y2JmMjQz
NTc2MTUwMWRmNjY1MTg1NjZlN2YgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5k
ZXhlZGRiL3Jlc291cmNlcy9jdXJzb3ItYWRkZWQtYnVnLmpzCisrKyBiL0xheW91dFRlc3RzL3N0
b3JhZ2UvaW5kZXhlZGRiL3Jlc291cmNlcy9jdXJzb3ItYWRkZWQtYnVnLmpzCkBAIC01LDM0ICs1
LDEwIEBAIGlmICh0aGlzLmltcG9ydFNjcmlwdHMpIHsKIAogZGVzY3JpcHRpb24oIlRlc3QgSW5k
ZXhlZERCIGN1cnNvciBpdGVyYXRlcyBjb3JyZWN0bHkgb3ZlciB2YWx1ZXMgYWRkZWQgZHVyaW5n
IGl0ZXJhdGlvbi4iKTsKIAotdGVzdCgpOwotCi1mdW5jdGlvbiB0ZXN0KCkKLXsKLSAgICByZW1v
dmVWZW5kb3JQcmVmaXhlcygpOwotICAgIHJlcXVlc3QgPSBldmFsQW5kTG9nKCJpbmRleGVkREIu
b3BlbignY3Vyc29yLWRlbGV0ZScpIik7Ci0gICAgcmVxdWVzdC5vbnN1Y2Nlc3MgPSBvcGVuU3Vj
Y2VzczsKLSAgICByZXF1ZXN0Lm9uZXJyb3IgPSB1bmV4cGVjdGVkRXJyb3JDYWxsYmFjazsKLX0K
LQotZnVuY3Rpb24gb3BlblN1Y2Nlc3MoKQotewotICAgIHZhciBkYiA9IGV2YWxBbmRMb2coImRi
ID0gZXZlbnQudGFyZ2V0LnJlc3VsdCIpOwotCi0gICAgcmVxdWVzdCA9IGV2YWxBbmRMb2coImRi
LnNldFZlcnNpb24oJ25ldyB2ZXJzaW9uJykiKTsKLSAgICByZXF1ZXN0Lm9uc3VjY2VzcyA9IHNl
dFZlcnNpb25TdWNjZXNzOwotICAgIHJlcXVlc3Qub25lcnJvciA9IHVuZXhwZWN0ZWRFcnJvckNh
bGxiYWNrOwotfQoraW5kZXhlZERCVGVzdChzZXRWZXJzaW9uU3VjY2Vzcywgb3BlbkN1cnNvcik7
CiAKIGZ1bmN0aW9uIHNldFZlcnNpb25TdWNjZXNzKCkKIHsKLSAgICB0cmFucyA9IGV2YWxBbmRM
b2coInRyYW5zID0gZXZlbnQudGFyZ2V0LnJlc3VsdCIpOwotICAgIHNob3VsZEJlTm9uTnVsbCgi
dHJhbnMiKTsKLSAgICB0cmFucy5vbmFib3J0ID0gdW5leHBlY3RlZEFib3J0Q2FsbGJhY2s7Ci0g
ICAgdHJhbnMub25jb21wbGV0ZSA9IG9wZW5DdXJzb3I7Ci0KLSAgICBkZWxldGVBbGxPYmplY3RT
dG9yZXMoZGIpOwotCiAgICAgdmFyIG9iamVjdFN0b3JlID0gZXZhbEFuZExvZygib2JqZWN0U3Rv
cmUgPSBkYi5jcmVhdGVPYmplY3RTdG9yZSgndGVzdCcpIik7CiAgICAgZXZhbEFuZExvZygib2Jq
ZWN0U3RvcmUuYWRkKDEsIDEpIik7CiAgICAgZXZhbEFuZExvZygib2JqZWN0U3RvcmUuYWRkKDIs
IDIpIik7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9yZXNvdXJj
ZXMvY3Vyc29yLWFkdmFuY2UuanMgYi9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9yZXNv
dXJjZXMvY3Vyc29yLWFkdmFuY2UuanMKaW5kZXggM2Y0ZjUyZDVmYTlkZjdkZTkxZWYyMDE0MmM1
NjU5MTIxZmZiZWVkYS4uZTAzMzdlNGY4MTlkZjc1ZGJhZjY4MWY2YTlkNjQ1MWQyZmM5MzAzYyAx
MDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvcmVzb3VyY2VzL2N1cnNv
ci1hZHZhbmNlLmpzCisrKyBiL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL3Jlc291cmNl
cy9jdXJzb3ItYWR2YW5jZS5qcwpAQCAtMjcsMzkgKzI3LDE3IEBAIHZhciBpbmRleERhdGEgPSBb
CiAgICAgeyBuYW1lOiAid2VpZ2h0Iiwga2V5UGF0aDogIndlaWdodCIsIG9wdGlvbnM6IHsgdW5p
cXVlOiBmYWxzZSB9IH0KIF07CiAKLWZ1bmN0aW9uIHRlc3QoKQotewotICAgIHJlbW92ZVZlbmRv
clByZWZpeGVzKCk7Ci0gICAgbmFtZSA9IHdpbmRvdy5sb2NhdGlvbi5wYXRobmFtZTsKLSAgICBy
ZXF1ZXN0ID0gZXZhbEFuZExvZygiaW5kZXhlZERCLm9wZW4obmFtZSkiKTsKLSAgICByZXF1ZXN0
Lm9uc3VjY2VzcyA9IG9wZW5TdWNjZXNzOwotICAgIHJlcXVlc3Qub25lcnJvciA9IHVuZXhwZWN0
ZWRFcnJvckNhbGxiYWNrOwotfQotCi1mdW5jdGlvbiBvcGVuU3VjY2VzcygpCi17Ci0gICAgZGVi
dWcoIm9wZW5TdWNjZXNzKCk6Iik7Ci0gICAgZGIgPSBldmFsQW5kTG9nKCJkYiA9IGV2ZW50LnRh
cmdldC5yZXN1bHQiKTsKLQotICAgIG9iamVjdFN0b3JlTmFtZSA9ICJQZW9wbGUiOwotCi0gICAg
cmVxdWVzdCA9IGV2YWxBbmRMb2coInJlcXVlc3QgPSBkYi5zZXRWZXJzaW9uKCcxJykiKTsKLSAg
ICByZXF1ZXN0Lm9uc3VjY2VzcyA9IGNyZWF0ZU9iamVjdFN0b3JlOwotICAgIHJlcXVlc3Qub25l
cnJvciA9IHVuZXhwZWN0ZWRFcnJvckNhbGxiYWNrOwotfQotCi1mdW5jdGlvbiBjcmVhdGVPYmpl
Y3RTdG9yZShyZXF1ZXN0KQotewotICAgIGRlbGV0ZUFsbE9iamVjdFN0b3JlcyhkYik7Ci0gICAg
dHJhbnMgPSBldmFsQW5kTG9nKCJ0cmFucyA9IHJlcXVlc3QucmVzdWx0Iik7Ci0gICAgb2JqZWN0
U3RvcmUgPSBldmFsQW5kTG9nKCJvYmplY3RTdG9yZSA9IGRiLmNyZWF0ZU9iamVjdFN0b3JlKG9i
amVjdFN0b3JlTmFtZSk7Iik7Ci0gICAgY3JlYXRlSW5kZXhlcygpOwotICAgIHRyYW5zLm9uY29t
cGxldGUgPSBmdW5jdGlvbigpIHsKK2luZGV4ZWREQlRlc3QoCisgICAgZnVuY3Rpb24gKCkgewor
ICAgICAgICBvYmplY3RTdG9yZU5hbWUgPSAiUGVvcGxlIjsKKyAgICAgICAgb2JqZWN0U3RvcmUg
PSBldmFsQW5kTG9nKCJvYmplY3RTdG9yZSA9IGRiLmNyZWF0ZU9iamVjdFN0b3JlKG9iamVjdFN0
b3JlTmFtZSk7Iik7CisgICAgICAgIGNyZWF0ZUluZGV4ZXMoKTsKKyAgICB9LAorICAgIGZ1bmN0
aW9uKCkgewogICAgICAgICBldmFsQW5kTG9nKCJ0cmFucyA9IGRiLnRyYW5zYWN0aW9uKG9iamVj
dFN0b3JlTmFtZSwgJ3JlYWR3cml0ZScpIik7CiAgICAgICAgIGV2YWxBbmRMb2coIm9iamVjdFN0
b3JlID0gdHJhbnMub2JqZWN0U3RvcmUob2JqZWN0U3RvcmVOYW1lKSIpOwogICAgICAgICBwb3B1
bGF0ZU9iamVjdFN0b3JlKCk7Ci0gICAgfTsKLX0KKyAgICB9KTsKIAogZnVuY3Rpb24gcG9wdWxh
dGVPYmplY3RTdG9yZSgpCiB7CkBAIC0zNzQsNSArMzUyLDMgQEAgZnVuY3Rpb24gdGVzdERlbGV0
ZSgpCiAgICAgcmVxdWVzdC5vbnN1Y2Nlc3MgPSBkZWxldGVTZWNvbmQ7CiAgICAgcmVxdWVzdC5v
bmVycm9yID0gdW5leHBlY3RlZEVycm9yQ2FsbGJhY2s7CiB9Ci0KLXRlc3QoKTsKZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL3Jlc291cmNlcy9jdXJzb3ItY29udGlu
dWUtdmFsaWRpdHkuanMgYi9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9yZXNvdXJjZXMv
Y3Vyc29yLWNvbnRpbnVlLXZhbGlkaXR5LmpzCmluZGV4IGFkZmU4YzcxOGU1YzY3YzUyYjM3NTAy
YjdiYTI2Mjk2YTE0NGMxYzUuLmZiZTgxYWMxYWQzYzU0YmZlMjU0ODQyYjhlMTJkNmI4MTIwZDJl
MmEgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL3Jlc291cmNlcy9j
dXJzb3ItY29udGludWUtdmFsaWRpdHkuanMKKysrIGIvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRl
eGVkZGIvcmVzb3VyY2VzL2N1cnNvci1jb250aW51ZS12YWxpZGl0eS5qcwpAQCAtMTEsMzYgKzEx
LDggQEAgdmFyIGRhdGUgPSBuZXcgRGF0ZSgpOwogLy8gaWYgd2UncmUgaW4gYSBwcmUtZmV0Y2hl
ZCBzdGF0ZSBvciBub3QKIHNlbGYudGVzdExlbmd0aCA9IDI1OwogCi1mdW5jdGlvbiB0ZXN0KCkK
K2Z1bmN0aW9uIHByZXBhcmVEYXRhYmFzZSgpCiB7Ci0gICAgcmVtb3ZlVmVuZG9yUHJlZml4ZXMo
KTsKLSAgICBvcGVuRGF0YWJhc2UoKTsKLX0KLQotZnVuY3Rpb24gb3BlbkRhdGFiYXNlKCkKLXsK
LSAgICByZXN1bHQgPSBldmFsQW5kTG9nKCJpbmRleGVkREIub3BlbignY3Vyc29yLWNvbnRpbnVl
JykiKTsKLSAgICByZXN1bHQub25zdWNjZXNzID0gc2V0VmVyc2lvbjsKLSAgICByZXN1bHQub25l
cnJvciA9IHVuZXhwZWN0ZWRFcnJvckNhbGxiYWNrOwotfQotCi1mdW5jdGlvbiBzZXRWZXJzaW9u
KCkKLXsKLSAgICBzZWxmLmRiID0gZXZhbEFuZExvZygiZGIgPSBldmVudC50YXJnZXQucmVzdWx0
Iik7Ci0KLSAgICByZXN1bHQgPSBldmFsQW5kTG9nKCJkYi5zZXRWZXJzaW9uKCduZXcgdmVyc2lv
bicpIik7Ci0gICAgcmVzdWx0Lm9uc3VjY2VzcyA9IGRlbGV0ZUV4aXN0aW5nOwotICAgIHJlc3Vs
dC5vbmVycm9yID0gdW5leHBlY3RlZEVycm9yQ2FsbGJhY2s7Ci19Ci0KLWZ1bmN0aW9uIGRlbGV0
ZUV4aXN0aW5nKCkKLXsKLSAgICBzZWxmLnRyYW5zID0gZXZhbEFuZExvZygidHJhbnMgPSBldmVu
dC50YXJnZXQucmVzdWx0Iik7Ci0gICAgc2hvdWxkQmVOb25OdWxsKCJ0cmFucyIpOwotICAgIHRy
YW5zLm9uYWJvcnQgPSB1bmV4cGVjdGVkQWJvcnRDYWxsYmFjazsKLQotICAgIGRlbGV0ZUFsbE9i
amVjdFN0b3JlcyhkYik7Ci0KICAgICBzZWxmLm9iamVjdFN0b3JlID0gZXZhbEFuZExvZygiZGIu
Y3JlYXRlT2JqZWN0U3RvcmUoJ3NvbWVPYmplY3RTdG9yZScpIik7CiAgICAgc2VsZi5pbmRleE9i
amVjdCA9IGV2YWxBbmRMb2coIm9iamVjdFN0b3JlLmNyZWF0ZUluZGV4KCdzb21lSW5kZXgnLCAn
eCcpIik7CiAgICAgc2VsZi5uZXh0VG9BZGQgPSAwOwpAQCAtMTcyLDkgKzE0NCw3IEBAIGZ1bmN0
aW9uIG1vZGlmeUNvbnRpbnVlT3JkZXJDYWxsYmFjaygpCiAgICAgICAgICAgICBldmFsQW5kTG9n
KCJjdXJzb3IuY29udGludWUoKSIpOwogICAgICAgICB9CiAKLSAgICB9IGVsc2UgewotICAgICAg
ICBmaW5pc2hKU1Rlc3QoKTsKICAgICB9CiB9CiAKLXRlc3QoKTsKK2luZGV4ZWREQlRlc3QocHJl
cGFyZURhdGFiYXNlLCBmaW5pc2hKU1Rlc3QpOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvc3Rv
cmFnZS9pbmRleGVkZGIvcmVzb3VyY2VzL2N1cnNvci1jb250aW51ZS5qcyBiL0xheW91dFRlc3Rz
L3N0b3JhZ2UvaW5kZXhlZGRiL3Jlc291cmNlcy9jdXJzb3ItY29udGludWUuanMKaW5kZXggNWY1
YWUzNWJkYmE2ODdmYmJjY2ZiYWMwODQyYzhkODAwN2FmMTkxNC4uYmQwMzM0ZDNjOTVlYjA5NDZk
OGE0YWUwYTQ5YzZjYzUyYWQxMGY5YiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvc3RvcmFnZS9p
bmRleGVkZGIvcmVzb3VyY2VzL2N1cnNvci1jb250aW51ZS5qcworKysgYi9MYXlvdXRUZXN0cy9z
dG9yYWdlL2luZGV4ZWRkYi9yZXNvdXJjZXMvY3Vyc29yLWNvbnRpbnVlLmpzCkBAIC0yOSwzNiAr
MjksOCBAQCBzZWxmLnRlc3REYXRhID0gWwogICAgICJ0aGUgQklHR0VTVCBzdHJpbmciCiBdOwog
Ci1mdW5jdGlvbiB0ZXN0KCkKK2Z1bmN0aW9uIHByZXBhcmVEYXRhYmFzZSgpCiB7Ci0gICAgcmVt
b3ZlVmVuZG9yUHJlZml4ZXMoKTsKLSAgICBvcGVuRGF0YWJhc2UoKTsKLX0KLQotZnVuY3Rpb24g
b3BlbkRhdGFiYXNlKCkKLXsKLSAgICByZXN1bHQgPSBldmFsQW5kTG9nKCJpbmRleGVkREIub3Bl
bignY3Vyc29yLWNvbnRpbnVlJykiKTsKLSAgICByZXN1bHQub25zdWNjZXNzID0gc2V0VmVyc2lv
bjsKLSAgICByZXN1bHQub25lcnJvciA9IHVuZXhwZWN0ZWRFcnJvckNhbGxiYWNrOwotfQotCi1m
dW5jdGlvbiBzZXRWZXJzaW9uKCkKLXsKLSAgICBzZWxmLmRiID0gZXZhbEFuZExvZygiZGIgPSBl
dmVudC50YXJnZXQucmVzdWx0Iik7Ci0KLSAgICByZXN1bHQgPSBldmFsQW5kTG9nKCJkYi5zZXRW
ZXJzaW9uKCduZXcgdmVyc2lvbicpIik7Ci0gICAgcmVzdWx0Lm9uc3VjY2VzcyA9IGRlbGV0ZUV4
aXN0aW5nOwotICAgIHJlc3VsdC5vbmVycm9yID0gdW5leHBlY3RlZEVycm9yQ2FsbGJhY2s7Ci19
Ci0KLWZ1bmN0aW9uIGRlbGV0ZUV4aXN0aW5nKCkKLXsKLSAgICBzZWxmLnRyYW5zID0gZXZhbEFu
ZExvZygidHJhbnMgPSBldmVudC50YXJnZXQucmVzdWx0Iik7Ci0gICAgc2hvdWxkQmVOb25OdWxs
KCJ0cmFucyIpOwotICAgIHRyYW5zLm9uYWJvcnQgPSB1bmV4cGVjdGVkQWJvcnRDYWxsYmFjazsK
LQotICAgIGRlbGV0ZUFsbE9iamVjdFN0b3JlcyhkYik7Ci0KICAgICBzZWxmLm9iamVjdFN0b3Jl
ID0gZXZhbEFuZExvZygiZGIuY3JlYXRlT2JqZWN0U3RvcmUoJ3NvbWVPYmplY3RTdG9yZScpIik7
CiAgICAgc2VsZi5pbmRleE9iamVjdCA9IGV2YWxBbmRMb2coIm9iamVjdFN0b3JlLmNyZWF0ZUlu
ZGV4KCdzb21lSW5kZXgnLCAneCcpIik7CiAgICAgc2VsZi5uZXh0VG9BZGQgPSAwOwpAQCAtODIs
NyArNTQsNiBAQCBmdW5jdGlvbiBhc2NlbmRpbmdUZXN0KCkKIH0KIAogZnVuY3Rpb24gYXNjZW5k
aW5nQ2FsbGJhY2soKQotCiB7CiAgICAgaWYgKHNlbGYuc3RhZ2UgPT0gMCkgewogICAgICAgICBz
aG91bGRCZSgiZXZlbnQudGFyZ2V0LnJlc3VsdC5wcmltYXJ5S2V5IiwgIjAiKTsKQEAgLTI1Miw3
ICsyMjMsNiBAQCBmdW5jdGlvbiBkZXNjZW5kaW5nRXJyb3JUZXN0RXF1YWwoKQogICAgICAgICAg
ICAgc2hvdWxkQmUoImV2ZW50LnRhcmdldC5yZXN1bHQucHJpbWFyeUtleSIsICIxNSIpOwogICAg
ICAgICAgICAgZXZhbEFuZExvZygiY3Vyc29yID0gZXZlbnQudGFyZ2V0LnJlc3VsdCIpOwogICAg
ICAgICAgICAgZXZhbEFuZEV4cGVjdEV4Y2VwdGlvbigiZXZlbnQudGFyZ2V0LnJlc3VsdC5jb250
aW51ZSgnQSBiaXQyJykiLCAiSURCRGF0YWJhc2VFeGNlcHRpb24uREFUQV9FUlIiLCAiJ0RhdGFF
cnJvciciKTsKLSAgICAgICAgICAgIHNlbGYudHJhbnMub25jb21wbGV0ZSA9IG9uVHJhbnNhY3Rp
b25Db21wbGV0ZTsKICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgfSBlbHNlIHsKICAgICAg
ICAgICAgdGVzdEZhaWxlZCgiSWxsZWdhbCBzdGFnZS4iKTsKQEAgLTI2Nyw0ICsyMzcsNCBAQCBm
dW5jdGlvbiBvblRyYW5zYWN0aW9uQ29tcGxldGUoKQogICAgIGZpbmlzaEpTVGVzdCgpOwogfQog
Ci10ZXN0KCk7CitpbmRleGVkREJUZXN0KHByZXBhcmVEYXRhYmFzZSwgb25UcmFuc2FjdGlvbkNv
bXBsZXRlKTsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL3Jlc291
cmNlcy9jdXJzb3ItZGVsZXRlLmpzIGIvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvcmVz
b3VyY2VzL2N1cnNvci1kZWxldGUuanMKaW5kZXggNDI1ZmY3N2FlMTgyZGJjN2JhZDk0MjAwNTkw
ZDkyMGE5Y2U3OTFmOC4uMDAzODVkMWVmMzlhZDNmNTEyMjU4NTdiYmNiNWI2YWM0Y2JlMjFkMSAx
MDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvcmVzb3VyY2VzL2N1cnNv
ci1kZWxldGUuanMKKysrIGIvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvcmVzb3VyY2Vz
L2N1cnNvci1kZWxldGUuanMKQEAgLTUsMzUgKzUsMTAgQEAgaWYgKHRoaXMuaW1wb3J0U2NyaXB0
cykgewogCiBkZXNjcmlwdGlvbigiVGVzdCBJbmRleGVkREIncyBvcGVuQ3Vyc29yLiIpOwogCi10
ZXN0KCk7Ci0KLWZ1bmN0aW9uIHRlc3QoKQotewotICAgIHJlbW92ZVZlbmRvclByZWZpeGVzKCk7
Ci0gICAgcmVxdWVzdCA9IGV2YWxBbmRMb2coImluZGV4ZWREQi5vcGVuKCdjdXJzb3ItZGVsZXRl
JykiKTsKLSAgICByZXF1ZXN0Lm9uc3VjY2VzcyA9IG9wZW5TdWNjZXNzOwotICAgIHJlcXVlc3Qu
b25lcnJvciA9IHVuZXhwZWN0ZWRFcnJvckNhbGxiYWNrOwotfQotCi1mdW5jdGlvbiBvcGVuU3Vj
Y2VzcygpCi17Ci0gICAgdmFyIGRiID0gZXZhbEFuZExvZygiZGIgPSBldmVudC50YXJnZXQucmVz
dWx0Iik7Ci0KLSAgICByZXF1ZXN0ID0gZXZhbEFuZExvZygiZGIuc2V0VmVyc2lvbignbmV3IHZl
cnNpb24nKSIpOwotICAgIHJlcXVlc3Qub25zdWNjZXNzID0gc2V0VmVyc2lvblN1Y2Nlc3M7Ci0g
ICAgcmVxdWVzdC5vbmVycm9yID0gdW5leHBlY3RlZEVycm9yQ2FsbGJhY2s7Ci19CitpbmRleGVk
REJUZXN0KHNldFZlcnNpb25TdWNjZXNzLCBvcGVuQ3Vyc29yKTsKIAogZnVuY3Rpb24gc2V0VmVy
c2lvblN1Y2Nlc3MoKQogewotICAgIGRlYnVnKCJzZXRWZXJzaW9uU3VjY2VzcygpOiIpOwotICAg
IHNlbGYudHJhbnMgPSBldmFsQW5kTG9nKCJ0cmFucyA9IGV2ZW50LnRhcmdldC5yZXN1bHQiKTsK
LSAgICBzaG91bGRCZU5vbk51bGwoInRyYW5zIik7Ci0gICAgdHJhbnMub25hYm9ydCA9IHVuZXhw
ZWN0ZWRBYm9ydENhbGxiYWNrOwotICAgIHRyYW5zLm9uY29tcGxldGUgPSBvcGVuQ3Vyc29yOwot
Ci0gICAgZGVsZXRlQWxsT2JqZWN0U3RvcmVzKGRiKTsKLQogICAgIHZhciBvYmplY3RTdG9yZSA9
IGV2YWxBbmRMb2coIm9iamVjdFN0b3JlID0gZGIuY3JlYXRlT2JqZWN0U3RvcmUoJ3Rlc3QnKSIp
OwogICAgIGV2YWxBbmRMb2coIm9iamVjdFN0b3JlLmFkZCgnbXlWYWx1ZTEnLCAnbXlLZXkxJyki
KTsKICAgICBldmFsQW5kTG9nKCJvYmplY3RTdG9yZS5hZGQoJ215VmFsdWUyJywgJ215S2V5Micp
Iik7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9yZXNvdXJjZXMv
Y3Vyc29yLWluY29uc2lzdGVuY3kuanMgYi9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9y
ZXNvdXJjZXMvY3Vyc29yLWluY29uc2lzdGVuY3kuanMKaW5kZXggNWYyNDg4MjA3YWM1YWJkMGZm
MjM0MDQwOTI5MzQ0NTUzMDFmNjE0My4uMmM3MmQzMWIwMTc1NDVjNzE2OWYzMGRlYmVlODJlZjAy
MzAyYzM1MCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvcmVzb3Vy
Y2VzL2N1cnNvci1pbmNvbnNpc3RlbmN5LmpzCisrKyBiL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5k
ZXhlZGRiL3Jlc291cmNlcy9jdXJzb3ItaW5jb25zaXN0ZW5jeS5qcwpAQCAtNSw0MSArNSwxNSBA
QCBpZiAodGhpcy5pbXBvcnRTY3JpcHRzKSB7CiAKIGRlc2NyaXB0aW9uKCJUZXN0IGNvbnNpc3Rl
bmN5IG9mIEluZGV4ZWREQidzIGN1cnNvciBvYmplY3RzLiIpOwogCi10ZXN0KCk7Ci0KLWZ1bmN0
aW9uIHRlc3QoKQotewotICAgIHJlbW92ZVZlbmRvclByZWZpeGVzKCk7Ci0gICAgcmVxdWVzdCA9
IGV2YWxBbmRMb2coImluZGV4ZWREQi5vcGVuKCdjdXJzb3ItaW5jb25zaXN0ZW5jeScpIik7Ci0g
ICAgcmVxdWVzdC5vbnN1Y2Nlc3MgPSBvcGVuU3VjY2VzczsKLSAgICByZXF1ZXN0Lm9uZXJyb3Ig
PSB1bmV4cGVjdGVkRXJyb3JDYWxsYmFjazsKLX0KLQotZnVuY3Rpb24gb3BlblN1Y2Nlc3MoKQot
ewotICAgIHZhciBkYiA9IGV2YWxBbmRMb2coImRiID0gZXZlbnQudGFyZ2V0LnJlc3VsdCIpOwot
Ci0gICAgcmVxdWVzdCA9IGV2YWxBbmRMb2coImRiLnNldFZlcnNpb24oJ25ldyB2ZXJzaW9uJyki
KTsKLSAgICByZXF1ZXN0Lm9uc3VjY2VzcyA9IHNldFZlcnNpb25TdWNjZXNzOwotICAgIHJlcXVl
c3Qub25lcnJvciA9IHVuZXhwZWN0ZWRFcnJvckNhbGxiYWNrOwotfQoraW5kZXhlZERCVGVzdChz
ZXRWZXJzaW9uU3VjY2Vzcywgb3BlbkJhc2ljQ3Vyc29yKTsKIAogZnVuY3Rpb24gc2V0VmVyc2lv
blN1Y2Nlc3MoKQogewotICAgIGRlYnVnKCJzZXRWZXJzaW9uU3VjY2VzcygpOiIpOwotICAgIHNl
bGYudHJhbnMgPSBldmFsQW5kTG9nKCJ0cmFucyA9IGV2ZW50LnRhcmdldC5yZXN1bHQiKTsKLSAg
ICBzaG91bGRCZU5vbk51bGwoInRyYW5zIik7Ci0gICAgdHJhbnMub25hYm9ydCA9IHVuZXhwZWN0
ZWRBYm9ydENhbGxiYWNrOwotICAgIHRyYW5zLm9uY29tcGxldGUgPSBvcGVuQmFzaWNDdXJzb3I7
Ci0KLSAgICBkZWxldGVBbGxPYmplY3RTdG9yZXMoZGIpOwotCiAgICAgdmFyIG9iamVjdFN0b3Jl
ID0gZXZhbEFuZExvZygib2JqZWN0U3RvcmUgPSBkYi5jcmVhdGVPYmplY3RTdG9yZSgnYmFzaWNT
dG9yZScpIik7CiAgICAgZXZhbEFuZExvZygib2JqZWN0U3RvcmUuYWRkKCdzb21lVmFsdWUxJywg
J3NvbWVLZXkxJykub25lcnJvciA9IHVuZXhwZWN0ZWRFcnJvckNhbGxiYWNrIik7CiAgICAgZXZh
bEFuZExvZygib2JqZWN0U3RvcmUuYWRkKCdzb21lVmFsdWUyJywgJ3NvbWVLZXkyJykub25lcnJv
ciA9IHVuZXhwZWN0ZWRFcnJvckNhbGxiYWNrIik7CiAgICAgZXZhbEFuZExvZygib2JqZWN0U3Rv
cmUuYWRkKCdzb21lVmFsdWUzJywgJ3NvbWVLZXkzJykub25lcnJvciA9IHVuZXhwZWN0ZWRFcnJv
ckNhbGxiYWNrIik7CiAgICAgZXZhbEFuZExvZygib2JqZWN0U3RvcmUuYWRkKCdzb21lVmFsdWU0
JywgJ3NvbWVLZXk0Jykub25lcnJvciA9IHVuZXhwZWN0ZWRFcnJvckNhbGxiYWNrIik7Ci0KIH0K
IAogZnVuY3Rpb24gb3BlbkJhc2ljQ3Vyc29yKCkKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3N0
b3JhZ2UvaW5kZXhlZGRiL3Jlc291cmNlcy9jdXJzb3ItaW5kZXgtZGVsZXRlLmpzIGIvTGF5b3V0
VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvcmVzb3VyY2VzL2N1cnNvci1pbmRleC1kZWxldGUuanMK
aW5kZXggZDFhZTk2OTdjMWNmYzNjY2Q3ZWEyZmQ0ZjZmMDhiNzM1MDIwNGExMy4uNzQ1MjBmMTBl
M2EyZDA2ZjRmNDAxYzBiYjdiMDZmNmU5MmZjZjEzNyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMv
c3RvcmFnZS9pbmRleGVkZGIvcmVzb3VyY2VzL2N1cnNvci1pbmRleC1kZWxldGUuanMKKysrIGIv
TGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvcmVzb3VyY2VzL2N1cnNvci1pbmRleC1kZWxl
dGUuanMKQEAgLTUsMzUgKzUsMTAgQEAgaWYgKHRoaXMuaW1wb3J0U2NyaXB0cykgewogCiBkZXNj
cmlwdGlvbigiVGVzdCBJbmRleGVkREIncyBvcGVuQ3Vyc29yLiIpOwogCi10ZXN0KCk7Ci0KLWZ1
bmN0aW9uIHRlc3QoKQotewotICAgIHJlbW92ZVZlbmRvclByZWZpeGVzKCk7Ci0gICAgcmVxdWVz
dCA9IGV2YWxBbmRMb2coImluZGV4ZWREQi5vcGVuKCdjdXJzb3ItaW5kZXgtZGVsZXRlJykiKTsK
LSAgICByZXF1ZXN0Lm9uc3VjY2VzcyA9IG9wZW5TdWNjZXNzOwotICAgIHJlcXVlc3Qub25lcnJv
ciA9IHVuZXhwZWN0ZWRFcnJvckNhbGxiYWNrOwotfQotCi1mdW5jdGlvbiBvcGVuU3VjY2Vzcygp
Ci17Ci0gICAgdmFyIGRiID0gZXZhbEFuZExvZygiZGIgPSBldmVudC50YXJnZXQucmVzdWx0Iik7
Ci0KLSAgICByZXF1ZXN0ID0gZXZhbEFuZExvZygiZGIuc2V0VmVyc2lvbignbmV3IHZlcnNpb24n
KSIpOwotICAgIHJlcXVlc3Qub25zdWNjZXNzID0gc2V0VmVyc2lvblN1Y2Nlc3M7Ci0gICAgcmVx
dWVzdC5vbmVycm9yID0gdW5leHBlY3RlZEVycm9yQ2FsbGJhY2s7Ci19CitpbmRleGVkREJUZXN0
KHNldFZlcnNpb25TdWNjZXNzLCBvcGVuQ3Vyc29yKTsKIAogZnVuY3Rpb24gc2V0VmVyc2lvblN1
Y2Nlc3MoKQogewotICAgIGRlYnVnKCJzZXRWZXJzaW9uU3VjY2VzcygpOiIpOwotICAgIHNlbGYu
dHJhbnMgPSBldmFsQW5kTG9nKCJ0cmFucyA9IGV2ZW50LnRhcmdldC5yZXN1bHQiKTsKLSAgICBz
aG91bGRCZU5vbk51bGwoInRyYW5zIik7Ci0gICAgdHJhbnMub25hYm9ydCA9IHVuZXhwZWN0ZWRB
Ym9ydENhbGxiYWNrOwotICAgIHRyYW5zLm9uY29tcGxldGUgPSBvcGVuQ3Vyc29yOwotCi0gICAg
ZGVsZXRlQWxsT2JqZWN0U3RvcmVzKGRiKTsKLQogICAgIG9iamVjdFN0b3JlID0gZXZhbEFuZExv
Zygib2JqZWN0U3RvcmUgPSBkYi5jcmVhdGVPYmplY3RTdG9yZSgndGVzdCcpIik7CiAgICAgZXZh
bEFuZExvZygib2JqZWN0U3RvcmUuY3JlYXRlSW5kZXgoJ3Rlc3RJbmRleCcsICd4JykiKTsKIApA
QCAtMTA2LDQgKzgxLDUgQEAgZnVuY3Rpb24gdmVyaWZ5T2JqZWN0RGVsZXRlZCgpCiB7CiAgICAg
c2hvdWxkQmUoImV2ZW50LnRhcmdldC5yZXN1bHQiLCAidW5kZWZpbmVkIik7CiAgICAgZmluaXNo
SlNUZXN0KCk7Ci19ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQorfQorCmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9yZXNvdXJjZXMvY3Vyc29yLWtleS1vcmRl
ci5qcyBiL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL3Jlc291cmNlcy9jdXJzb3Ita2V5
LW9yZGVyLmpzCmluZGV4IGVkY2U1ODBmMmU2ZjE3OGYwYjFjOGU1MmU4OWZhOTc3NjNhN2ZjZWMu
LmFmMmY4ZjU0MWU0Mzc2NDEwYjcwNGViMGUxODg3MDNlZjRlNjBmMDggMTAwNjQ0Ci0tLSBhL0xh
eW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL3Jlc291cmNlcy9jdXJzb3Ita2V5LW9yZGVyLmpz
CisrKyBiL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL3Jlc291cmNlcy9jdXJzb3Ita2V5
LW9yZGVyLmpzCkBAIC01LDMxICs1LDkgQEAgaWYgKHRoaXMuaW1wb3J0U2NyaXB0cykgewogCiBk
ZXNjcmlwdGlvbigiVGVzdCBJbmRleGVkREIga2V5cyBvcmRlcmluZyBhbmQgcmVhZGJhY2sgZnJv
bSBjdXJzb3JzLiIpOwogCi1mdW5jdGlvbiB0ZXN0KCkKLXsKLSAgICByZW1vdmVWZW5kb3JQcmVm
aXhlcygpOwotCi0gICAgcHJlcGFyZURhdGFiYXNlKCk7Ci19Ci0KIGZ1bmN0aW9uIHByZXBhcmVE
YXRhYmFzZSgpCiB7Ci0gICAgZGVidWcoIiIpOwotICAgIGRlbGV0ZVJlcXVlc3QgPSBldmFsQW5k
TG9nKCJpbmRleGVkREIuZGVsZXRlRGF0YWJhc2UoJ2N1cnNvci1rZXktb3JkZXInKSIpOwotICAg
IGRlbGV0ZVJlcXVlc3Qub25lcnJvciA9IHVuZXhwZWN0ZWRFcnJvckNhbGxiYWNrOwotICAgIGRl
bGV0ZVJlcXVlc3Qub25zdWNjZXNzID0gZnVuY3Rpb24gKCkgewotICAgICAgICBldmFsQW5kTG9n
KCJvcGVucmVxID0gaW5kZXhlZERCLm9wZW4oJ2N1cnNvci1rZXktb3JkZXInKSIpOwotICAgICAg
ICBvcGVucmVxLm9uZXJyb3IgPSB1bmV4cGVjdGVkRXJyb3JDYWxsYmFjazsKLSAgICAgICAgb3Bl
bnJlcS5vbnN1Y2Nlc3MgPSBmdW5jdGlvbigpIHsKLSAgICAgICAgICAgIGV2YWxBbmRMb2coImRi
ID0gb3BlbnJlcS5yZXN1bHQiKTsKLSAgICAgICAgICAgIGV2YWxBbmRMb2coInZlcnJlcSA9IGRi
LnNldFZlcnNpb24oJzEnKSIpOwotICAgICAgICAgICAgdmVycmVxLm9uZXJyb3IgPSB1bmV4cGVj
dGVkRXJyb3JDYWxsYmFjazsKLSAgICAgICAgICAgIHZlcnJlcS5vbnN1Y2Nlc3MgPSBmdW5jdGlv
bigpIHsKLSAgICAgICAgICAgICAgICBldmFsQW5kTG9nKCJkYi5jcmVhdGVPYmplY3RTdG9yZSgn
c3RvcmUnKSIpOwotICAgICAgICAgICAgICAgIHZlcnJlcS5yZXN1bHQub25jb21wbGV0ZSA9IHBv
cHVsYXRlU3RvcmU7Ci0gICAgICAgICAgICB9OwotICAgICAgICB9OwotICAgIH07CisgICAgZXZh
bEFuZExvZygiZGIuY3JlYXRlT2JqZWN0U3RvcmUoJ3N0b3JlJykiKTsKIH0KIAogc2VsZi5rZXlz
ID0gWwpAQCAtMjI2LDQgKzIwNCw0IEBAIGZ1bmN0aW9uIHRlc3RLZXlDb21wYXJlKCkKICAgICB9
CiB9CiAKLXRlc3QoKTsKXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCitpbmRleGVkREJUZXN0
KHByZXBhcmVEYXRhYmFzZSwgcG9wdWxhdGVTdG9yZSk7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9zdG9yYWdlL2luZGV4ZWRkYi9yZXNvdXJjZXMvY3Vyc29yLXByZXYtbm8tZHVwbGljYXRlLmpz
IGIvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvcmVzb3VyY2VzL2N1cnNvci1wcmV2LW5v
LWR1cGxpY2F0ZS5qcwppbmRleCAyYjA4MzNiYzcyMDYwM2EzZjhjZWQyZjRjMGU3NTQxNjQyNWQ5
NDA1Li4xMGY4NzA0ZGEzMzVjM2Y3ZjI5NDU2ZmNlY2ZkOTZlYzg0MDNlZTk3IDEwMDY0NAotLS0g
YS9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9yZXNvdXJjZXMvY3Vyc29yLXByZXYtbm8t
ZHVwbGljYXRlLmpzCisrKyBiL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL3Jlc291cmNl
cy9jdXJzb3ItcHJldi1uby1kdXBsaWNhdGUuanMKQEAgLTUsMzEgKzUsMTAgQEAgaWYgKHRoaXMu
aW1wb3J0U2NyaXB0cykgewogCiBkZXNjcmlwdGlvbigiVGVzdCBJbmRleGVkREIgYmVoYXZpb3Ig
d2hlbiBpdGVyYXRpbmcgYmFja3dhcmRzIHdpdGggYW5kIHdpdGhvdXQgTk9fRFVQTElDQVRFIik7
CiAKLWZ1bmN0aW9uIHRlc3QoKQotewotICAgIHJlbW92ZVZlbmRvclByZWZpeGVzKCk7Ci0KLSAg
ICBwcmVwYXJlRGF0YWJhc2UoKTsKLX0KLQogZnVuY3Rpb24gcHJlcGFyZURhdGFiYXNlKCkKIHsK
LSAgICBkZWJ1ZygiIik7Ci0gICAgZXZhbEFuZExvZygib3BlbnJlcSA9IGluZGV4ZWREQi5vcGVu
KCdjdXJzb3ItcHJldi1uby1kdXBsaWNhdGUnKSIpOwotICAgIG9wZW5yZXEub25lcnJvciA9IHVu
ZXhwZWN0ZWRFcnJvckNhbGxiYWNrOwotICAgIG9wZW5yZXEub25zdWNjZXNzID0gZnVuY3Rpb24o
KQotICAgIHsKLSAgICAgICAgZXZhbEFuZExvZygiZGIgPSBvcGVucmVxLnJlc3VsdCIpOwotICAg
ICAgICBldmFsQW5kTG9nKCJ2ZXJyZXEgPSBkYi5zZXRWZXJzaW9uKCcxJykiKTsKLSAgICAgICAg
dmVycmVxLm9uZXJyb3IgPSB1bmV4cGVjdGVkRXJyb3JDYWxsYmFjazsKLSAgICAgICAgdmVycmVx
Lm9uc3VjY2VzcyA9IGZ1bmN0aW9uKCkKLSAgICAgICAgewotICAgICAgICAgICAgZGVsZXRlQWxs
T2JqZWN0U3RvcmVzKGRiKTsKLSAgICAgICAgICAgIHN0b3JlID0gZXZhbEFuZExvZygic3RvcmUg
PSBkYi5jcmVhdGVPYmplY3RTdG9yZSgnc3RvcmUnKSIpOwotICAgICAgICAgICAgZXZhbEFuZExv
Zygic3RvcmUuY3JlYXRlSW5kZXgoJ2luZGV4JywgJ3NvcnRlZCcpIik7Ci0gICAgICAgICAgICB2
ZXJyZXEucmVzdWx0Lm9uY29tcGxldGUgPSBwb3B1bGF0ZVN0b3JlOwotICAgICAgICB9OwotICAg
IH07CisgICAgc3RvcmUgPSBldmFsQW5kTG9nKCJzdG9yZSA9IGRiLmNyZWF0ZU9iamVjdFN0b3Jl
KCdzdG9yZScpIik7CisgICAgZXZhbEFuZExvZygic3RvcmUuY3JlYXRlSW5kZXgoJ2luZGV4Jywg
J3NvcnRlZCcpIik7CiB9CiAKIGZ1bmN0aW9uIHBvcHVsYXRlU3RvcmUoKQpAQCAtMjMzLDQgKzIx
Miw0IEBAIGZ1bmN0aW9uIHJ1blRlc3Qob3BlbkN1cnNvciwgZXhwKQogICAgIHJldHVybiByZXN1
bHQ7CiB9CiAKLXRlc3QoKTsKXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCitpbmRleGVkREJU
ZXN0KHByZXBhcmVEYXRhYmFzZSwgcG9wdWxhdGVTdG9yZSk7CmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9yZXNvdXJjZXMvY3Vyc29yLXByaW1hcnkta2V5LW9yZGVy
LmpzIGIvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvcmVzb3VyY2VzL2N1cnNvci1wcmlt
YXJ5LWtleS1vcmRlci5qcwppbmRleCAwMTE5ZGVkZTNjMTliNGJkNzYyM2NjMDczOGQ4OGRkNjIy
MDdhYzRhLi5lYTk3MDZmMGJlMzNhZWE0NzkzNzdhNmJlMmZjMDFhMzA3ZDg3MjI3IDEwMDY0NAot
LS0gYS9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9yZXNvdXJjZXMvY3Vyc29yLXByaW1h
cnkta2V5LW9yZGVyLmpzCisrKyBiL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL3Jlc291
cmNlcy9jdXJzb3ItcHJpbWFyeS1rZXktb3JkZXIuanMKQEAgLTUsMzIgKzUsMTAgQEAgaWYgKHRo
aXMuaW1wb3J0U2NyaXB0cykgewogCiBkZXNjcmlwdGlvbigiVGVzdCBJbmRleGVkREIgcHJpbWFy
eSBrZXkgb3JkZXJpbmcgYW5kIHJlYWRiYWNrIGZyb20gY3Vyc29ycy4iKTsKIAotZnVuY3Rpb24g
dGVzdCgpCi17Ci0gICAgcmVtb3ZlVmVuZG9yUHJlZml4ZXMoKTsKLQotICAgIHByZXBhcmVEYXRh
YmFzZSgpOwotfQotCiBmdW5jdGlvbiBwcmVwYXJlRGF0YWJhc2UoKQogewotICAgIGRlYnVnKCIi
KTsKLSAgICBkZWxldGVSZXF1ZXN0ID0gZXZhbEFuZExvZygiaW5kZXhlZERCLmRlbGV0ZURhdGFi
YXNlKCdjdXJzb3ItcHJpbWFyeS1rZXktb3JkZXInKSIpOwotICAgIGRlbGV0ZVJlcXVlc3Qub25l
cnJvciA9IHVuZXhwZWN0ZWRFcnJvckNhbGxiYWNrOwotICAgIGRlbGV0ZVJlcXVlc3Qub25zdWNj
ZXNzID0gZnVuY3Rpb24gKCkgewotICAgICAgICBldmFsQW5kTG9nKCJvcGVuUmVxdWVzdCA9IGlu
ZGV4ZWREQi5vcGVuKCdjdXJzb3ItcHJpbWFyeS1rZXktb3JkZXInKSIpOwotICAgICAgICBvcGVu
UmVxdWVzdC5vbmVycm9yID0gdW5leHBlY3RlZEVycm9yQ2FsbGJhY2s7Ci0gICAgICAgIG9wZW5S
ZXF1ZXN0Lm9uc3VjY2VzcyA9IGZ1bmN0aW9uKCkgewotICAgICAgICAgICAgZXZhbEFuZExvZygi
ZGIgPSBvcGVuUmVxdWVzdC5yZXN1bHQiKTsKLSAgICAgICAgICAgIGV2YWxBbmRMb2coInZlcnNp
b25DaGFuZ2VSZXF1ZXN0ID0gZGIuc2V0VmVyc2lvbignMScpIik7Ci0gICAgICAgICAgICB2ZXJz
aW9uQ2hhbmdlUmVxdWVzdC5vbmVycm9yID0gdW5leHBlY3RlZEVycm9yQ2FsbGJhY2s7Ci0gICAg
ICAgICAgICB2ZXJzaW9uQ2hhbmdlUmVxdWVzdC5vbnN1Y2Nlc3MgPSBmdW5jdGlvbigpIHsKLSAg
ICAgICAgICAgICAgICBldmFsQW5kTG9nKCJzdG9yZSA9IGRiLmNyZWF0ZU9iamVjdFN0b3JlKCdz
dG9yZScpIik7Ci0gICAgICAgICAgICAgICAgZXZhbEFuZExvZygiaW5kZXggPSBzdG9yZS5jcmVh
dGVJbmRleCgnaW5kZXgnLCAnaW5kZXhLZXknKSIpOwotICAgICAgICAgICAgICAgIHZlcnNpb25D
aGFuZ2VSZXF1ZXN0LnJlc3VsdC5vbmNvbXBsZXRlID0gcG9wdWxhdGVTdG9yZTsKLSAgICAgICAg
ICAgIH07Ci0gICAgICAgIH07Ci0gICAgfTsKKyAgICBldmFsQW5kTG9nKCJzdG9yZSA9IGRiLmNy
ZWF0ZU9iamVjdFN0b3JlKCdzdG9yZScpIik7CisgICAgZXZhbEFuZExvZygiaW5kZXggPSBzdG9y
ZS5jcmVhdGVJbmRleCgnaW5kZXgnLCAnaW5kZXhLZXknKSIpOwogfQogCiBzZWxmLmtleXMgPSBb
CkBAIC05OCw0ICs3Niw0IEBAIGZ1bmN0aW9uIGNoZWNrU3RvcmUoKQogICAgIH07CiB9CiAKLXRl
c3QoKTsKXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCitpbmRleGVkREJUZXN0KHByZXBhcmVE
YXRhYmFzZSwgcG9wdWxhdGVTdG9yZSk7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9zdG9yYWdl
L2luZGV4ZWRkYi9yZXNvdXJjZXMvY3Vyc29yLXJldmVyc2UtYnVnLmpzIGIvTGF5b3V0VGVzdHMv
c3RvcmFnZS9pbmRleGVkZGIvcmVzb3VyY2VzL2N1cnNvci1yZXZlcnNlLWJ1Zy5qcwppbmRleCAz
YzJkNTEzZTJjYmE0MWM3M2Y2OWU3YTIzYmYyY2Y2MzQ0N2Q2YTNhLi5iZjllY2RkOTMwNGMyOGI3
ODUzYmRkYjg1ZDNmMDI3ZGZkOTQ0M2IwIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9zdG9yYWdl
L2luZGV4ZWRkYi9yZXNvdXJjZXMvY3Vyc29yLXJldmVyc2UtYnVnLmpzCisrKyBiL0xheW91dFRl
c3RzL3N0b3JhZ2UvaW5kZXhlZGRiL3Jlc291cmNlcy9jdXJzb3ItcmV2ZXJzZS1idWcuanMKQEAg
LTUsMjkgKzUsMTAgQEAgaWYgKHRoaXMuaW1wb3J0U2NyaXB0cykgewogCiBkZXNjcmlwdGlvbigi
VGVzdCBJbmRleGVkREIga2V5cyBvcmRlcmluZyBhbmQgcmVhZGJhY2sgZnJvbSBjdXJzb3JzLiIp
OwogCi1mdW5jdGlvbiB0ZXN0KCkKLXsKLSAgICByZW1vdmVWZW5kb3JQcmVmaXhlcygpOwotCi0g
ICAgcHJlcGFyZURhdGFiYXNlKCk7Ci19Ci0KIGZ1bmN0aW9uIHByZXBhcmVEYXRhYmFzZSgpCiB7
Ci0gICAgZGVidWcoIiIpOwotICAgIGV2YWxBbmRMb2coIm9wZW5yZXEgPSBpbmRleGVkREIub3Bl
bignY3Vyc29yLXJldmVyc2UtYnVnJykiKTsKLSAgICBvcGVucmVxLm9uZXJyb3IgPSB1bmV4cGVj
dGVkRXJyb3JDYWxsYmFjazsKLSAgICBvcGVucmVxLm9uc3VjY2VzcyA9IGZ1bmN0aW9uKCkgewot
ICAgICAgICBldmFsQW5kTG9nKCJkYiA9IG9wZW5yZXEucmVzdWx0Iik7Ci0gICAgICAgIGV2YWxB
bmRMb2coInZlcnJlcSA9IGRiLnNldFZlcnNpb24oJzEnKSIpOwotICAgICAgICB2ZXJyZXEub25l
cnJvciA9IHVuZXhwZWN0ZWRFcnJvckNhbGxiYWNrOwotICAgICAgICB2ZXJyZXEub25zdWNjZXNz
ID0gZnVuY3Rpb24oKSB7Ci0gICAgICAgICAgICBkZWxldGVBbGxPYmplY3RTdG9yZXMoZGIpOwot
ICAgICAgICAgICAgc3RvcmUgPSBldmFsQW5kTG9nKCJzdG9yZSA9IGRiLmNyZWF0ZU9iamVjdFN0
b3JlKCdzdG9yZScpIik7Ci0gICAgICAgICAgICBldmFsQW5kTG9nKCJzdG9yZS5jcmVhdGVJbmRl
eCgnaW5kZXgnLCAnJykiKTsKLSAgICAgICAgICAgIHZlcnJlcS5yZXN1bHQub25jb21wbGV0ZSA9
IHBvcHVsYXRlU3RvcmU7Ci0gICAgICAgIH07Ci0gICAgfTsKKyAgICBzdG9yZSA9IGV2YWxBbmRM
b2coInN0b3JlID0gZGIuY3JlYXRlT2JqZWN0U3RvcmUoJ3N0b3JlJykiKTsKKyAgICBldmFsQW5k
TG9nKCJzdG9yZS5jcmVhdGVJbmRleCgnaW5kZXgnLCAnJykiKTsKIH0KIAogZnVuY3Rpb24gcG9w
dWxhdGVTdG9yZSgpCkBAIC04NSw3ICs2Niw3IEBAIGZ1bmN0aW9uIHRlc3RDdXJzb3IoKQogICAg
ICAgICBzaG91bGRCZSgiY3Vyc29yLnByaW1hcnlLZXkiLCAidGVzdC5leHBlY3RlZCIpOwogCiAg
ICAgICAgIC8vIExldCB0aGUgdHJhbnNhY3Rpb24gZmluaXNoLgotICAgIH0KKyAgICB9OwogCiAg
ICAgZGVidWcoInVwcGVyQm91bmQ6ICIgKyB0ZXN0LnVwcGVyQm91bmQgKyAiIG9wZW46ICIgKyB0
ZXN0Lm9wZW4gKyAiIGV4cGVjdGVkOiAiICsgdGVzdC5leHBlY3RlZCk7CiAgICAgc3RvcmVSZXEg
PSBldmFsQW5kTG9nKCJzdG9yZVJlcSA9IHN0b3JlLm9wZW5DdXJzb3IoSURCS2V5UmFuZ2UudXBw
ZXJCb3VuZCh0ZXN0LnVwcGVyQm91bmQsIHRlc3Qub3BlbiksICdwcmV2JykiKTsKQEAgLTk4LDQg
Kzc5LDQgQEAgZnVuY3Rpb24gdGVzdEN1cnNvcigpCiAgICAgaW5kZXhLZXlSZXEub25zdWNjZXNz
ID0gdGVzdEZ1bmN0aW9uOwogfQogCi10ZXN0KCk7ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmls
ZQoraW5kZXhlZERCVGVzdChwcmVwYXJlRGF0YWJhc2UsIHBvcHVsYXRlU3RvcmUpOwpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvcmVzb3VyY2VzL2N1cnNvci1za2lw
LWRlbGV0ZWQuanMgYi9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9yZXNvdXJjZXMvY3Vy
c29yLXNraXAtZGVsZXRlZC5qcwppbmRleCA2MzYwMDc0ODZmZWFlMDNkNDIwODYzYzI5MWUzYjJm
NGRhMDhkNGY3Li40NmIxMzQ0YTVhMmYwMTYxYmFiMjRkZjk3YTE4N2FlMjRmOWU2YmI5IDEwMDY0
NAotLS0gYS9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9yZXNvdXJjZXMvY3Vyc29yLXNr
aXAtZGVsZXRlZC5qcworKysgYi9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9yZXNvdXJj
ZXMvY3Vyc29yLXNraXAtZGVsZXRlZC5qcwpAQCAtMTAsNDEgKzEwLDE2IEBAIHZhciBuYW1lcyA9
IFsnQWxwaGEnLCAnQnJhdm8nLCAnQ2hhcmxpZScsICdEZWx0YScsICdFY2hvJywgJ0ZveHRyb3Qn
LCAnR29sZicsCiAgICAgICAgICAgICAgJ09zY2FyJywgJ1BhcGEnLCAnUXVlYmVjJywgJ1JvbWVv
JywgJ1NpZXJyYScsICdUYW5nbycsICdVbmlmb3JtJywKICAgICAgICAgICAgICAnVmljdG9yJywg
J1doaXNrZXknLCAnWC1yYXknLCAnWWFua2VlJywgJ1p1bHUnXTsKIAotdGVzdCgpOwotCi1mdW5j
dGlvbiB0ZXN0KCkKLXsKLSAgICByZW1vdmVWZW5kb3JQcmVmaXhlcygpOwotICAgIHJlcXVlc3Qg
PSBldmFsQW5kTG9nKCJpbmRleGVkREIub3BlbignY3Vyc29yLXNraXAtZGVsZXRlZCcpIik7Ci0g
ICAgcmVxdWVzdC5vbnN1Y2Nlc3MgPSBvcGVuU3VjY2VzczsKLSAgICByZXF1ZXN0Lm9uZXJyb3Ig
PSB1bmV4cGVjdGVkRXJyb3JDYWxsYmFjazsKLX0KLQotZnVuY3Rpb24gb3BlblN1Y2Nlc3MoKQot
ewotICAgIHZhciBkYiA9IGV2YWxBbmRMb2coImRiID0gZXZlbnQudGFyZ2V0LnJlc3VsdCIpOwot
Ci0gICAgcmVxdWVzdCA9IGV2YWxBbmRMb2coImRiLnNldFZlcnNpb24oJ25ldyB2ZXJzaW9uJyki
KTsKLSAgICByZXF1ZXN0Lm9uc3VjY2VzcyA9IHNldFZlcnNpb25TdWNjZXNzOwotICAgIHJlcXVl
c3Qub25lcnJvciA9IHVuZXhwZWN0ZWRFcnJvckNhbGxiYWNrOwotfQoraW5kZXhlZERCVGVzdChz
ZXRWZXJzaW9uU3VjY2VzcywgYmFzaWNDdXJzb3JUZXN0KTsKIAogZnVuY3Rpb24gc2V0VmVyc2lv
blN1Y2Nlc3MoKQogewotICAgIGRlYnVnKCJzZXRWZXJzaW9uU3VjY2VzcygpOiIpOwotICAgIHNl
bGYudHJhbnMgPSBldmFsQW5kTG9nKCJ0cmFucyA9IGV2ZW50LnRhcmdldC5yZXN1bHQiKTsKLSAg
ICBzaG91bGRCZU5vbk51bGwoInRyYW5zIik7Ci0gICAgdHJhbnMub25hYm9ydCA9IHVuZXhwZWN0
ZWRBYm9ydENhbGxiYWNrOwotICAgIHRyYW5zLm9uY29tcGxldGUgPSBiYXNpY0N1cnNvclRlc3Q7
Ci0KLSAgICBkZWxldGVBbGxPYmplY3RTdG9yZXMoZGIpOwotCiAgICAgdmFyIG9iamVjdFN0b3Jl
ID0gZXZhbEFuZExvZygib2JqZWN0U3RvcmUgPSBkYi5jcmVhdGVPYmplY3RTdG9yZSgnc3RvcmUn
LCB7a2V5UGF0aDogJ2lkJ30pIik7CiAgICAgZXZhbEFuZExvZygib2JqZWN0U3RvcmUuY3JlYXRl
SW5kZXgoJ25hbWVJbmRleCcsICduYW1lJykiKTsKICAgICByZXNldE9iamVjdFN0b3JlKGZ1bmN0
aW9uKCkge30pOwogfQogCi12YXIgc2lsZW50RXJyb3JIYW5kbGVyID0gZnVuY3Rpb24oKSB7IGV2
ZW50LnByZXZlbnREZWZhdWx0KCk7IH0KK3ZhciBzaWxlbnRFcnJvckhhbmRsZXIgPSBmdW5jdGlv
bigpIHsgZXZlbnQucHJldmVudERlZmF1bHQoKTsgfTsKIAogZnVuY3Rpb24gcmVzZXRPYmplY3RT
dG9yZShjYWxsYmFjaykKIHsKQEAgLTE5MCw0ICsxNjUsNCBAQCBmdW5jdGlvbiB0cmFuc2FjdGlv
bkNvbXBsZXRlKCkKIHsKICAgICBkZWJ1ZygidHJhbnNhY3Rpb25Db21wbGV0ZSgpOiIpOwogICAg
IGZpbmlzaEpTVGVzdCgpOwotfQpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKK30KZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL3Jlc291cmNlcy9jdXJzb3ItdXBk
YXRlLXZhbHVlLWFyZ3VtZW50LXJlcXVpcmVkLmpzIGIvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRl
eGVkZGIvcmVzb3VyY2VzL2N1cnNvci11cGRhdGUtdmFsdWUtYXJndW1lbnQtcmVxdWlyZWQuanMK
aW5kZXggMTdiNTFkOTdkYjNmNDAzZDZmZTIzMzZiYzVmMzA3MTFmMWNlMmY4My4uZjBiNDM4Y2Fh
OThmODU5ZDY3NGQ0ZWFlYTJiNTcwMWFjODg2MDQ4OCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMv
c3RvcmFnZS9pbmRleGVkZGIvcmVzb3VyY2VzL2N1cnNvci11cGRhdGUtdmFsdWUtYXJndW1lbnQt
cmVxdWlyZWQuanMKKysrIGIvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvcmVzb3VyY2Vz
L2N1cnNvci11cGRhdGUtdmFsdWUtYXJndW1lbnQtcmVxdWlyZWQuanMKQEAgLTUsMzYgKzUsMTUg
QEAgaWYgKHRoaXMuaW1wb3J0U2NyaXB0cykgewogCiBkZXNjcmlwdGlvbigiVGVzdCBJbmRleGVk
REIgY3Vyc29yLnVwZGF0ZSByZXF1aXJlZCBhcmd1bWVudHMiKTsKIAotZnVuY3Rpb24gdGVzdCgp
Ci17Ci0gICAgcmVtb3ZlVmVuZG9yUHJlZml4ZXMoKTsKLQotICAgIG5hbWUgPSBzZWxmLmxvY2F0
aW9uLnBhdGhuYW1lOwotICAgIHJlcXVlc3QgPSBldmFsQW5kTG9nKCJpbmRleGVkREIub3Blbihu
YW1lKSIpOwotICAgIHJlcXVlc3Qub25zdWNjZXNzID0gb3BlblN1Y2Nlc3M7Ci0gICAgcmVxdWVz
dC5vbmVycm9yID0gdW5leHBlY3RlZEVycm9yQ2FsbGJhY2s7Ci19Ci0KLWZ1bmN0aW9uIG9wZW5T
dWNjZXNzKCkKLXsKLSAgICBkYiA9IGV2YWxBbmRMb2coImRiID0gZXZlbnQudGFyZ2V0LnJlc3Vs
dCIpOwotCi0gICAgcmVxdWVzdCA9IGV2YWxBbmRMb2coInJlcXVlc3QgPSBkYi5zZXRWZXJzaW9u
KCcxJykiKTsKLSAgICByZXF1ZXN0Lm9uc3VjY2VzcyA9IHRlc3RHcm91cDE7Ci0gICAgcmVxdWVz
dC5vbmVycm9yID0gdW5leHBlY3RlZEVycm9yQ2FsbGJhY2s7Ci19Ci0KIGZ1bmN0aW9uIHRlc3RH
cm91cDEoKQogewotICAgIGRlbGV0ZUFsbE9iamVjdFN0b3JlcyhkYik7Ci0KICAgICBvYmplY3RT
dG9yZSA9IGV2YWxBbmRMb2coImRiLmNyZWF0ZU9iamVjdFN0b3JlKCdhdXRvSW5jcmVtZW50Jywg
eyBhdXRvSW5jcmVtZW50OiB0cnVlIH0pOyIpOwogCiAgICAgcmVxdWVzdCA9IGV2YWxBbmRMb2co
InJlcXVlc3QgPSBvYmplY3RTdG9yZS5vcGVuQ3Vyc29yKCk7Iik7CiAgICAgcmVxdWVzdC5vbmVy
cm9yID0gdW5leHBlY3RlZEVycm9yQ2FsbGJhY2s7CiAgICAgcmVxdWVzdC5vbnN1Y2Nlc3MgPSBm
dW5jdGlvbiAoZXZlbnQpIHsKICAgICAgIHRlc3RHcm91cDIoKTsKLSAgICB9CisgICAgfTsKIH0K
IAogZnVuY3Rpb24gdGVzdEdyb3VwMigpCkBAIC02Niw3ICs0NSw3IEBAIGZ1bmN0aW9uIHRlc3RH
cm91cDMoKQogICAgICAgICAgICAgdGVzdEZhaWxlZCgiY3Vyc29yIHdhcyBudWxsIik7CiAgICAg
ICAgIH0KICAgICAgICAgZmluaXNoSlNUZXN0KCk7Ci0gICAgfQorICAgIH07CiB9CiAKLXRlc3Qo
KTsKXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCitpbmRleGVkREJUZXN0KHRlc3RHcm91cDEp
OwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvcmVzb3VyY2VzL2N1
cnNvci11cGRhdGUuanMgYi9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9yZXNvdXJjZXMv
Y3Vyc29yLXVwZGF0ZS5qcwppbmRleCA3ODllNjJkODljN2U1Njg1OTViZWUyZGY4YTA0ZGE4ZmMw
NGY4YzIxLi5jNjk1YmUyNDhhN2VkMTNmYjk3Nzk4YTkwYTUwOGIzZTVjN2YxOGVhIDEwMDY0NAot
LS0gYS9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9yZXNvdXJjZXMvY3Vyc29yLXVwZGF0
ZS5qcworKysgYi9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9yZXNvdXJjZXMvY3Vyc29y
LXVwZGF0ZS5qcwpAQCAtNSwzNSArNSwxMCBAQCBpZiAodGhpcy5pbXBvcnRTY3JpcHRzKSB7CiAK
IGRlc2NyaXB0aW9uKCJUZXN0IEluZGV4ZWREQidzIGN1cnNvciB1cGRhdGUuIik7CiAKLXRlc3Qo
KTsKLQotZnVuY3Rpb24gdGVzdCgpCi17Ci0gICAgcmVtb3ZlVmVuZG9yUHJlZml4ZXMoKTsKLSAg
ICByZXF1ZXN0ID0gZXZhbEFuZExvZygiaW5kZXhlZERCLm9wZW4oJ2N1cnNvci11cGRhdGUnKSIp
OwotICAgIHJlcXVlc3Qub25zdWNjZXNzID0gb3BlblN1Y2Nlc3M7Ci0gICAgcmVxdWVzdC5vbmVy
cm9yID0gdW5leHBlY3RlZEVycm9yQ2FsbGJhY2s7Ci19Ci0KLWZ1bmN0aW9uIG9wZW5TdWNjZXNz
KCkKLXsKLSAgICB2YXIgZGIgPSBldmFsQW5kTG9nKCJkYiA9IGV2ZW50LnRhcmdldC5yZXN1bHQi
KTsKLQotICAgIHJlcXVlc3QgPSBldmFsQW5kTG9nKCJkYi5zZXRWZXJzaW9uKCduZXcgdmVyc2lv
bicpIik7Ci0gICAgcmVxdWVzdC5vbnN1Y2Nlc3MgPSBzZXRWZXJzaW9uU3VjY2VzczsKLSAgICBy
ZXF1ZXN0Lm9uZXJyb3IgPSB1bmV4cGVjdGVkRXJyb3JDYWxsYmFjazsKLX0KK2luZGV4ZWREQlRl
c3Qoc2V0VmVyc2lvblN1Y2Nlc3MsIG9wZW5CYXNpY0N1cnNvcik7CiAKIGZ1bmN0aW9uIHNldFZl
cnNpb25TdWNjZXNzKCkKIHsKLSAgICBkZWJ1Zygic2V0VmVyc2lvblN1Y2Nlc3MoKToiKTsKLSAg
ICBzZWxmLnRyYW5zID0gZXZhbEFuZExvZygidHJhbnMgPSBldmVudC50YXJnZXQucmVzdWx0Iik7
Ci0gICAgc2hvdWxkQmVOb25OdWxsKCJ0cmFucyIpOwotICAgIHRyYW5zLm9uYWJvcnQgPSB1bmV4
cGVjdGVkQWJvcnRDYWxsYmFjazsKLSAgICB0cmFucy5vbmNvbXBsZXRlID0gb3BlbkJhc2ljQ3Vy
c29yOwotCi0gICAgZGVsZXRlQWxsT2JqZWN0U3RvcmVzKGRiKTsKLQogICAgIHZhciBvYmplY3RT
dG9yZSA9IGV2YWxBbmRMb2coIm9iamVjdFN0b3JlID0gZGIuY3JlYXRlT2JqZWN0U3RvcmUoJ2Jh
c2ljU3RvcmUnKSIpOwogICAgIGV2YWxBbmRMb2coIm9iamVjdFN0b3JlLmFkZCgnbXlWYWx1ZTEn
LCAnbXlLZXkxJykub25lcnJvciA9IHVuZXhwZWN0ZWRFcnJvckNhbGxiYWNrIik7CiAgICAgZXZh
bEFuZExvZygib2JqZWN0U3RvcmUuYWRkKCdteVZhbHVlMicsICdteUtleTInKS5vbmVycm9yID0g
dW5leHBlY3RlZEVycm9yQ2FsbGJhY2siKTsKQEAgLTIzMiw0ICsyMDcsNCBAQCBmdW5jdGlvbiB0
cmFuc2FjdGlvbkNvbXBsZXRlKCkKIHsKICAgICBkZWJ1ZygidHJhbnNhY3Rpb25Db21wbGV0ZSgp
Iik7CiAgICAgZmluaXNoSlNUZXN0KCk7Ci19ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQor
fQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvcmVzb3VyY2VzL2N1
cnNvci12YWx1ZS5qcyBiL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL3Jlc291cmNlcy9j
dXJzb3ItdmFsdWUuanMKaW5kZXggOTFlZmU4NzQxMTlkYTE3ZmVjMzZlZDZlZTVlYzA0MmY3YjA3
NThjOS4uOGI1NDgwODYwNTcwMDg1ZjZiOTIwNzVkNzRhODQ5Y2NiMDk3NTAxMiAxMDA2NDQKLS0t
IGEvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvcmVzb3VyY2VzL2N1cnNvci12YWx1ZS5q
cworKysgYi9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9yZXNvdXJjZXMvY3Vyc29yLXZh
bHVlLmpzCkBAIC01LDI1ICs1LDkgQEAgaWYgKHRoaXMuaW1wb3J0U2NyaXB0cykgewogCiBkZXNj
cmlwdGlvbigiVGVzdCBJbmRleGVkREIncyBjdXJzb3IgdmFsdWUgcHJvcGVydHkuIik7CiAKLXJl
bW92ZVZlbmRvclByZWZpeGVzKCk7Ci1vcGVuRGF0YWJhc2UoKTsKLQotZnVuY3Rpb24gb3BlbkRh
dGFiYXNlKCkKK2Z1bmN0aW9uIHByZXBhcmVEYXRhYmFzZSgpCiB7Ci0gICAgZXZhbEFuZExvZygi
cmVxdWVzdCA9IGluZGV4ZWREQi5vcGVuKCdjdXJzb3ItdmFsdWUnKSIpOwotICAgIHJlcXVlc3Qu
b25lcnJvciA9IHVuZXhwZWN0ZWRFcnJvckNhbGxiYWNrOwotICAgIHJlcXVlc3Qub25zdWNjZXNz
ID0gZnVuY3Rpb24oKSB7Ci0gICAgICAgIGV2YWxBbmRMb2coImRiID0gcmVxdWVzdC5yZXN1bHQi
KTsKLSAgICAgICAgZXZhbEFuZExvZygicmVxdWVzdCA9IGRiLnNldFZlcnNpb24oJ25ldyB2ZXJz
aW9uJykiKTsKLSAgICAgICAgcmVxdWVzdC5vbmVycm9yID0gdW5leHBlY3RlZEVycm9yQ2FsbGJh
Y2s7Ci0gICAgICAgIHJlcXVlc3Qub25zdWNjZXNzID0gZnVuY3Rpb24oKSB7Ci0gICAgICAgICAg
ICBldmFsQW5kTG9nKCJ0cmFuc2FjdGlvbiA9IHJlcXVlc3QucmVzdWx0Iik7Ci0gICAgICAgICAg
ICB0cmFuc2FjdGlvbi5vbmFib3J0ID0gdW5leHBlY3RlZEFib3J0Q2FsbGJhY2s7Ci0gICAgICAg
ICAgICBkZWxldGVBbGxPYmplY3RTdG9yZXMoZGIpOwotICAgICAgICAgICAgZXZhbEFuZExvZygi
ZGIuY3JlYXRlT2JqZWN0U3RvcmUoJ3N0b3JlJykiKTsKLSAgICAgICAgICAgIHRyYW5zYWN0aW9u
Lm9uY29tcGxldGUgPSB0ZXN0Q3Vyc29yOwotICAgICAgICB9OwotICAgIH07CisgICAgZXZhbEFu
ZExvZygiZGIuY3JlYXRlT2JqZWN0U3RvcmUoJ3N0b3JlJykiKTsKIH0KIAogZnVuY3Rpb24gdGVz
dEN1cnNvcigpCkBAIC0xMjEsNCArMTA1LDYgQEAgZnVuY3Rpb24gZW5zdXJlTW9kaWZpY2F0aW9u
c05vdFBlcnNpc3RlZCgpCiAgICAgICAgIHNob3VsZEJlKCJjdXJzb3IudmFsdWUuZm9vIiwgInVu
ZGVmaW5lZCIpOwogICAgIH07CiAgICAgdHJhbnNhY3Rpb24ub25jb21wbGV0ZSA9IGZpbmlzaEpT
VGVzdDsKLSB9ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQorfQorCitpbmRleGVkREJUZXN0
KHByZXBhcmVEYXRhYmFzZSwgdGVzdEN1cnNvcik7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9z
dG9yYWdlL2luZGV4ZWRkYi9yZXNvdXJjZXMvZGF0YS1jb3JydXB0aW9uLmpzIGIvTGF5b3V0VGVz
dHMvc3RvcmFnZS9pbmRleGVkZGIvcmVzb3VyY2VzL2RhdGEtY29ycnVwdGlvbi5qcwppbmRleCAy
YTA4YmYxZDQzOGRlNWY3YTg0ZjUwMzlmOThjNDczY2E1NzEwNjA0Li42ZjAzOTcwNmZkMGYzNDk3
MjczOTY4ZGM0NDJkMDhiNGFhNGI4OGYxIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9zdG9yYWdl
L2luZGV4ZWRkYi9yZXNvdXJjZXMvZGF0YS1jb3JydXB0aW9uLmpzCisrKyBiL0xheW91dFRlc3Rz
L3N0b3JhZ2UvaW5kZXhlZGRiL3Jlc291cmNlcy9kYXRhLWNvcnJ1cHRpb24uanMKQEAgLTUsMzQg
KzUsOCBAQCBpZiAodGhpcy5pbXBvcnRTY3JpcHRzKSB7CiAKIGRlc2NyaXB0aW9uKCJUZXN0IHRo
YXQgZGF0YSBpbnNlcnRlZCBpbnRvIEluZGV4ZWREQiBkb2VzIG5vdCBnZXQgY29ycnVwdGVkIG9u
IGRpc2suIik7CiAKLWZ1bmN0aW9uIHRlc3QoKQotewotICAgIHJlbW92ZVZlbmRvclByZWZpeGVz
KCk7Ci0gICAgcmVxdWVzdCA9IGV2YWxBbmRMb2coImluZGV4ZWREQi5vcGVuKCdkYXRhLWNvcnJ1
cHRpb24nKSIpOwotICAgIHJlcXVlc3Qub25zdWNjZXNzID0gb3BlblN1Y2Nlc3M7Ci0gICAgcmVx
dWVzdC5vbmVycm9yID0gdW5leHBlY3RlZEVycm9yQ2FsbGJhY2s7Ci19Ci0KLWZ1bmN0aW9uIG9w
ZW5TdWNjZXNzKCkKLXsKLSAgICBkZWJ1Zygib3BlblN1Y2Nlc3MoKToiKTsKLSAgICBzZWxmLmRi
ID0gZXZhbEFuZExvZygiZGIgPSBldmVudC50YXJnZXQucmVzdWx0Iik7Ci0KLSAgICByZXF1ZXN0
ID0gZXZhbEFuZExvZygiZGIuc2V0VmVyc2lvbignbmV3IHZlcnNpb24nKSIpOwotICAgIHJlcXVl
c3Qub25zdWNjZXNzID0gc2V0VmVyc2lvblN1Y2Nlc3M7Ci0gICAgcmVxdWVzdC5vbmVycm9yID0g
dW5leHBlY3RlZEVycm9yQ2FsbGJhY2s7Ci19Ci0KIGZ1bmN0aW9uIHNldFZlcnNpb25TdWNjZXNz
KCkKIHsKLSAgICBkZWJ1Zygic2V0VmVyc2lvblN1Y2Nlc3MoKToiKTsKLSAgICBzZWxmLnRyYW5z
ID0gZXZhbEFuZExvZygidHJhbnMgPSBldmVudC50YXJnZXQucmVzdWx0Iik7Ci0gICAgc2hvdWxk
QmVOb25OdWxsKCJ0cmFucyIpOwotICAgIHRyYW5zLm9uYWJvcnQgPSB1bmV4cGVjdGVkQWJvcnRD
YWxsYmFjazsKLSAgICB0cmFucy5vbmNvbXBsZXRlID0gYWRkRGF0YTsKLQotICAgIGRlbGV0ZUFs
bE9iamVjdFN0b3JlcyhkYik7Ci0KICAgICBldmFsQW5kTG9nKCJkYi5jcmVhdGVPYmplY3RTdG9y
ZSgnc3RvcmVOYW1lJykiKTsKIH0KIApAQCAtNjIsNCArMzYsNCBAQCBmdW5jdGlvbiBkb0NoZWNr
KCkKICAgICBmaW5pc2hKU1Rlc3QoKTsKIH0KIAotdGVzdCgpOwpcIE5vIG5ld2xpbmUgYXQgZW5k
IG9mIGZpbGUKK2luZGV4ZWREQlRlc3Qoc2V0VmVyc2lvblN1Y2Nlc3MsIGFkZERhdGEpOwpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvcmVzb3VyY2VzL2RhdGFiYXNl
LW5hbWUtdW5kZWZpbmVkLmpzIGIvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvcmVzb3Vy
Y2VzL2RhdGFiYXNlLW5hbWUtdW5kZWZpbmVkLmpzCmluZGV4IDBiNjQ5Y2M1Y2E1NzM1ZjNiNDVj
ZTUyYTgwYzc5NmRlOGQyYmJhZjcuLmZkMmE3MzJlZDA4M2MwYzcwZDhjNzUzMjVhZDA1NDlmNmUy
YmQ1OWQgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL3Jlc291cmNl
cy9kYXRhYmFzZS1uYW1lLXVuZGVmaW5lZC5qcworKysgYi9MYXlvdXRUZXN0cy9zdG9yYWdlL2lu
ZGV4ZWRkYi9yZXNvdXJjZXMvZGF0YWJhc2UtbmFtZS11bmRlZmluZWQuanMKQEAgLTEyLDQgKzEy
LDQgQEAgZnVuY3Rpb24gdGVzdCgpCiAgICAgZmluaXNoSlNUZXN0KCk7CiB9CiAKLXRlc3QoKTsK
XCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCit0ZXN0KCk7CmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9yZXNvdXJjZXMvZGVsZXRlLWNsb3NlZC1kYXRhYmFzZS1v
YmplY3QuanMgYi9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9yZXNvdXJjZXMvZGVsZXRl
LWNsb3NlZC1kYXRhYmFzZS1vYmplY3QuanMKaW5kZXggNWQzMjlhMmI3YTNiNzBjMDdlMWZmZjhi
NmQ2ZWJhMThkMjg0MDNiOC4uOTNhMjdiZTIwNDg0YzE5MDY0NGQ1YmYxYmE1NjliZDIwODYyZjlj
NiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvcmVzb3VyY2VzL2Rl
bGV0ZS1jbG9zZWQtZGF0YWJhc2Utb2JqZWN0LmpzCisrKyBiL0xheW91dFRlc3RzL3N0b3JhZ2Uv
aW5kZXhlZGRiL3Jlc291cmNlcy9kZWxldGUtY2xvc2VkLWRhdGFiYXNlLW9iamVjdC5qcwpAQCAt
NDYsNCArNDYsNCBAQCBmdW5jdGlvbiBzZXRWZXJzaW9uKCkKICAgICB2ZXJzaW9uQ2hhbmdlUmVx
dWVzdC5vbnN1Y2Nlc3MgPSBmaW5pc2hKU1Rlc3Q7CiB9CiAKLXRlc3QoKTsKXCBObyBuZXdsaW5l
IGF0IGVuZCBvZiBmaWxlCit0ZXN0KCk7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9zdG9yYWdl
L2luZGV4ZWRkYi9yZXNvdXJjZXMvZGVsZXRlLXJhbmdlLmpzIGIvTGF5b3V0VGVzdHMvc3RvcmFn
ZS9pbmRleGVkZGIvcmVzb3VyY2VzL2RlbGV0ZS1yYW5nZS5qcwppbmRleCBhMmUxNDVlY2E0NmQ3
OGVhYTFmNmJhYjE0M2Y4YzQ2OTVhNmNhM2RlLi40YjNmMTNkODZiYTViYTY3MzkzYWE0YjhkMjlm
YTRmN2FmYjk4MTVkIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9y
ZXNvdXJjZXMvZGVsZXRlLXJhbmdlLmpzCisrKyBiL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhl
ZGRiL3Jlc291cmNlcy9kZWxldGUtcmFuZ2UuanMKQEAgLTUsMjkgKzUsOSBAQCBpZiAodGhpcy5p
bXBvcnRTY3JpcHRzKSB7CiAKIGRlc2NyaXB0aW9uKCJUZXN0IEluZGV4ZWREQidzIElEQk9iamVj
dFN0b3JlLmRlbGV0ZShJREJLZXlSYW5nZSkgbWV0aG9kLiIpOwogCi1mdW5jdGlvbiB0ZXN0KCkK
K2Z1bmN0aW9uIHByZXBhcmVEYXRhYmFzZSgpCiB7Ci0gICAgcmVtb3ZlVmVuZG9yUHJlZml4ZXMo
KTsKLQotICAgIGV2YWxBbmRMb2coInJlcXVlc3QgPSBpbmRleGVkREIuZGVsZXRlRGF0YWJhc2Uo
J2RlbGV0ZS1yYW5nZScpIik7Ci0gICAgcmVxdWVzdC5vbmVycm9yID0gdW5leHBlY3RlZEVycm9y
Q2FsbGJhY2s7Ci0gICAgcmVxdWVzdC5vbnN1Y2Nlc3MgPSBmdW5jdGlvbiAoKSB7Ci0gICAgICAg
IGV2YWxBbmRMb2coInJlcXVlc3QgPSBpbmRleGVkREIub3BlbignZGVsZXRlLXJhbmdlJykiKTsK
LSAgICAgICAgcmVxdWVzdC5vbmVycm9yID0gdW5leHBlY3RlZEVycm9yQ2FsbGJhY2s7Ci0gICAg
ICAgIHJlcXVlc3Qub25zdWNjZXNzID0gZnVuY3Rpb24gKCkgewotICAgICAgICAgICAgZXZhbEFu
ZExvZygiZGIgPSByZXF1ZXN0LnJlc3VsdCIpOwotICAgICAgICAgICAgZXZhbEFuZExvZygicmVx
dWVzdCA9IGRiLnNldFZlcnNpb24oJzEnKSIpOwotICAgICAgICAgICAgcmVxdWVzdC5vbmVycm9y
ID0gdW5leHBlY3RlZEVycm9yQ2FsbGJhY2s7Ci0gICAgICAgICAgICByZXF1ZXN0Lm9uc3VjY2Vz
cyA9IGZ1bmN0aW9uICgpIHsKLSAgICAgICAgICAgICAgICBldmFsQW5kTG9nKCJ0cmFucyA9IHJl
cXVlc3QucmVzdWx0Iik7Ci0gICAgICAgICAgICAgICAgdHJhbnMub25hYm9ydCA9IHVuZXhwZWN0
ZWRBYm9ydENhbGxiYWNrOwotCi0gICAgICAgICAgICAgICAgZXZhbEFuZExvZygiZGIuY3JlYXRl
T2JqZWN0U3RvcmUoJ3N0b3JlJykiKTsKLQotICAgICAgICAgICAgICAgIHRyYW5zLm9uY29tcGxl
dGUgPSBydW5UZXN0czsKLSAgICAgICAgICAgIH07Ci0gICAgICAgIH07Ci0gICAgfQorICAgIGV2
YWxBbmRMb2coImRiLmNyZWF0ZU9iamVjdFN0b3JlKCdzdG9yZScpIik7CiB9CiAKIGZ1bmN0aW9u
IGNoZWNrS2V5cyhleHBlY3RlZCwgY2FsbGJhY2spCkBAIC04Nyw0ICs2Nyw0IEBAIGZ1bmN0aW9u
IHJ1blRlc3RzKCkKICAgICBuZXh0VGVzdCgpOwogfQogCi10ZXN0KCk7ClwgTm8gbmV3bGluZSBh
dCBlbmQgb2YgZmlsZQoraW5kZXhlZERCVGVzdChwcmVwYXJlRGF0YWJhc2UsIHJ1blRlc3RzKTsK
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL3Jlc291cmNlcy9kZWxl
dGVJbmRleC5qcyBiL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL3Jlc291cmNlcy9kZWxl
dGVJbmRleC5qcwppbmRleCA2NzM0ZmVlMmUzYTIyOTVlYTc0ZGM2YjFhMzg0YzgwNzdkNjFiMTdm
Li44ZmIyMjBmNGE1NWZlNmM3NDMzZTg1NTM2N2YwZTcyMzM0YWYzN2QyIDEwMDY0NAotLS0gYS9M
YXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9yZXNvdXJjZXMvZGVsZXRlSW5kZXguanMKKysr
IGIvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvcmVzb3VyY2VzL2RlbGV0ZUluZGV4Lmpz
CkBAIC01LDMxICs1LDggQEAgaWYgKHRoaXMuaW1wb3J0U2NyaXB0cykgewogCiBkZXNjcmlwdGlv
bigiVGVzdCBJbmRleGVkREIgZGVsZXRlSW5kZXggbWV0aG9kIik7CiAKLWZ1bmN0aW9uIHRlc3Qo
KQotewotICAgIHJlbW92ZVZlbmRvclByZWZpeGVzKCk7Ci0gICAgcmVxdWVzdCA9IGV2YWxBbmRM
b2coImluZGV4ZWREQi5vcGVuKCdkZWxldGVJbmRleCcpIik7Ci0gICAgcmVxdWVzdC5vbnN1Y2Nl
c3MgPSBvcGVuU3VjY2VzczsKLSAgICByZXF1ZXN0Lm9uZXJyb3IgPSB1bmV4cGVjdGVkRXJyb3JD
YWxsYmFjazsKLX0KLQotZnVuY3Rpb24gb3BlblN1Y2Nlc3MoKQotewotICAgIGRiID0gZXZhbEFu
ZExvZygiZGIgPSBldmVudC50YXJnZXQucmVzdWx0Iik7Ci0KLSAgICByZXF1ZXN0ID0gZXZhbEFu
ZExvZygicmVxdWVzdCA9IGRiLnNldFZlcnNpb24oJzEnKSIpOwotICAgIHJlcXVlc3Qub25zdWNj
ZXNzID0gdHdpZGRsZUluZGV4ZXM7Ci0gICAgcmVxdWVzdC5vbmVycm9yID0gdW5leHBlY3RlZEVy
cm9yQ2FsbGJhY2s7Ci19Ci0KIGZ1bmN0aW9uIHR3aWRkbGVJbmRleGVzKCkKIHsKLSAgICB0cmFu
c2FjdGlvbiA9IGV2YWxBbmRMb2coInRyYW5zYWN0aW9uID0gZXZlbnQudGFyZ2V0LnJlc3VsdDsi
KTsKLSAgICB0cmFuc2FjdGlvbi5vbmVycm9yID0gdW5leHBlY3RlZEVycm9yQ2FsbGJhY2s7Ci0g
ICAgdHJhbnNhY3Rpb24ub25hYm9ydCA9IHVuZXhwZWN0ZWRBYm9ydENhbGxiYWNrOwotICAgIHRy
YW5zYWN0aW9uLm9uY29tcGxldGUgPSBwb3N0VHdpZGRsaW5nOwotICAgIGRlbGV0ZUFsbE9iamVj
dFN0b3JlcyhkYik7Ci0KICAgICBvYmplY3RTdG9yZSA9IGV2YWxBbmRMb2coIm9iamVjdFN0b3Jl
ID0gZGIuY3JlYXRlT2JqZWN0U3RvcmUoJ2ZvbycpOyIpOwogICAgIGV2YWxBbmRFeHBlY3RFeGNl
cHRpb24oIm9iamVjdFN0b3JlLmRlbGV0ZUluZGV4KCdmaXJzdCcpIiwgIkRPTUV4Y2VwdGlvbi5O
T1RfRk9VTkRfRVJSIiwgIidOb3RGb3VuZEVycm9yJyIpOwogICAgIHNob3VsZFRocm93KCJvYmpl
Y3RTdG9yZS5kZWxldGVJbmRleCgpIik7IC8vIFR5cGVFcnJvcjogbm90IGVub3VnaCBhcmd1bWVu
dHMuCkBAIC00Nyw0ICsyNCw0IEBAIGZ1bmN0aW9uIHBvc3RUd2lkZGxpbmcoKQogICAgIGZpbmlz
aEpTVGVzdCgpOwogfQogCi10ZXN0KCk7ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQoraW5k
ZXhlZERCVGVzdCh0d2lkZGxlSW5kZXhlcywgcG9zdFR3aWRkbGluZyk7CmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9yZXNvdXJjZXMvZGVsZXRlT2JqZWN0U3RvcmUt
bmFtZS1hcmd1bWVudC1yZXF1aXJlZC5qcyBiL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRi
L3Jlc291cmNlcy9kZWxldGVPYmplY3RTdG9yZS1uYW1lLWFyZ3VtZW50LXJlcXVpcmVkLmpzCmlu
ZGV4IDAzNjdiYmY2ZTE0MjkxMmYxY2MzZjU2NGQ5OTU4ZWEzZDNhODU3NzcuLjgyZWQyOWQ5MTE2
ZWFiZjlmZWI3M2U0YWM0OWQzNGRkMjA1NDNkNzkgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3N0
b3JhZ2UvaW5kZXhlZGRiL3Jlc291cmNlcy9kZWxldGVPYmplY3RTdG9yZS1uYW1lLWFyZ3VtZW50
LXJlcXVpcmVkLmpzCisrKyBiL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL3Jlc291cmNl
cy9kZWxldGVPYmplY3RTdG9yZS1uYW1lLWFyZ3VtZW50LXJlcXVpcmVkLmpzCkBAIC01LDMxICs1
LDkgQEAgaWYgKHRoaXMuaW1wb3J0U2NyaXB0cykgewogCiBkZXNjcmlwdGlvbigiVGVzdCBJbmRl
eGVkREIgZGVsZXRlT2JqZWN0U3RvcmUgcmVxdWlyZWQgYXJndW1lbnQiKTsKIAotZnVuY3Rpb24g
dGVzdCgpCi17Ci0gICAgcmVtb3ZlVmVuZG9yUHJlZml4ZXMoKTsKLQotICAgIG5hbWUgPSBzZWxm
LmxvY2F0aW9uLnBhdGhuYW1lOwotICAgIHJlcXVlc3QgPSBldmFsQW5kTG9nKCJpbmRleGVkREIu
b3BlbihuYW1lKSIpOwotICAgIHJlcXVlc3Qub25zdWNjZXNzID0gb3BlblN1Y2Nlc3M7Ci0gICAg
cmVxdWVzdC5vbmVycm9yID0gdW5leHBlY3RlZEVycm9yQ2FsbGJhY2s7Ci19Ci0KLWZ1bmN0aW9u
IG9wZW5TdWNjZXNzKCkKLXsKLSAgICBkYiA9IGV2YWxBbmRMb2coImRiID0gZXZlbnQudGFyZ2V0
LnJlc3VsdCIpOwotCi0gICAgcmVxdWVzdCA9IGV2YWxBbmRMb2coInJlcXVlc3QgPSBkYi5zZXRW
ZXJzaW9uKCcxJykiKTsKLSAgICByZXF1ZXN0Lm9uc3VjY2VzcyA9IGNyZWF0ZUFuZFBvcHVsYXRl
T2JqZWN0U3RvcmU7Ci0gICAgcmVxdWVzdC5vbmVycm9yID0gdW5leHBlY3RlZEVycm9yQ2FsbGJh
Y2s7Ci19Ci0KIGZ1bmN0aW9uIGNyZWF0ZUFuZFBvcHVsYXRlT2JqZWN0U3RvcmUoKQogewotICAg
IGRlbGV0ZUFsbE9iamVjdFN0b3JlcyhkYik7Ci0KICAgICBzaG91bGRUaHJvdygiZGIuZGVsZXRl
T2JqZWN0U3RvcmUoKTsiKTsKLSAgICBmaW5pc2hKU1Rlc3QoKTsKIH0KIAotdGVzdCgpOwpcIE5v
IG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKK2luZGV4ZWREQlRlc3QoY3JlYXRlQW5kUG9wdWxhdGVP
YmplY3RTdG9yZSwgZmluaXNoSlNUZXN0KTsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3N0b3Jh
Z2UvaW5kZXhlZGRiL3Jlc291cmNlcy9kZWxldGVPYmplY3RTdG9yZS1udWxsLW5hbWUuanMgYi9M
YXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9yZXNvdXJjZXMvZGVsZXRlT2JqZWN0U3RvcmUt
bnVsbC1uYW1lLmpzCmluZGV4IGJhYTYzMTc3ZDIzNGMyNmUwY2ZkODU0MzljZGE0ODU0N2NlMDIz
OTcuLjk4ZmIxOWYyY2EzYWNjN2E5OGE5ODBlOWY4ZWRmYzUwMmY1OGZjZWQgMTAwNjQ0Ci0tLSBh
L0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL3Jlc291cmNlcy9kZWxldGVPYmplY3RTdG9y
ZS1udWxsLW5hbWUuanMKKysrIGIvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvcmVzb3Vy
Y2VzL2RlbGV0ZU9iamVjdFN0b3JlLW51bGwtbmFtZS5qcwpAQCAtNSwzMiArNSwxMCBAQCBpZiAo
dGhpcy5pbXBvcnRTY3JpcHRzKSB7CiAKIGRlc2NyaXB0aW9uKCJUZXN0IEluZGV4ZWREQiBkZWxl
dGVPYmplY3RTdG9yZSByZXF1aXJlZCBhcmd1bWVudCIpOwogCi1mdW5jdGlvbiB0ZXN0KCkKLXsK
LSAgICByZW1vdmVWZW5kb3JQcmVmaXhlcygpOwotCi0gICAgbmFtZSA9IHNlbGYubG9jYXRpb24u
cGF0aG5hbWU7Ci0gICAgcmVxdWVzdCA9IGV2YWxBbmRMb2coImluZGV4ZWREQi5vcGVuKG5hbWUp
Iik7Ci0gICAgcmVxdWVzdC5vbnN1Y2Nlc3MgPSBvcGVuU3VjY2VzczsKLSAgICByZXF1ZXN0Lm9u
ZXJyb3IgPSB1bmV4cGVjdGVkRXJyb3JDYWxsYmFjazsKLX0KLQotZnVuY3Rpb24gb3BlblN1Y2Nl
c3MoKQotewotICAgIGRiID0gZXZhbEFuZExvZygiZGIgPSBldmVudC50YXJnZXQucmVzdWx0Iik7
Ci0KLSAgICByZXF1ZXN0ID0gZXZhbEFuZExvZygicmVxdWVzdCA9IGRiLnNldFZlcnNpb24oJzEn
KSIpOwotICAgIHJlcXVlc3Qub25zdWNjZXNzID0gY3JlYXRlQW5kUG9wdWxhdGVPYmplY3RTdG9y
ZTsKLSAgICByZXF1ZXN0Lm9uZXJyb3IgPSB1bmV4cGVjdGVkRXJyb3JDYWxsYmFjazsKLX0KLQog
ZnVuY3Rpb24gY3JlYXRlQW5kUG9wdWxhdGVPYmplY3RTdG9yZSgpCiB7Ci0gICAgZGVsZXRlQWxs
T2JqZWN0U3RvcmVzKGRiKTsKLQogICAgIGV2YWxBbmRMb2coImRiLmNyZWF0ZU9iamVjdFN0b3Jl
KCdudWxsJyk7Iik7CiAgICAgZXZhbEFuZExvZygiZGIuZGVsZXRlT2JqZWN0U3RvcmUobnVsbCk7
Iik7Ci0gICAgZmluaXNoSlNUZXN0KCk7CiB9CiAKLXRlc3QoKTsKXCBObyBuZXdsaW5lIGF0IGVu
ZCBvZiBmaWxlCitpbmRleGVkREJUZXN0KGNyZWF0ZUFuZFBvcHVsYXRlT2JqZWN0U3RvcmUsIGZp
bmlzaEpTVGVzdCk7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9y
ZXNvdXJjZXMvZGVsZXRlZC1vYmplY3RzLmpzIGIvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVk
ZGIvcmVzb3VyY2VzL2RlbGV0ZWQtb2JqZWN0cy5qcwppbmRleCA4NGU1ZDYyZWM1YzJjYjJmNDIy
YmM4OTczM2YwOGYyNzM2NWUwZWIwLi5kMTdjMGU3YWI0MzIwNDBmNDIyY2FjNmUxOGQ0NjVhM2I1
MGM4MGE0IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9yZXNvdXJj
ZXMvZGVsZXRlZC1vYmplY3RzLmpzCisrKyBiL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRi
L3Jlc291cmNlcy9kZWxldGVkLW9iamVjdHMuanMKQEAgLTUsODAgKzUsNTQgQEAgaWYgKHRoaXMu
aW1wb3J0U2NyaXB0cykgewogCiBkZXNjcmlwdGlvbigiVGVzdCB0aGF0IEluZGV4ZWREQiBvYmpl
Y3RzIHRoYXQgaGF2ZSBiZWVuIGRlbGV0ZWQgdGhyb3cgZXhjZXB0aW9ucyIpOwogCi1mdW5jdGlv
biB0ZXN0KCkKK2Z1bmN0aW9uIHByZXBhcmVEYXRhYmFzZSgpCiB7Ci0gICAgcmVtb3ZlVmVuZG9y
UHJlZml4ZXMoKTsKLSAgICBldmFsQW5kTG9nKCJkYm5hbWUgPSBzZWxmLmxvY2F0aW9uLnBhdGhu
YW1lIik7Ci0gICAgZXZhbEFuZExvZygicmVxdWVzdCA9IGluZGV4ZWREQi5kZWxldGVEYXRhYmFz
ZShkYm5hbWUpIik7Ci0gICAgcmVxdWVzdC5vbmVycm9yID0gdW5leHBlY3RlZEVycm9yQ2FsbGJh
Y2s7Ci0gICAgcmVxdWVzdC5vbnN1Y2Nlc3MgPSBvcGVuRGF0YWJhc2U7Ci19CisgICAgZXZhbEFu
ZExvZygiZGVsZXRlZFN0b3JlID0gZGIuY3JlYXRlT2JqZWN0U3RvcmUoJ2RlbGV0ZWRTdG9yZScp
Iik7CisgICAgZXZhbEFuZExvZygic3RvcmUgPSBkYi5jcmVhdGVPYmplY3RTdG9yZSgnc3RvcmUn
KSIpOworICAgIGV2YWxBbmRMb2coImRlbGV0ZWRJbmRleCA9IHN0b3JlLmNyZWF0ZUluZGV4KCdk
ZWxldGVkSW5kZXgnLCAncGF0aCcpIik7CiAKLWZ1bmN0aW9uIG9wZW5EYXRhYmFzZSgpCi17CiAg
ICAgZGVidWcoIiIpOwotICAgIGRlYnVnKCJvcGVuRGF0YWJhc2UoKToiKTsKLSAgICBldmFsQW5k
TG9nKCJyZXF1ZXN0ID0gaW5kZXhlZERCLm9wZW4oZGJuYW1lKSIpOwotICAgIHJlcXVlc3Qub25l
cnJvciA9IHVuZXhwZWN0ZWRFcnJvckNhbGxiYWNrOwotICAgIHJlcXVlc3Qub25zdWNjZXNzID0g
ZnVuY3Rpb24oKSB7Ci0gICAgICAgIGV2YWxBbmRMb2coImNvbm5lY3Rpb24gPSByZXF1ZXN0LnJl
c3VsdCIpOwotICAgICAgICBldmFsQW5kTG9nKCJyZXF1ZXN0ID0gY29ubmVjdGlvbi5zZXRWZXJz
aW9uKCcxJykiKTsKLSAgICAgICAgcmVxdWVzdC5vbmVycm9yID0gdW5leHBlY3RlZEVycm9yQ2Fs
bGJhY2s7Ci0gICAgICAgIHJlcXVlc3Qub25zdWNjZXNzID0gZnVuY3Rpb24oKSB7Ci0gICAgICAg
ICAgICB0cmFucyA9IHJlcXVlc3QucmVzdWx0OwotCi0gICAgICAgICAgICBkZWJ1ZygiIik7Ci0g
ICAgICAgICAgICBldmFsQW5kTG9nKCJkZWxldGVkU3RvcmUgPSBjb25uZWN0aW9uLmNyZWF0ZU9i
amVjdFN0b3JlKCdkZWxldGVkU3RvcmUnKSIpOwotICAgICAgICAgICAgZXZhbEFuZExvZygic3Rv
cmUgPSBjb25uZWN0aW9uLmNyZWF0ZU9iamVjdFN0b3JlKCdzdG9yZScpIik7Ci0gICAgICAgICAg
ICBldmFsQW5kTG9nKCJkZWxldGVkSW5kZXggPSBzdG9yZS5jcmVhdGVJbmRleCgnZGVsZXRlZElu
ZGV4JywgJ3BhdGgnKSIpOwotCi0gICAgICAgICAgICBkZWJ1ZygiIik7Ci0gICAgICAgICAgICBl
dmFsQW5kTG9nKCJjb25uZWN0aW9uLmRlbGV0ZU9iamVjdFN0b3JlKCdkZWxldGVkU3RvcmUnKSIp
OwotICAgICAgICAgICAgZXZhbEFuZExvZygic3RvcmUuZGVsZXRlSW5kZXgoJ2RlbGV0ZWRJbmRl
eCcpIik7CisgICAgZXZhbEFuZExvZygiZGIuZGVsZXRlT2JqZWN0U3RvcmUoJ2RlbGV0ZWRTdG9y
ZScpIik7CisgICAgZXZhbEFuZExvZygic3RvcmUuZGVsZXRlSW5kZXgoJ2RlbGV0ZWRJbmRleCcp
Iik7CiAKLSAgICAgICAgICAgIGRlYnVnKCIiKTsKLSAgICAgICAgICAgIGV2YWxBbmRFeHBlY3RF
eGNlcHRpb24oImRlbGV0ZWRTdG9yZS5wdXQoMCwgMCkiLCAiRE9NRXhjZXB0aW9uLklOVkFMSURf
U1RBVEVfRVJSIiwgIidJbnZhbGlkU3RhdGVFcnJvciciKTsKLSAgICAgICAgICAgIGV2YWxBbmRF
eHBlY3RFeGNlcHRpb24oImRlbGV0ZWRTdG9yZS5hZGQoMCwgMCkiLCAiRE9NRXhjZXB0aW9uLklO
VkFMSURfU1RBVEVfRVJSIiwgIidJbnZhbGlkU3RhdGVFcnJvciciKTsKLSAgICAgICAgICAgIGV2
YWxBbmRFeHBlY3RFeGNlcHRpb24oImRlbGV0ZWRTdG9yZS5kZWxldGUoMCkiLCAiRE9NRXhjZXB0
aW9uLklOVkFMSURfU1RBVEVfRVJSIiwgIidJbnZhbGlkU3RhdGVFcnJvciciKTsKLSAgICAgICAg
ICAgIGV2YWxBbmRFeHBlY3RFeGNlcHRpb24oImRlbGV0ZWRTdG9yZS5kZWxldGUoSURCS2V5UmFu
Z2Uub25seSgwKSkiLCAiRE9NRXhjZXB0aW9uLklOVkFMSURfU1RBVEVfRVJSIiwgIidJbnZhbGlk
U3RhdGVFcnJvciciKTsKLSAgICAgICAgICAgIGV2YWxBbmRFeHBlY3RFeGNlcHRpb24oImRlbGV0
ZWRTdG9yZS5nZXQoMCkiLCAiRE9NRXhjZXB0aW9uLklOVkFMSURfU1RBVEVfRVJSIiwgIidJbnZh
bGlkU3RhdGVFcnJvciciKTsKLSAgICAgICAgICAgIGV2YWxBbmRFeHBlY3RFeGNlcHRpb24oImRl
bGV0ZWRTdG9yZS5nZXQoSURCS2V5UmFuZ2Uub25seSgwKSkiLCAiRE9NRXhjZXB0aW9uLklOVkFM
SURfU1RBVEVfRVJSIiwgIidJbnZhbGlkU3RhdGVFcnJvciciKTsKLSAgICAgICAgICAgIGV2YWxB
bmRFeHBlY3RFeGNlcHRpb24oImRlbGV0ZWRTdG9yZS5jbGVhcigpIiwgIkRPTUV4Y2VwdGlvbi5J
TlZBTElEX1NUQVRFX0VSUiIsICInSW52YWxpZFN0YXRlRXJyb3InIik7Ci0gICAgICAgICAgICBl
dmFsQW5kRXhwZWN0RXhjZXB0aW9uKCJkZWxldGVkU3RvcmUub3BlbkN1cnNvcigpIiwgIkRPTUV4
Y2VwdGlvbi5JTlZBTElEX1NUQVRFX0VSUiIsICInSW52YWxpZFN0YXRlRXJyb3InIik7Ci0gICAg
ICAgICAgICBldmFsQW5kRXhwZWN0RXhjZXB0aW9uKCJkZWxldGVkU3RvcmUub3BlbkN1cnNvcigw
KSIsICJET01FeGNlcHRpb24uSU5WQUxJRF9TVEFURV9FUlIiLCAiJ0ludmFsaWRTdGF0ZUVycm9y
JyIpOwotICAgICAgICAgICAgZXZhbEFuZEV4cGVjdEV4Y2VwdGlvbigiZGVsZXRlZFN0b3JlLm9w
ZW5DdXJzb3IoMCwgJ25leHQnKSIsICJET01FeGNlcHRpb24uSU5WQUxJRF9TVEFURV9FUlIiLCAi
J0ludmFsaWRTdGF0ZUVycm9yJyIpOwotICAgICAgICAgICAgZXZhbEFuZEV4cGVjdEV4Y2VwdGlv
bigiZGVsZXRlZFN0b3JlLm9wZW5DdXJzb3IoSURCS2V5UmFuZ2Uub25seSgwKSkiLCAiRE9NRXhj
ZXB0aW9uLklOVkFMSURfU1RBVEVfRVJSIiwgIidJbnZhbGlkU3RhdGVFcnJvciciKTsKLSAgICAg
ICAgICAgIGV2YWxBbmRFeHBlY3RFeGNlcHRpb24oImRlbGV0ZWRTdG9yZS5vcGVuQ3Vyc29yKElE
QktleVJhbmdlLm9ubHkoMCksICduZXh0JykiLCAiRE9NRXhjZXB0aW9uLklOVkFMSURfU1RBVEVf
RVJSIiwgIidJbnZhbGlkU3RhdGVFcnJvciciKTsKLSAgICAgICAgICAgIGV2YWxBbmRFeHBlY3RF
eGNlcHRpb24oImRlbGV0ZWRTdG9yZS5jcmVhdGVJbmRleCgnbmFtZScsICdwYXRoJykiLCAiRE9N
RXhjZXB0aW9uLklOVkFMSURfU1RBVEVfRVJSIiwgIidJbnZhbGlkU3RhdGVFcnJvciciKTsKLSAg
ICAgICAgICAgIGV2YWxBbmRFeHBlY3RFeGNlcHRpb24oImRlbGV0ZWRTdG9yZS5pbmRleCgnbmFt
ZScpIiwgIkRPTUV4Y2VwdGlvbi5JTlZBTElEX1NUQVRFX0VSUiIsICInSW52YWxpZFN0YXRlRXJy
b3InIik7Ci0gICAgICAgICAgICBldmFsQW5kRXhwZWN0RXhjZXB0aW9uKCJkZWxldGVkU3RvcmUu
ZGVsZXRlSW5kZXgoJ25hbWUnKSIsICJET01FeGNlcHRpb24uSU5WQUxJRF9TVEFURV9FUlIiLCAi
J0ludmFsaWRTdGF0ZUVycm9yJyIpOwotICAgICAgICAgICAgZXZhbEFuZEV4cGVjdEV4Y2VwdGlv
bigiZGVsZXRlZFN0b3JlLmNvdW50KCkiLCAiRE9NRXhjZXB0aW9uLklOVkFMSURfU1RBVEVfRVJS
IiwgIidJbnZhbGlkU3RhdGVFcnJvciciKTsKLSAgICAgICAgICAgIGV2YWxBbmRFeHBlY3RFeGNl
cHRpb24oImRlbGV0ZWRTdG9yZS5jb3VudCgwKSIsICJET01FeGNlcHRpb24uSU5WQUxJRF9TVEFU
RV9FUlIiLCAiJ0ludmFsaWRTdGF0ZUVycm9yJyIpOwotICAgICAgICAgICAgZXZhbEFuZEV4cGVj
dEV4Y2VwdGlvbigiZGVsZXRlZFN0b3JlLmNvdW50KElEQktleVJhbmdlLm9ubHkoMCkpIiwgIkRP
TUV4Y2VwdGlvbi5JTlZBTElEX1NUQVRFX0VSUiIsICInSW52YWxpZFN0YXRlRXJyb3InIik7Ci0K
LSAgICAgICAgICAgIGRlYnVnKCIiKTsKLSAgICAgICAgICAgIGV2YWxBbmRFeHBlY3RFeGNlcHRp
b24oImRlbGV0ZWRJbmRleC5vcGVuQ3Vyc29yKCkiLCAiRE9NRXhjZXB0aW9uLklOVkFMSURfU1RB
VEVfRVJSIiwgIidJbnZhbGlkU3RhdGVFcnJvciciKTsKLSAgICAgICAgICAgIGV2YWxBbmRFeHBl
Y3RFeGNlcHRpb24oImRlbGV0ZWRJbmRleC5vcGVuQ3Vyc29yKDApIiwgIkRPTUV4Y2VwdGlvbi5J
TlZBTElEX1NUQVRFX0VSUiIsICInSW52YWxpZFN0YXRlRXJyb3InIik7Ci0gICAgICAgICAgICBl
dmFsQW5kRXhwZWN0RXhjZXB0aW9uKCJkZWxldGVkSW5kZXgub3BlbkN1cnNvcigwLCAnbmV4dCcp
IiwgIkRPTUV4Y2VwdGlvbi5JTlZBTElEX1NUQVRFX0VSUiIsICInSW52YWxpZFN0YXRlRXJyb3In
Iik7Ci0gICAgICAgICAgICBldmFsQW5kRXhwZWN0RXhjZXB0aW9uKCJkZWxldGVkSW5kZXgub3Bl
bkN1cnNvcihJREJLZXlSYW5nZS5vbmx5KDApKSIsICJET01FeGNlcHRpb24uSU5WQUxJRF9TVEFU
RV9FUlIiLCAiJ0ludmFsaWRTdGF0ZUVycm9yJyIpOwotICAgICAgICAgICAgZXZhbEFuZEV4cGVj
dEV4Y2VwdGlvbigiZGVsZXRlZEluZGV4Lm9wZW5DdXJzb3IoSURCS2V5UmFuZ2Uub25seSgwKSwg
J25leHQnKSIsICJET01FeGNlcHRpb24uSU5WQUxJRF9TVEFURV9FUlIiLCAiJ0ludmFsaWRTdGF0
ZUVycm9yJyIpOwotICAgICAgICAgICAgZXZhbEFuZEV4cGVjdEV4Y2VwdGlvbigiZGVsZXRlZElu
ZGV4Lm9wZW5LZXlDdXJzb3IoKSIsICJET01FeGNlcHRpb24uSU5WQUxJRF9TVEFURV9FUlIiLCAi
J0ludmFsaWRTdGF0ZUVycm9yJyIpOwotICAgICAgICAgICAgZXZhbEFuZEV4cGVjdEV4Y2VwdGlv
bigiZGVsZXRlZEluZGV4Lm9wZW5LZXlDdXJzb3IoMCkiLCAiRE9NRXhjZXB0aW9uLklOVkFMSURf
U1RBVEVfRVJSIiwgIidJbnZhbGlkU3RhdGVFcnJvciciKTsKLSAgICAgICAgICAgIGV2YWxBbmRF
eHBlY3RFeGNlcHRpb24oImRlbGV0ZWRJbmRleC5vcGVuS2V5Q3Vyc29yKDAsICduZXh0JykiLCAi
RE9NRXhjZXB0aW9uLklOVkFMSURfU1RBVEVfRVJSIiwgIidJbnZhbGlkU3RhdGVFcnJvciciKTsK
LSAgICAgICAgICAgIGV2YWxBbmRFeHBlY3RFeGNlcHRpb24oImRlbGV0ZWRJbmRleC5vcGVuS2V5
Q3Vyc29yKElEQktleVJhbmdlLm9ubHkoMCkpIiwgIkRPTUV4Y2VwdGlvbi5JTlZBTElEX1NUQVRF
X0VSUiIsICInSW52YWxpZFN0YXRlRXJyb3InIik7Ci0gICAgICAgICAgICBldmFsQW5kRXhwZWN0
RXhjZXB0aW9uKCJkZWxldGVkSW5kZXgub3BlbktleUN1cnNvcihJREJLZXlSYW5nZS5vbmx5KDAp
LCAnbmV4dCcpIiwgIkRPTUV4Y2VwdGlvbi5JTlZBTElEX1NUQVRFX0VSUiIsICInSW52YWxpZFN0
YXRlRXJyb3InIik7Ci0gICAgICAgICAgICBldmFsQW5kRXhwZWN0RXhjZXB0aW9uKCJkZWxldGVk
SW5kZXguZ2V0KDApIiwgIkRPTUV4Y2VwdGlvbi5JTlZBTElEX1NUQVRFX0VSUiIsICInSW52YWxp
ZFN0YXRlRXJyb3InIik7Ci0gICAgICAgICAgICBldmFsQW5kRXhwZWN0RXhjZXB0aW9uKCJkZWxl
dGVkSW5kZXguZ2V0KElEQktleVJhbmdlLm9ubHkoMCkpIiwgIkRPTUV4Y2VwdGlvbi5JTlZBTElE
X1NUQVRFX0VSUiIsICInSW52YWxpZFN0YXRlRXJyb3InIik7Ci0gICAgICAgICAgICBldmFsQW5k
RXhwZWN0RXhjZXB0aW9uKCJkZWxldGVkSW5kZXguZ2V0S2V5KDApIiwgIkRPTUV4Y2VwdGlvbi5J
TlZBTElEX1NUQVRFX0VSUiIsICInSW52YWxpZFN0YXRlRXJyb3InIik7Ci0gICAgICAgICAgICBl
dmFsQW5kRXhwZWN0RXhjZXB0aW9uKCJkZWxldGVkSW5kZXguZ2V0S2V5KElEQktleVJhbmdlLm9u
bHkoMCkpIiwgIkRPTUV4Y2VwdGlvbi5JTlZBTElEX1NUQVRFX0VSUiIsICInSW52YWxpZFN0YXRl
RXJyb3InIik7Ci0gICAgICAgICAgICBldmFsQW5kRXhwZWN0RXhjZXB0aW9uKCJkZWxldGVkSW5k
ZXguY291bnQoKSIsICJET01FeGNlcHRpb24uSU5WQUxJRF9TVEFURV9FUlIiLCAiJ0ludmFsaWRT
dGF0ZUVycm9yJyIpOwotICAgICAgICAgICAgZXZhbEFuZEV4cGVjdEV4Y2VwdGlvbigiZGVsZXRl
ZEluZGV4LmNvdW50KDApIiwgIkRPTUV4Y2VwdGlvbi5JTlZBTElEX1NUQVRFX0VSUiIsICInSW52
YWxpZFN0YXRlRXJyb3InIik7Ci0gICAgICAgICAgICBldmFsQW5kRXhwZWN0RXhjZXB0aW9uKCJk
ZWxldGVkSW5kZXguY291bnQoSURCS2V5UmFuZ2Uub25seSgwKSkiLCAiRE9NRXhjZXB0aW9uLklO
VkFMSURfU1RBVEVfRVJSIiwgIidJbnZhbGlkU3RhdGVFcnJvciciKTsKKyAgICBkZWJ1ZygiIik7
CisgICAgZXZhbEFuZEV4cGVjdEV4Y2VwdGlvbigiZGVsZXRlZFN0b3JlLnB1dCgwLCAwKSIsICJE
T01FeGNlcHRpb24uSU5WQUxJRF9TVEFURV9FUlIiLCAiJ0ludmFsaWRTdGF0ZUVycm9yJyIpOwor
ICAgIGV2YWxBbmRFeHBlY3RFeGNlcHRpb24oImRlbGV0ZWRTdG9yZS5hZGQoMCwgMCkiLCAiRE9N
RXhjZXB0aW9uLklOVkFMSURfU1RBVEVfRVJSIiwgIidJbnZhbGlkU3RhdGVFcnJvciciKTsKKyAg
ICBldmFsQW5kRXhwZWN0RXhjZXB0aW9uKCJkZWxldGVkU3RvcmUuZGVsZXRlKDApIiwgIkRPTUV4
Y2VwdGlvbi5JTlZBTElEX1NUQVRFX0VSUiIsICInSW52YWxpZFN0YXRlRXJyb3InIik7CisgICAg
ZXZhbEFuZEV4cGVjdEV4Y2VwdGlvbigiZGVsZXRlZFN0b3JlLmRlbGV0ZShJREJLZXlSYW5nZS5v
bmx5KDApKSIsICJET01FeGNlcHRpb24uSU5WQUxJRF9TVEFURV9FUlIiLCAiJ0ludmFsaWRTdGF0
ZUVycm9yJyIpOworICAgIGV2YWxBbmRFeHBlY3RFeGNlcHRpb24oImRlbGV0ZWRTdG9yZS5nZXQo
MCkiLCAiRE9NRXhjZXB0aW9uLklOVkFMSURfU1RBVEVfRVJSIiwgIidJbnZhbGlkU3RhdGVFcnJv
ciciKTsKKyAgICBldmFsQW5kRXhwZWN0RXhjZXB0aW9uKCJkZWxldGVkU3RvcmUuZ2V0KElEQktl
eVJhbmdlLm9ubHkoMCkpIiwgIkRPTUV4Y2VwdGlvbi5JTlZBTElEX1NUQVRFX0VSUiIsICInSW52
YWxpZFN0YXRlRXJyb3InIik7CisgICAgZXZhbEFuZEV4cGVjdEV4Y2VwdGlvbigiZGVsZXRlZFN0
b3JlLmNsZWFyKCkiLCAiRE9NRXhjZXB0aW9uLklOVkFMSURfU1RBVEVfRVJSIiwgIidJbnZhbGlk
U3RhdGVFcnJvciciKTsKKyAgICBldmFsQW5kRXhwZWN0RXhjZXB0aW9uKCJkZWxldGVkU3RvcmUu
b3BlbkN1cnNvcigpIiwgIkRPTUV4Y2VwdGlvbi5JTlZBTElEX1NUQVRFX0VSUiIsICInSW52YWxp
ZFN0YXRlRXJyb3InIik7CisgICAgZXZhbEFuZEV4cGVjdEV4Y2VwdGlvbigiZGVsZXRlZFN0b3Jl
Lm9wZW5DdXJzb3IoMCkiLCAiRE9NRXhjZXB0aW9uLklOVkFMSURfU1RBVEVfRVJSIiwgIidJbnZh
bGlkU3RhdGVFcnJvciciKTsKKyAgICBldmFsQW5kRXhwZWN0RXhjZXB0aW9uKCJkZWxldGVkU3Rv
cmUub3BlbkN1cnNvcigwLCAnbmV4dCcpIiwgIkRPTUV4Y2VwdGlvbi5JTlZBTElEX1NUQVRFX0VS
UiIsICInSW52YWxpZFN0YXRlRXJyb3InIik7CisgICAgZXZhbEFuZEV4cGVjdEV4Y2VwdGlvbigi
ZGVsZXRlZFN0b3JlLm9wZW5DdXJzb3IoSURCS2V5UmFuZ2Uub25seSgwKSkiLCAiRE9NRXhjZXB0
aW9uLklOVkFMSURfU1RBVEVfRVJSIiwgIidJbnZhbGlkU3RhdGVFcnJvciciKTsKKyAgICBldmFs
QW5kRXhwZWN0RXhjZXB0aW9uKCJkZWxldGVkU3RvcmUub3BlbkN1cnNvcihJREJLZXlSYW5nZS5v
bmx5KDApLCAnbmV4dCcpIiwgIkRPTUV4Y2VwdGlvbi5JTlZBTElEX1NUQVRFX0VSUiIsICInSW52
YWxpZFN0YXRlRXJyb3InIik7CisgICAgZXZhbEFuZEV4cGVjdEV4Y2VwdGlvbigiZGVsZXRlZFN0
b3JlLmNyZWF0ZUluZGV4KCduYW1lJywgJ3BhdGgnKSIsICJET01FeGNlcHRpb24uSU5WQUxJRF9T
VEFURV9FUlIiLCAiJ0ludmFsaWRTdGF0ZUVycm9yJyIpOworICAgIGV2YWxBbmRFeHBlY3RFeGNl
cHRpb24oImRlbGV0ZWRTdG9yZS5pbmRleCgnbmFtZScpIiwgIkRPTUV4Y2VwdGlvbi5JTlZBTElE
X1NUQVRFX0VSUiIsICInSW52YWxpZFN0YXRlRXJyb3InIik7CisgICAgZXZhbEFuZEV4cGVjdEV4
Y2VwdGlvbigiZGVsZXRlZFN0b3JlLmRlbGV0ZUluZGV4KCduYW1lJykiLCAiRE9NRXhjZXB0aW9u
LklOVkFMSURfU1RBVEVfRVJSIiwgIidJbnZhbGlkU3RhdGVFcnJvciciKTsKKyAgICBldmFsQW5k
RXhwZWN0RXhjZXB0aW9uKCJkZWxldGVkU3RvcmUuY291bnQoKSIsICJET01FeGNlcHRpb24uSU5W
QUxJRF9TVEFURV9FUlIiLCAiJ0ludmFsaWRTdGF0ZUVycm9yJyIpOworICAgIGV2YWxBbmRFeHBl
Y3RFeGNlcHRpb24oImRlbGV0ZWRTdG9yZS5jb3VudCgwKSIsICJET01FeGNlcHRpb24uSU5WQUxJ
RF9TVEFURV9FUlIiLCAiJ0ludmFsaWRTdGF0ZUVycm9yJyIpOworICAgIGV2YWxBbmRFeHBlY3RF
eGNlcHRpb24oImRlbGV0ZWRTdG9yZS5jb3VudChJREJLZXlSYW5nZS5vbmx5KDApKSIsICJET01F
eGNlcHRpb24uSU5WQUxJRF9TVEFURV9FUlIiLCAiJ0ludmFsaWRTdGF0ZUVycm9yJyIpOwogCi0g
ICAgICAgICAgICB0cmFucy5vbmFib3J0ID0gdW5leHBlY3RlZEFib3J0Q2FsbGJhY2s7Ci0gICAg
ICAgICAgICB0cmFucy5vbmNvbXBsZXRlID0gZmluaXNoSlNUZXN0OwotICAgICAgICB9OwotICAg
IH07CisgICAgZGVidWcoIiIpOworICAgIGV2YWxBbmRFeHBlY3RFeGNlcHRpb24oImRlbGV0ZWRJ
bmRleC5vcGVuQ3Vyc29yKCkiLCAiRE9NRXhjZXB0aW9uLklOVkFMSURfU1RBVEVfRVJSIiwgIidJ
bnZhbGlkU3RhdGVFcnJvciciKTsKKyAgICBldmFsQW5kRXhwZWN0RXhjZXB0aW9uKCJkZWxldGVk
SW5kZXgub3BlbkN1cnNvcigwKSIsICJET01FeGNlcHRpb24uSU5WQUxJRF9TVEFURV9FUlIiLCAi
J0ludmFsaWRTdGF0ZUVycm9yJyIpOworICAgIGV2YWxBbmRFeHBlY3RFeGNlcHRpb24oImRlbGV0
ZWRJbmRleC5vcGVuQ3Vyc29yKDAsICduZXh0JykiLCAiRE9NRXhjZXB0aW9uLklOVkFMSURfU1RB
VEVfRVJSIiwgIidJbnZhbGlkU3RhdGVFcnJvciciKTsKKyAgICBldmFsQW5kRXhwZWN0RXhjZXB0
aW9uKCJkZWxldGVkSW5kZXgub3BlbkN1cnNvcihJREJLZXlSYW5nZS5vbmx5KDApKSIsICJET01F
eGNlcHRpb24uSU5WQUxJRF9TVEFURV9FUlIiLCAiJ0ludmFsaWRTdGF0ZUVycm9yJyIpOworICAg
IGV2YWxBbmRFeHBlY3RFeGNlcHRpb24oImRlbGV0ZWRJbmRleC5vcGVuQ3Vyc29yKElEQktleVJh
bmdlLm9ubHkoMCksICduZXh0JykiLCAiRE9NRXhjZXB0aW9uLklOVkFMSURfU1RBVEVfRVJSIiwg
IidJbnZhbGlkU3RhdGVFcnJvciciKTsKKyAgICBldmFsQW5kRXhwZWN0RXhjZXB0aW9uKCJkZWxl
dGVkSW5kZXgub3BlbktleUN1cnNvcigpIiwgIkRPTUV4Y2VwdGlvbi5JTlZBTElEX1NUQVRFX0VS
UiIsICInSW52YWxpZFN0YXRlRXJyb3InIik7CisgICAgZXZhbEFuZEV4cGVjdEV4Y2VwdGlvbigi
ZGVsZXRlZEluZGV4Lm9wZW5LZXlDdXJzb3IoMCkiLCAiRE9NRXhjZXB0aW9uLklOVkFMSURfU1RB
VEVfRVJSIiwgIidJbnZhbGlkU3RhdGVFcnJvciciKTsKKyAgICBldmFsQW5kRXhwZWN0RXhjZXB0
aW9uKCJkZWxldGVkSW5kZXgub3BlbktleUN1cnNvcigwLCAnbmV4dCcpIiwgIkRPTUV4Y2VwdGlv
bi5JTlZBTElEX1NUQVRFX0VSUiIsICInSW52YWxpZFN0YXRlRXJyb3InIik7CisgICAgZXZhbEFu
ZEV4cGVjdEV4Y2VwdGlvbigiZGVsZXRlZEluZGV4Lm9wZW5LZXlDdXJzb3IoSURCS2V5UmFuZ2Uu
b25seSgwKSkiLCAiRE9NRXhjZXB0aW9uLklOVkFMSURfU1RBVEVfRVJSIiwgIidJbnZhbGlkU3Rh
dGVFcnJvciciKTsKKyAgICBldmFsQW5kRXhwZWN0RXhjZXB0aW9uKCJkZWxldGVkSW5kZXgub3Bl
bktleUN1cnNvcihJREJLZXlSYW5nZS5vbmx5KDApLCAnbmV4dCcpIiwgIkRPTUV4Y2VwdGlvbi5J
TlZBTElEX1NUQVRFX0VSUiIsICInSW52YWxpZFN0YXRlRXJyb3InIik7CisgICAgZXZhbEFuZEV4
cGVjdEV4Y2VwdGlvbigiZGVsZXRlZEluZGV4LmdldCgwKSIsICJET01FeGNlcHRpb24uSU5WQUxJ
RF9TVEFURV9FUlIiLCAiJ0ludmFsaWRTdGF0ZUVycm9yJyIpOworICAgIGV2YWxBbmRFeHBlY3RF
eGNlcHRpb24oImRlbGV0ZWRJbmRleC5nZXQoSURCS2V5UmFuZ2Uub25seSgwKSkiLCAiRE9NRXhj
ZXB0aW9uLklOVkFMSURfU1RBVEVfRVJSIiwgIidJbnZhbGlkU3RhdGVFcnJvciciKTsKKyAgICBl
dmFsQW5kRXhwZWN0RXhjZXB0aW9uKCJkZWxldGVkSW5kZXguZ2V0S2V5KDApIiwgIkRPTUV4Y2Vw
dGlvbi5JTlZBTElEX1NUQVRFX0VSUiIsICInSW52YWxpZFN0YXRlRXJyb3InIik7CisgICAgZXZh
bEFuZEV4cGVjdEV4Y2VwdGlvbigiZGVsZXRlZEluZGV4LmdldEtleShJREJLZXlSYW5nZS5vbmx5
KDApKSIsICJET01FeGNlcHRpb24uSU5WQUxJRF9TVEFURV9FUlIiLCAiJ0ludmFsaWRTdGF0ZUVy
cm9yJyIpOworICAgIGV2YWxBbmRFeHBlY3RFeGNlcHRpb24oImRlbGV0ZWRJbmRleC5jb3VudCgp
IiwgIkRPTUV4Y2VwdGlvbi5JTlZBTElEX1NUQVRFX0VSUiIsICInSW52YWxpZFN0YXRlRXJyb3In
Iik7CisgICAgZXZhbEFuZEV4cGVjdEV4Y2VwdGlvbigiZGVsZXRlZEluZGV4LmNvdW50KDApIiwg
IkRPTUV4Y2VwdGlvbi5JTlZBTElEX1NUQVRFX0VSUiIsICInSW52YWxpZFN0YXRlRXJyb3InIik7
CisgICAgZXZhbEFuZEV4cGVjdEV4Y2VwdGlvbigiZGVsZXRlZEluZGV4LmNvdW50KElEQktleVJh
bmdlLm9ubHkoMCkpIiwgIkRPTUV4Y2VwdGlvbi5JTlZBTElEX1NUQVRFX0VSUiIsICInSW52YWxp
ZFN0YXRlRXJyb3InIik7CiB9CiAKLXRlc3QoKTsKK2luZGV4ZWREQlRlc3QocHJlcGFyZURhdGFi
YXNlLCBmaW5pc2hKU1Rlc3QpOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRl
eGVkZGIvcmVzb3VyY2VzL2R1cGxpY2F0ZXMuanMgYi9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4
ZWRkYi9yZXNvdXJjZXMvZHVwbGljYXRlcy5qcwppbmRleCBjNDM3ZGY1MDQ2ZDFlMTEzZTczYjJl
YmU0OTM1NmU0MjI1MDFjMzBkLi44YjVjNzg2ZTI3MjMyZDc2ZWEyZmQ2Mjk3NzFmYzkyYjVkMmM0
YmQ0IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9yZXNvdXJjZXMv
ZHVwbGljYXRlcy5qcworKysgYi9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9yZXNvdXJj
ZXMvZHVwbGljYXRlcy5qcwpAQCAtMTYzLDQgKzE2Myw0IEBAIGZ1bmN0aW9uIGxhc3QoKQogfQog
CiByZW1vdmVWZW5kb3JQcmVmaXhlcygpOwotdGVzdCgpOwpcIE5vIG5ld2xpbmUgYXQgZW5kIG9m
IGZpbGUKK3Rlc3QoKTsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRi
L3Jlc291cmNlcy9lcnJvci1jYXVzZXMtYWJvcnQtYnktZGVmYXVsdC5qcyBiL0xheW91dFRlc3Rz
L3N0b3JhZ2UvaW5kZXhlZGRiL3Jlc291cmNlcy9lcnJvci1jYXVzZXMtYWJvcnQtYnktZGVmYXVs
dC5qcwppbmRleCBkOGI3NjJjOGMzNjFiMjk5NmM2MjhiNzk1Njg0NTgzYWQwMTBmMmE4Li5iODZk
ZGYyMjJjYzQ3NzNkNzQ1YWEzMjEyNWZkOGYzY2E0OGJiNGZjIDEwMDY0NAotLS0gYS9MYXlvdXRU
ZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9yZXNvdXJjZXMvZXJyb3ItY2F1c2VzLWFib3J0LWJ5LWRl
ZmF1bHQuanMKKysrIGIvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvcmVzb3VyY2VzL2Vy
cm9yLWNhdXNlcy1hYm9ydC1ieS1kZWZhdWx0LmpzCkBAIC01LDMzICs1LDggQEAgaWYgKHRoaXMu
aW1wb3J0U2NyaXB0cykgewogCiBkZXNjcmlwdGlvbigiVmVyaWZ5IHRoYXQgYSB0cmFuc2FjdGlv
biB3aXRoIGFuIGVycm9yIGFib3J0cyB1bmxlc3MgcHJldmVudERlZmF1bHQoKSBpcyBjYWxsZWQu
Iik7CiAKLWZ1bmN0aW9uIHRlc3QoKQorZnVuY3Rpb24gcHJlcGFyZURhdGFiYXNlKCkKIHsKLSAg
ICByZW1vdmVWZW5kb3JQcmVmaXhlcygpOwotICAgIHJlcXVlc3QgPSBldmFsQW5kTG9nKCJpbmRl
eGVkREIub3BlbignZXJyb3ItY2F1c2VzLWFib3J0LWJ5LWRlZmF1bHQnKSIpOwotICAgIHJlcXVl
c3Qub25zdWNjZXNzID0gc2V0VmVyc2lvbjsKLSAgICByZXF1ZXN0Lm9uZXJyb3IgPSB1bmV4cGVj
dGVkRXJyb3JDYWxsYmFjazsKLX0KLQotZnVuY3Rpb24gc2V0VmVyc2lvbigpCi17Ci0gICAgZGIg
PSBldmFsQW5kTG9nKCJkYiA9IGV2ZW50LnRhcmdldC5yZXN1bHQiKTsKLQotICAgIHJlcXVlc3Qg
PSBldmFsQW5kTG9nKCJkYi5zZXRWZXJzaW9uKCduZXcgdmVyc2lvbicpIik7Ci0gICAgcmVxdWVz
dC5vbnN1Y2Nlc3MgPSBkZWxldGVFeGlzdGluZzsKLSAgICByZXF1ZXN0Lm9uZXJyb3IgPSB1bmV4
cGVjdGVkRXJyb3JDYWxsYmFjazsKLX0KLQotZnVuY3Rpb24gZGVsZXRlRXhpc3RpbmcoKQotewot
ICAgIGRlYnVnKCJzZXRWZXJzaW9uU3VjY2VzcygpOiIpOwotICAgIHNlbGYudHJhbnMgPSBldmFs
QW5kTG9nKCJ0cmFucyA9IGV2ZW50LnRhcmdldC5yZXN1bHQiKTsKLSAgICBzaG91bGRCZU5vbk51
bGwoInRyYW5zIik7Ci0gICAgdHJhbnMub25hYm9ydCA9IHVuZXhwZWN0ZWRBYm9ydENhbGxiYWNr
OwotICAgIGV2YWxBbmRMb2coInRyYW5zLm9uY29tcGxldGUgPSBhZGREYXRhIik7Ci0KLSAgICBk
ZWxldGVBbGxPYmplY3RTdG9yZXMoZGIpOwotCiAgICAgZXZhbEFuZExvZygiZGIuY3JlYXRlT2Jq
ZWN0U3RvcmUoJ3N0b3JlTmFtZScsIG51bGwpIik7CiB9CiAKQEAgLTQ4LDcgKzIzLDcgQEAgZnVu
Y3Rpb24gYWRkRGF0YSgpCiAKIGZ1bmN0aW9uIGFkZE1vcmUoKQogewotICAgIAorCiAgICAgcmVx
dWVzdCA9IGV2YWxBbmRMb2coImV2ZW50LnRhcmdldC5zb3VyY2UuYWRkKHt4OiAndmFsdWUnLCB5
OiAnenp6J30sICdrZXknKSIpOwogICAgIHJlcXVlc3Qub25zdWNjZXNzID0gdW5leHBlY3RlZFN1
Y2Nlc3NDYWxsYmFjazsKICAgICByZXF1ZXN0LmFkZEV2ZW50TGlzdGVuZXIoImVycm9yIiwgcHJl
dmVudFRoZURlZmF1bHQpOwpAQCAtOTgsNCArNzMsNCBAQCBmdW5jdGlvbiB0cmFuc2FjdGlvbkFi
b3J0ZWQyKCkKICAgICBmaW5pc2hKU1Rlc3QoKTsKIH0KIAotdGVzdCgpOwpcIE5vIG5ld2xpbmUg
YXQgZW5kIG9mIGZpbGUKK2luZGV4ZWREQlRlc3QocHJlcGFyZURhdGFiYXNlLCBhZGREYXRhKTsK
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL3Jlc291cmNlcy9leGNl
cHRpb24taW4tZXZlbnQtYWJvcnRzLmpzIGIvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIv
cmVzb3VyY2VzL2V4Y2VwdGlvbi1pbi1ldmVudC1hYm9ydHMuanMKaW5kZXggNTc4YzNjZGI0NmQz
MTU2ODQ3ZjQ0ZGM0Zjk3NjRmYzE1NDNkMmNhYS4uYTAzN2ZmYWQ1YWU0NTVlMGFlZWIxNDE1OGYx
MGM3NWJhMTEwZmRjNSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIv
cmVzb3VyY2VzL2V4Y2VwdGlvbi1pbi1ldmVudC1hYm9ydHMuanMKKysrIGIvTGF5b3V0VGVzdHMv
c3RvcmFnZS9pbmRleGVkZGIvcmVzb3VyY2VzL2V4Y2VwdGlvbi1pbi1ldmVudC1hYm9ydHMuanMK
QEAgLTUsMzMgKzUsOCBAQCBpZiAodGhpcy5pbXBvcnRTY3JpcHRzKSB7CiAKIGRlc2NyaXB0aW9u
KCJUZXN0IGV4Y2VwdGlvbnMgaW4gSURCUmVxdWVzdCBoYW5kbGVycyBjYXVzZSBhYm9ydHMuIik7
CiAKLWZ1bmN0aW9uIHRlc3QoKQorZnVuY3Rpb24gcHJlcGFyZURhdGFiYXNlKCkKIHsKLSAgICBy
ZW1vdmVWZW5kb3JQcmVmaXhlcygpOwotICAgIHJlcXVlc3QgPSBldmFsQW5kTG9nKCJpbmRleGVk
REIub3BlbignZXhjZXB0aW9uLWluLWV2ZW50LWFib3J0cycpIik7Ci0gICAgcmVxdWVzdC5vbnN1
Y2Nlc3MgPSBzZXRWZXJzaW9uOwotICAgIHJlcXVlc3Qub25lcnJvciA9IHVuZXhwZWN0ZWRFcnJv
ckNhbGxiYWNrOwotfQotCi1mdW5jdGlvbiBzZXRWZXJzaW9uKCkKLXsKLSAgICBkYiA9IGV2YWxB
bmRMb2coImRiID0gZXZlbnQudGFyZ2V0LnJlc3VsdCIpOwotCi0gICAgcmVxdWVzdCA9IGV2YWxB
bmRMb2coImRiLnNldFZlcnNpb24oJ25ldyB2ZXJzaW9uJykiKTsKLSAgICByZXF1ZXN0Lm9uc3Vj
Y2VzcyA9IGRlbGV0ZUV4aXN0aW5nOwotICAgIHJlcXVlc3Qub25lcnJvciA9IHVuZXhwZWN0ZWRF
cnJvckNhbGxiYWNrOwotfQotCi1mdW5jdGlvbiBkZWxldGVFeGlzdGluZygpCi17Ci0gICAgZGVi
dWcoInNldFZlcnNpb25TdWNjZXNzKCk6Iik7Ci0gICAgc2VsZi50cmFucyA9IGV2YWxBbmRMb2co
InRyYW5zID0gZXZlbnQudGFyZ2V0LnJlc3VsdCIpOwotICAgIHNob3VsZEJlTm9uTnVsbCgidHJh
bnMiKTsKLSAgICB0cmFucy5vbmFib3J0ID0gdW5leHBlY3RlZEFib3J0Q2FsbGJhY2s7Ci0gICAg
ZXZhbEFuZExvZygidHJhbnMub25jb21wbGV0ZSA9IHN0YXJ0VGVzdCIpOwotCi0gICAgZGVsZXRl
QWxsT2JqZWN0U3RvcmVzKGRiKTsKLQogICAgIHN0b3JlID0gZXZhbEFuZExvZygic3RvcmUgPSBk
Yi5jcmVhdGVPYmplY3RTdG9yZSgnc3RvcmVOYW1lJywgbnVsbCkiKTsKICAgICByZXF1ZXN0ID0g
ZXZhbEFuZExvZygic3RvcmUuYWRkKHt4OiAndmFsdWUnLCB5OiAnenp6J30sICdrZXknKSIpOwog
ICAgIHJlcXVlc3Qub25lcnJvciA9IHVuZXhwZWN0ZWRFcnJvckNhbGxiYWNrOwpAQCAtMTE4LDQg
KzkzLDQgQEAgZnVuY3Rpb24gdHJhbnNhY3Rpb25Db21wbGV0ZWQyKCkKICAgICBmaW5pc2hKU1Rl
c3QoKTsKIH0KIAotdGVzdCgpOwpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKK2luZGV4ZWRE
QlRlc3QocHJlcGFyZURhdGFiYXNlLCBzdGFydFRlc3QpOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvc3RvcmFnZS9pbmRleGVkZGIvcmVzb3VyY2VzL2dldC1rZXlyYW5nZS5qcyBiL0xheW91dFRl
c3RzL3N0b3JhZ2UvaW5kZXhlZGRiL3Jlc291cmNlcy9nZXQta2V5cmFuZ2UuanMKaW5kZXggODEw
ZjUzMDU3M2IxYTlhMTA0YjU0Mjg3NjJjYjk5MzY2ODhhNzdmOC4uNGIyNmFlZWZkYTI4N2VmYjQz
YjRjNTRhNmU4MTViN2M0MmM5NGRjZiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvc3RvcmFnZS9p
bmRleGVkZGIvcmVzb3VyY2VzL2dldC1rZXlyYW5nZS5qcworKysgYi9MYXlvdXRUZXN0cy9zdG9y
YWdlL2luZGV4ZWRkYi9yZXNvdXJjZXMvZ2V0LWtleXJhbmdlLmpzCkBAIC01LDM2ICs1LDggQEAg
aWYgKHRoaXMuaW1wb3J0U2NyaXB0cykgewogCiBkZXNjcmlwdGlvbigiVGVzdCBJbmRleGVkREIn
cyBJREJPYmplY3RTdG9yZS5nZXQoSURCS2V5UmFuZ2UpIG1ldGhvZC4iKTsKIAotZnVuY3Rpb24g
dGVzdCgpCitmdW5jdGlvbiBwcmVwYXJlRGF0YWJhc2UoKQogewotICAgIHJlbW92ZVZlbmRvclBy
ZWZpeGVzKCk7Ci0gICAgb3BlbkRhdGFiYXNlKCk7Ci19Ci0KLWZ1bmN0aW9uIG9wZW5EYXRhYmFz
ZSgpCi17Ci0gICAgcmVzdWx0ID0gZXZhbEFuZExvZygiaW5kZXhlZERCLm9wZW4oJ2N1cnNvci1j
b250aW51ZScpIik7Ci0gICAgcmVzdWx0Lm9uc3VjY2VzcyA9IHNldFZlcnNpb247Ci0gICAgcmVz
dWx0Lm9uZXJyb3IgPSB1bmV4cGVjdGVkRXJyb3JDYWxsYmFjazsKLX0KLQotZnVuY3Rpb24gc2V0
VmVyc2lvbigpCi17Ci0gICAgc2VsZi5kYiA9IGV2YWxBbmRMb2coImRiID0gZXZlbnQudGFyZ2V0
LnJlc3VsdCIpOwotCi0gICAgcmVzdWx0ID0gZXZhbEFuZExvZygiZGIuc2V0VmVyc2lvbignbmV3
IHZlcnNpb24nKSIpOwotICAgIHJlc3VsdC5vbnN1Y2Nlc3MgPSBkZWxldGVFeGlzdGluZzsKLSAg
ICByZXN1bHQub25lcnJvciA9IHVuZXhwZWN0ZWRFcnJvckNhbGxiYWNrOwotfQotCi1mdW5jdGlv
biBkZWxldGVFeGlzdGluZygpCi17Ci0gICAgc2VsZi50cmFucyA9IGV2YWxBbmRMb2coInRyYW5z
ID0gZXZlbnQudGFyZ2V0LnJlc3VsdCIpOwotICAgIHNob3VsZEJlTm9uTnVsbCgidHJhbnMiKTsK
LSAgICB0cmFucy5vbmFib3J0ID0gdW5leHBlY3RlZEFib3J0Q2FsbGJhY2s7Ci0KLSAgICBkZWxl
dGVBbGxPYmplY3RTdG9yZXMoZGIpOwotCiAgICAgc2VsZi50ZXN0TGVuZ3RoID0gMTA7CiAgICAg
c2VsZi5vYmplY3RTdG9yZSA9IGV2YWxBbmRMb2coImRiLmNyZWF0ZU9iamVjdFN0b3JlKCdzb21l
T2JqZWN0U3RvcmUnKSIpOwogICAgIHNlbGYuaW5kZXggPSBldmFsQW5kTG9nKCJvYmplY3RTdG9y
ZS5jcmVhdGVJbmRleCgnc29tZUluZGV4JywgJ3gnKSIpOwpAQCAtMTc5LDQgKzE1MSw0IEBAIGZ1
bmN0aW9uIGdldE51bGxUZXN0KHN0b3JlLCBtZXRob2QsIHJlc3VsdFBhdGgsIGZpbmlzaCkKICAg
ICBldmFsQW5kTG9nKGZpbmlzaCk7CiB9CiAKLXRlc3QoKTsKK2luZGV4ZWREQlRlc3QocHJlcGFy
ZURhdGFiYXNlKTsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL3Jl
c291cmNlcy9pbmRleC1iYXNpY3MuanMgYi9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9y
ZXNvdXJjZXMvaW5kZXgtYmFzaWNzLmpzCmluZGV4IGE0OTYxZjZjNWNjNzE2MDE0NjhkM2QyYjk4
YWVmMzg2YzkxNTBjODQuLmIwODBhY2UxYWQ0YzU0MWY1ZWNmMWVlNmM5Y2FiYjMyZmU5MjQyZmQg
MTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL3Jlc291cmNlcy9pbmRl
eC1iYXNpY3MuanMKKysrIGIvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvcmVzb3VyY2Vz
L2luZGV4LWJhc2ljcy5qcwpAQCAtNSwzNCArNSw4IEBAIGlmICh0aGlzLmltcG9ydFNjcmlwdHMp
IHsKIAogZGVzY3JpcHRpb24oIlRlc3QgdGhlIGJhc2ljcyBvZiBJbmRleGVkREIncyB3ZWJraXRJ
REJJbmRleC4iKTsKIAotZnVuY3Rpb24gdGVzdCgpCitmdW5jdGlvbiBwcmVwYXJlRGF0YWJhc2Uo
KQogewotICAgIHJlbW92ZVZlbmRvclByZWZpeGVzKCk7Ci0gICAgcmVxdWVzdCA9IGV2YWxBbmRM
b2coImluZGV4ZWREQi5vcGVuKCdpbmRleC1iYXNpY3MnKSIpOwotICAgIHJlcXVlc3Qub25zdWNj
ZXNzID0gc2V0VmVyc2lvbjsKLSAgICByZXF1ZXN0Lm9uZXJyb3IgPSB1bmV4cGVjdGVkRXJyb3JD
YWxsYmFjazsKLX0KLQotZnVuY3Rpb24gc2V0VmVyc2lvbihldnQpCi17Ci0gICAgZXZlbnQgPSBl
dnQ7Ci0gICAgZGIgPSBldmFsQW5kTG9nKCJkYiA9IGV2ZW50LnRhcmdldC5yZXN1bHQiKTsKLQot
ICAgIHJlcXVlc3QgPSBldmFsQW5kTG9nKCJkYi5zZXRWZXJzaW9uKCduZXcgdmVyc2lvbicpIik7
Ci0gICAgcmVxdWVzdC5vbnN1Y2Nlc3MgPSBkZWxldGVFeGlzdGluZzsKLSAgICByZXF1ZXN0Lm9u
ZXJyb3IgPSB1bmV4cGVjdGVkRXJyb3JDYWxsYmFjazsKLX0KLQotZnVuY3Rpb24gZGVsZXRlRXhp
c3RpbmcoZXZ0KQotewotICAgIGV2ZW50ID0gZXZ0OwotICAgIGRlYnVnKCJzZXRWZXJzaW9uU3Vj
Y2VzcygpOiIpOwotICAgIHNlbGYudHJhbnMgPSBldmFsQW5kTG9nKCJ0cmFucyA9IGV2ZW50LnRh
cmdldC5yZXN1bHQiKTsKLSAgICBzaG91bGRCZU5vbk51bGwoInRyYW5zIik7Ci0gICAgdHJhbnMu
b25hYm9ydCA9IHVuZXhwZWN0ZWRBYm9ydENhbGxiYWNrOwotCi0gICAgZGVsZXRlQWxsT2JqZWN0
U3RvcmVzKGRiKTsKLQogICAgIHNlbGYuc3RvcmUgPSBldmFsQW5kTG9nKCJkYi5jcmVhdGVPYmpl
Y3RTdG9yZSgnc3RvcmVOYW1lJywgbnVsbCkiKTsKICAgICBzZWxmLmluZGV4T2JqZWN0ID0gZXZh
bEFuZExvZygic3RvcmUuY3JlYXRlSW5kZXgoJ2luZGV4TmFtZScsICd4JykiKTsKICAgICBzZWxm
LmluZGV4T2JqZWN0MiA9IGV2YWxBbmRMb2coInN0b3JlLmNyZWF0ZUluZGV4KCdpbmRleE5hbWUy
JywgJ3knLCB7dW5pcXVlOiBmYWxzZX0pIik7CkBAIC0zNDEsOSArMzE1LDYgQEAgZnVuY3Rpb24g
aW5kZXgzQ291bnQoZXZ0KQogCiAgICAgZGVidWcoIlBhc3NpbmcgYW4gaW52YWxpZCBrZXkgaW50
byBpbmRleE9iamVjdC5nZXRLZXkoe30pLiIpOwogICAgIGV2YWxBbmRFeHBlY3RFeGNlcHRpb24o
ImluZGV4T2JqZWN0LmdldEtleSh7fSkiLCAiSURCRGF0YWJhc2VFeGNlcHRpb24uREFUQV9FUlIi
LCAiJ0RhdGFFcnJvciciKTsKLQotICAgIGZpbmlzaEpTVGVzdCgpOwogfQogCi12YXIganNUZXN0
SXNBc3luYyA9IHRydWU7Ci10ZXN0KCk7CitpbmRleGVkREJUZXN0KHByZXBhcmVEYXRhYmFzZSwg
ZmluaXNoSlNUZXN0KTsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRi
L3Jlc291cmNlcy9pbmRleC1jb3VudC5qcyBiL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRi
L3Jlc291cmNlcy9pbmRleC1jb3VudC5qcwppbmRleCA0ZDRjZDQwMTNkNTFhZTMxZTVlNmFkYzdj
NjRiOTBmNmNmMGY5MzE2Li5jYWVmM2I2MTFjMjIyMWNlZWI3YTlhOWI2OWIxMGE3YzcyMzY4Yjdj
IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9yZXNvdXJjZXMvaW5k
ZXgtY291bnQuanMKKysrIGIvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvcmVzb3VyY2Vz
L2luZGV4LWNvdW50LmpzCkBAIC01LDI4ICs1LDggQEAgaWYgKHRoaXMuaW1wb3J0U2NyaXB0cykg
ewogCiBkZXNjcmlwdGlvbigiVGVzdCBJbmRleGVkREIncyBJREJJbmRleC5jb3VudCgpLiIpOwog
Ci1mdW5jdGlvbiB0ZXN0KCkKLXsKLSAgICByZW1vdmVWZW5kb3JQcmVmaXhlcygpOwotICAgIHJl
cXVlc3QgPSBldmFsQW5kTG9nKCJpbmRleGVkREIub3BlbignaW5kZXgtY291bnQnKSIpOwotICAg
IHJlcXVlc3Qub25lcnJvciA9IHVuZXhwZWN0ZWRFcnJvckNhbGxiYWNrOwotICAgIHJlcXVlc3Qu
b25zdWNjZXNzID0gZnVuY3Rpb24oKSB7Ci0gICAgICAgIGRiID0gZXZhbEFuZExvZygiZGIgPSBl
dmVudC50YXJnZXQucmVzdWx0Iik7Ci0gICAgICAgIHJlcXVlc3QgPSBldmFsQW5kTG9nKCJkYi5z
ZXRWZXJzaW9uKCduZXcgdmVyc2lvbicpIik7Ci0gICAgICAgIHJlcXVlc3Qub25lcnJvciA9IHVu
ZXhwZWN0ZWRFcnJvckNhbGxiYWNrOwotICAgICAgICByZXF1ZXN0Lm9uc3VjY2VzcyA9IHByZXBh
cmVEYXRhYmFzZTsKLSAgICB9OwotfQotCiBmdW5jdGlvbiBwcmVwYXJlRGF0YWJhc2UoKQogewot
ICAgIGRlYnVnKCIiKTsKLSAgICBkZWJ1ZygicHJlcGFyaW5nIGRhdGFiYXNlIik7Ci0gICAgc2Vs
Zi50cmFucyA9IGV2YWxBbmRMb2coInRyYW5zID0gZXZlbnQudGFyZ2V0LnJlc3VsdCIpOwotICAg
IHNob3VsZEJlTm9uTnVsbCgidHJhbnMiKTsKLQotICAgIGRlbGV0ZUFsbE9iamVjdFN0b3Jlcyhk
Yik7Ci0KICAgICBzdG9yZSA9IGV2YWxBbmRMb2coInN0b3JlID0gZGIuY3JlYXRlT2JqZWN0U3Rv
cmUoJ3N0b3JlTmFtZScsIG51bGwpIik7CiAKICAgICBzZWxmLmluZGV4ID0gZXZhbEFuZExvZygi
c3RvcmUuY3JlYXRlSW5kZXgoJ2luZGV4TmFtZScsICcnKSIpOwpAQCAtMzcsNyArMTcsNiBAQCBm
dW5jdGlvbiBwcmVwYXJlRGF0YWJhc2UoKQogICAgICAgICByZXF1ZXN0ID0gc3RvcmUuYWRkKGks
IGkpOwogICAgICAgICByZXF1ZXN0Lm9uZXJyb3IgPSB1bmV4cGVjdGVkRXJyb3JDYWxsYmFjazsK
ICAgICB9Ci0gICAgdHJhbnMub25jb21wbGV0ZSA9IHZlcmlmeUNvdW50OwogfQogCiBmdW5jdGlv
biB2ZXJpZnlDb3VudCgpCkBAIC0xNTEsNCArMTMwLDQgQEAgZnVuY3Rpb24gdmVyaWZ5Q291bnRX
aXRoS2V5KCkKICAgICBuZXh0VGVzdCgpOwogfQogCi10ZXN0KCk7ClwgTm8gbmV3bGluZSBhdCBl
bmQgb2YgZmlsZQoraW5kZXhlZERCVGVzdChwcmVwYXJlRGF0YWJhc2UsIHZlcmlmeUNvdW50KTsK
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL3Jlc291cmNlcy9pbmRl
eC1jdXJzb3IuanMgYi9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9yZXNvdXJjZXMvaW5k
ZXgtY3Vyc29yLmpzCmluZGV4IDEyOTkzNjMzMzg5ZjkwODc0M2RiNzA2N2RhMmE5Y2FiNGE4MTky
ZDMuLjZmYmRmNWRlZGY0YTE4MzZjM2Q0NzRhMDA5NWQ2OWQzNmJlMTVkYjYgMTAwNjQ0Ci0tLSBh
L0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL3Jlc291cmNlcy9pbmRleC1jdXJzb3IuanMK
KysrIGIvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvcmVzb3VyY2VzL2luZGV4LWN1cnNv
ci5qcwpAQCAtMjAsMjggKzIwLDYgQEAgc2VsZi50ZXN0RGF0YSA9IFsKIAogZnVuY3Rpb24gb3Bl
bkRhdGFiYXNlKCkKIHsKLSAgICByZXN1bHQgPSBldmFsQW5kTG9nKCJpbmRleGVkREIub3Blbign
aW5kZXgtY3Vyc29yJykiKTsKLSAgICByZXN1bHQub25zdWNjZXNzID0gc2V0VmVyc2lvbjsKLSAg
ICByZXN1bHQub25lcnJvciA9IHVuZXhwZWN0ZWRFcnJvckNhbGxiYWNrOwotfQotCi1mdW5jdGlv
biBzZXRWZXJzaW9uKCkKLXsKLSAgICBzZWxmLmRiID0gZXZhbEFuZExvZygiZGIgPSBldmVudC50
YXJnZXQucmVzdWx0Iik7Ci0KLSAgICByZXN1bHQgPSBldmFsQW5kTG9nKCJkYi5zZXRWZXJzaW9u
KCduZXcgdmVyc2lvbicpIik7Ci0gICAgcmVzdWx0Lm9uc3VjY2VzcyA9IGRlbGV0ZUV4aXN0aW5n
OwotICAgIHJlc3VsdC5vbmVycm9yID0gdW5leHBlY3RlZEVycm9yQ2FsbGJhY2s7Ci19Ci0KLWZ1
bmN0aW9uIGRlbGV0ZUV4aXN0aW5nKCkKLXsKLSAgICBzZWxmLnRyYW5zID0gZXZhbEFuZExvZygi
dHJhbnMgPSBldmVudC50YXJnZXQucmVzdWx0Iik7Ci0gICAgc2hvdWxkQmVOb25OdWxsKCJ0cmFu
cyIpOwotICAgIHRyYW5zLm9uYWJvcnQgPSB1bmV4cGVjdGVkQWJvcnRDYWxsYmFjazsKLQotICAg
IGRlbGV0ZUFsbE9iamVjdFN0b3JlcyhkYik7Ci0KICAgICBzZWxmLm9iamVjdFN0b3JlID0gZXZh
bEFuZExvZygiZGIuY3JlYXRlT2JqZWN0U3RvcmUoJ3NvbWVPYmplY3RTdG9yZScpIik7CiAgICAg
c2VsZi5pbmRleE9iamVjdCA9IGV2YWxBbmRMb2coIm9iamVjdFN0b3JlLmNyZWF0ZUluZGV4KCdz
b21lSW5kZXgnLCAneCcpIik7CiAgICAgc2VsZi5uZXh0VG9BZGQgPSAwOwpAQCAtMjQ1LDUgKzIy
Myw0IEBAIGZ1bmN0aW9uIHRlc3ROdWxsS2V5UmFuZ2UoKQogICAgIHJlcXVlc3Qub25lcnJvciA9
IHVuZXhwZWN0ZWRFcnJvckNhbGxiYWNrOwogfQogCi1yZW1vdmVWZW5kb3JQcmVmaXhlcygpOwot
b3BlbkRhdGFiYXNlKCk7IC8vIFRoZSBmaXJzdCBzdGVwLgoraW5kZXhlZERCVGVzdChvcGVuRGF0
YWJhc2UpOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvcmVzb3Vy
Y2VzL2luZGV4LWdldC1rZXktYXJndW1lbnQtcmVxdWlyZWQuanMgYi9MYXlvdXRUZXN0cy9zdG9y
YWdlL2luZGV4ZWRkYi9yZXNvdXJjZXMvaW5kZXgtZ2V0LWtleS1hcmd1bWVudC1yZXF1aXJlZC5q
cwppbmRleCA2N2FmNDhlZTllNDZmMjIyN2NmMTA2Y2VhMjEzMWFhMjZlOWE3OTMyLi45OTBkMWU3
ZmNlM2NhYzJjMzAxYWNlYTAxMThlMGNmNDdjZDMyMTA3IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0
cy9zdG9yYWdlL2luZGV4ZWRkYi9yZXNvdXJjZXMvaW5kZXgtZ2V0LWtleS1hcmd1bWVudC1yZXF1
aXJlZC5qcworKysgYi9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9yZXNvdXJjZXMvaW5k
ZXgtZ2V0LWtleS1hcmd1bWVudC1yZXF1aXJlZC5qcwpAQCAtNSwyOSArNSw4IEBAIGlmICh0aGlz
LmltcG9ydFNjcmlwdHMpIHsKIAogZGVzY3JpcHRpb24oIlRlc3QgSW5kZXhlZERCIGluZGV4IC5n
ZXQoKSByZXF1aXJlZCBhcmd1bWVudCIpOwogCi1mdW5jdGlvbiB0ZXN0KCkKLXsKLSAgICByZW1v
dmVWZW5kb3JQcmVmaXhlcygpOwotCi0gICAgbmFtZSA9IHNlbGYubG9jYXRpb24ucGF0aG5hbWU7
Ci0gICAgcmVxdWVzdCA9IGV2YWxBbmRMb2coImluZGV4ZWREQi5vcGVuKG5hbWUpIik7Ci0gICAg
cmVxdWVzdC5vbnN1Y2Nlc3MgPSBvcGVuU3VjY2VzczsKLSAgICByZXF1ZXN0Lm9uZXJyb3IgPSB1
bmV4cGVjdGVkRXJyb3JDYWxsYmFjazsKLX0KLQotZnVuY3Rpb24gb3BlblN1Y2Nlc3MoKQotewot
ICAgIGRiID0gZXZhbEFuZExvZygiZGIgPSBldmVudC50YXJnZXQucmVzdWx0Iik7Ci0KLSAgICBy
ZXF1ZXN0ID0gZXZhbEFuZExvZygicmVxdWVzdCA9IGRiLnNldFZlcnNpb24oJzEnKSIpOwotICAg
IHJlcXVlc3Qub25zdWNjZXNzID0gY3JlYXRlQW5kUG9wdWxhdGVPYmplY3RTdG9yZTsKLSAgICBy
ZXF1ZXN0Lm9uZXJyb3IgPSB1bmV4cGVjdGVkRXJyb3JDYWxsYmFjazsKLX0KLQogZnVuY3Rpb24g
Y3JlYXRlQW5kUG9wdWxhdGVPYmplY3RTdG9yZSgpCiB7Ci0gICAgZGVsZXRlQWxsT2JqZWN0U3Rv
cmVzKGRiKTsKLQogICAgIG9iamVjdFN0b3JlID0gZXZhbEFuZExvZygib2JqZWN0U3RvcmUgPSBk
Yi5jcmVhdGVPYmplY3RTdG9yZSgnZm9vJywgeyBrZXlQYXRoOiAnaWQnLCBhdXRvSW5jcmVtZW50
OiB0cnVlIH0pOyIpOwogICAgIGluZGV4ID0gZXZhbEFuZExvZygiaW5kZXggPSBvYmplY3RTdG9y
ZS5jcmVhdGVJbmRleCgnZmlyc3QnLCAnZmlyc3QnKTsiKTsKICAgICBzaG91bGRUaHJvdygiaW5k
ZXguZ2V0KCk7Iik7CkBAIC0zNSw0ICsxNCw0IEBAIGZ1bmN0aW9uIGNyZWF0ZUFuZFBvcHVsYXRl
T2JqZWN0U3RvcmUoKQogICAgIGZpbmlzaEpTVGVzdCgpOwogfQogCi10ZXN0KCk7ClwgTm8gbmV3
bGluZSBhdCBlbmQgb2YgZmlsZQoraW5kZXhlZERCVGVzdChjcmVhdGVBbmRQb3B1bGF0ZU9iamVj
dFN0b3JlKTsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL3Jlc291
cmNlcy9pbmRleC11bmlxdWUuanMgYi9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9yZXNv
dXJjZXMvaW5kZXgtdW5pcXVlLmpzCmluZGV4IGFjNWExNzQwYzMxOTFmZDljN2UwM2NkMTA1M2Ji
YTAzYzU4ODAyNGMuLmU3MzFmNzljZTkzODUyZjUzZDUyOTBlN2IwNDc1ODRlMWViN2M4NTIgMTAw
NjQ0Ci0tLSBhL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL3Jlc291cmNlcy9pbmRleC11
bmlxdWUuanMKKysrIGIvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvcmVzb3VyY2VzL2lu
ZGV4LXVuaXF1ZS5qcwpAQCAtNSwzNyArNSwxMCBAQCBpZiAodGhpcy5pbXBvcnRTY3JpcHRzKSB7
CiAKIGRlc2NyaXB0aW9uKCJUZXN0IGZlYXR1cmVzIG9mIEluZGV4ZWREQidzIHVuaXF1ZSBpbmRp
Y2VzLiIpOwogCi1mdW5jdGlvbiB0ZXN0KCkKLXsKLSAgICByZW1vdmVWZW5kb3JQcmVmaXhlcygp
OwotICAgIHJlcXVlc3QgPSBldmFsQW5kTG9nKCJpbmRleGVkREIub3BlbignaW5kZXgtdW5pcXVl
JykiKTsKLSAgICByZXF1ZXN0Lm9uc3VjY2VzcyA9IHNldFZlcnNpb247Ci0gICAgcmVxdWVzdC5v
bmVycm9yID0gdW5leHBlY3RlZEVycm9yQ2FsbGJhY2s7Ci19Ci0KIGZ1bmN0aW9uIHNldFZlcnNp
b24oKQogewotICAgIGRiID0gZXZhbEFuZExvZygiZGIgPSBldmVudC50YXJnZXQucmVzdWx0Iik7
Ci0KLSAgICByZXF1ZXN0ID0gZXZhbEFuZExvZygiZGIuc2V0VmVyc2lvbignbmV3IHZlcnNpb24n
KSIpOwotICAgIHJlcXVlc3Qub25zdWNjZXNzID0gZGVsZXRlRXhpc3Rpbmc7Ci0gICAgcmVxdWVz
dC5vbmVycm9yID0gdW5leHBlY3RlZEVycm9yQ2FsbGJhY2s7Ci19Ci0KLWZ1bmN0aW9uIGRlbGV0
ZUV4aXN0aW5nKCkKLXsKLSAgICBkZWJ1ZygiZGVsZXRlRXhpc3RpbmcoKToiKTsKLSAgICB2YXIg
dHJhbnMgPSBldmFsQW5kTG9nKCJ0cmFucyA9IGV2ZW50LnRhcmdldC5yZXN1bHQiKTsKLSAgICBz
aG91bGRCZU5vbk51bGwoInRyYW5zIik7Ci0gICAgdHJhbnMub25hYm9ydCA9IHVuZXhwZWN0ZWRB
Ym9ydENhbGxiYWNrOwotICAgIHRyYW5zLm9uY29tcGxldGUgPSBzZXRWZXJzaW9uQ29tcGxldGVk
OwotCi0gICAgZGVsZXRlQWxsT2JqZWN0U3RvcmVzKGRiKTsKLQogICAgIHNlbGYuc3RvcmUgPSBl
dmFsQW5kTG9nKCJkYi5jcmVhdGVPYmplY3RTdG9yZSgnc3RvcmUnKSIpOwogICAgIHNlbGYuaW5k
ZXhPYmplY3QgPSBldmFsQW5kTG9nKCJzdG9yZS5jcmVhdGVJbmRleCgnaW5kZXgnLCAneCcsIHt1
bmlxdWU6IHRydWV9KSIpOwotCi0gICAgLy8gTGV0IHNldFZlcnNpb24gdHJhbnNhY3Rpb24gY29t
cGxldGUuCiB9CiAKIGZ1bmN0aW9uIHNldFZlcnNpb25Db21wbGV0ZWQoKQpAQCAtMTM0LDQgKzEw
Nyw0IEBAIGZ1bmN0aW9uIGZpbmFsQWRkU3VjY2VzcygpIHsKICAgICByZXF1ZXN0Lm9uc3VjY2Vz
cyA9IGZpbmlzaEpTVGVzdDsKIH0KIAotdGVzdCgpOwpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZp
bGUKK2luZGV4ZWREQlRlc3Qoc2V0VmVyc2lvbiwgc2V0VmVyc2lvbkNvbXBsZXRlZCk7CmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9yZXNvdXJjZXMvaW52YWxpZC1r
ZXlzLmpzIGIvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvcmVzb3VyY2VzL2ludmFsaWQt
a2V5cy5qcwppbmRleCBkMzZhMDk4ZWIxYmQ3NGU2N2ZjZDc5MGJmYmUyNWU0ZjE1YzM5YWQ0Li43
NDQ2MDk4Y2IxYmNhNDFjOGEyMzg3NDllMjcwOGMwYWYxNmJhNjY3IDEwMDY0NAotLS0gYS9MYXlv
dXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9yZXNvdXJjZXMvaW52YWxpZC1rZXlzLmpzCisrKyBi
L0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL3Jlc291cmNlcy9pbnZhbGlkLWtleXMuanMK
QEAgLTUsMzUgKzUsMTAgQEAgaWYgKHRoaXMuaW1wb3J0U2NyaXB0cykgewogCiBkZXNjcmlwdGlv
bigiVGVzdCBJbmRleGVkREIgaW52YWxpZCBrZXlzIik7CiAKLWZ1bmN0aW9uIHRlc3QoKQotewot
ICAgIHJlbW92ZVZlbmRvclByZWZpeGVzKCk7Ci0KLSAgICBuYW1lID0gc2VsZi5sb2NhdGlvbi5w
YXRobmFtZTsKLSAgICByZXF1ZXN0ID0gZXZhbEFuZExvZygiaW5kZXhlZERCLm9wZW4obmFtZSki
KTsKLSAgICByZXF1ZXN0Lm9uc3VjY2VzcyA9IG9wZW5TdWNjZXNzOwotICAgIHJlcXVlc3Qub25l
cnJvciA9IHVuZXhwZWN0ZWRFcnJvckNhbGxiYWNrOwotfQotCi1mdW5jdGlvbiBvcGVuU3VjY2Vz
cygpCi17Ci0gICAgZGIgPSBldmFsQW5kTG9nKCJkYiA9IGV2ZW50LnRhcmdldC5yZXN1bHQiKTsK
LQotICAgIHJlcXVlc3QgPSBldmFsQW5kTG9nKCJyZXF1ZXN0ID0gZGIuc2V0VmVyc2lvbignMScp
Iik7Ci0gICAgcmVxdWVzdC5vbnN1Y2Nlc3MgPSB0ZXN0R3JvdXAxOwotICAgIHJlcXVlc3Qub25l
cnJvciA9IHVuZXhwZWN0ZWRFcnJvckNhbGxiYWNrOwotfQotCi1mdW5jdGlvbiB0ZXN0R3JvdXAx
KCkKK2Z1bmN0aW9uIHRlc3RJbnZhbGlkS2V5cygpCiB7Ci0gICAgZGVsZXRlQWxsT2JqZWN0U3Rv
cmVzKGRiKTsKLQogICAgIG9iamVjdFN0b3JlID0gZXZhbEFuZExvZygiZGIuY3JlYXRlT2JqZWN0
U3RvcmUoJ2ZvbycpOyIpOwotICAgIHRlc3RJbnZhbGlkS2V5cygpOwotfQogCi1mdW5jdGlvbiB0
ZXN0SW52YWxpZEtleXMoKQotewogICAgIHZhciBpbnZhbGlkS2V5cyA9IFsKICAgICAgICAgInZv
aWQgMCIsIC8vIFVuZGVmaW5lZAogICAgICAgICAibnVsbCIsIC8vIE51bGwKQEAgLTYwLDQgKzM1
LDQgQEAgZnVuY3Rpb24gdGVzdEludmFsaWRLZXlzKCkKICAgICBmaW5pc2hKU1Rlc3QoKTsKIH0K
IAotdGVzdCgpOwpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKK2luZGV4ZWREQlRlc3QodGVz
dEludmFsaWRLZXlzKTsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRi
L3Jlc291cmNlcy9rZXktZ2VuZXJhdG9yLmpzIGIvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVk
ZGIvcmVzb3VyY2VzL2tleS1nZW5lcmF0b3IuanMKaW5kZXggNDVkOGFiZDUzYjQ2YmExNDBhMzVi
NTkzNzhjODdlZGY0OGExMjIyOC4uOGU3ZDJjOWI3NzkxNWM1OGU5MDg0NGVjZGIyMDIxMmE4Yjcw
MDRkZiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvcmVzb3VyY2Vz
L2tleS1nZW5lcmF0b3IuanMKKysrIGIvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvcmVz
b3VyY2VzL2tleS1nZW5lcmF0b3IuanMKQEAgLTM1LDM1ICszNSwyMiBAQCBmdW5jdGlvbiBydW5U
ZXN0cygpIHsKICAgICAgICAgZGVidWcoIiIpOwogICAgICAgICBkZWJ1Zyh0ZXN0LmRlc2NyaXB0
aW9uKTsKIAotICAgICAgICBldmFsQW5kTG9nKCJyZXF1ZXN0ID0gaW5kZXhlZERCLmRlbGV0ZURh
dGFiYXNlKCdrZXktZ2VuZXJhdG9yJykiKTsKLSAgICAgICAgcmVxdWVzdC5vbmVycm9yID0gdW5l
eHBlY3RlZEVycm9yQ2FsbGJhY2s7Ci0gICAgICAgIHJlcXVlc3Qub25zdWNjZXNzID0gZnVuY3Rp
b24gKCkgewotICAgICAgICAgICAgZXZhbEFuZExvZygicmVxdWVzdCA9IGluZGV4ZWREQi5vcGVu
KCdrZXktZ2VuZXJhdG9yJykiKTsKLSAgICAgICAgICAgIHJlcXVlc3Qub25lcnJvciA9IHVuZXhw
ZWN0ZWRFcnJvckNhbGxiYWNrOwotICAgICAgICAgICAgcmVxdWVzdC5vbnN1Y2Nlc3MgPSBmdW5j
dGlvbiAoKSB7Ci0gICAgICAgICAgICAgICAgZXZhbEFuZExvZygiZGIgPSByZXF1ZXN0LnJlc3Vs
dCIpOwotICAgICAgICAgICAgICAgIGV2YWxBbmRMb2coInJlcXVlc3QgPSBkYi5zZXRWZXJzaW9u
KCcxJykiKTsKLSAgICAgICAgICAgICAgICByZXF1ZXN0Lm9uZXJyb3IgPSB1bmV4cGVjdGVkRXJy
b3JDYWxsYmFjazsKLSAgICAgICAgICAgICAgICByZXF1ZXN0Lm9uc3VjY2VzcyA9IGZ1bmN0aW9u
ICgpIHsKLSAgICAgICAgICAgICAgICAgICAgZXZhbEFuZExvZygidHJhbnMgPSByZXF1ZXN0LnJl
c3VsdCIpOwotICAgICAgICAgICAgICAgICAgICB0cmFucy5vbmFib3J0ID0gdW5leHBlY3RlZEFi
b3J0Q2FsbGJhY2s7Ci0gICAgICAgICAgICAgICAgICAgIHRlc3QudmVyY2hhbmdlKGRiLCB0cmFu
cyk7Ci0gICAgICAgICAgICAgICAgICAgIHRyYW5zLm9uY29tcGxldGUgPSBmdW5jdGlvbiAoKSB7
CisgICAgICAgIGluZGV4ZWREQlRlc3QoCisgICAgICAgICAgICBmdW5jdGlvbiAoKSB7CisgICAg
ICAgICAgICAgICAgdGVzdC52ZXJjaGFuZ2UoZGIsIHRyYW5zKTsKKyAgICAgICAgICAgIH0sCisg
ICAgICAgICAgICBmdW5jdGlvbiAoKSB7CisgICAgICAgICAgICAgICAgZnVuY3Rpb24gZmluaXNo
VGVzdCgpIHsKKyAgICAgICAgICAgICAgICAgICAgZXZhbEFuZExvZygiZGIuY2xvc2UoKSIpOwor
ICAgICAgICAgICAgICAgICAgICBuZXh0VGVzdCgpOworICAgICAgICAgICAgICAgIH0KIAotICAg
ICAgICAgICAgICAgICAgICAgICAgZnVuY3Rpb24gZmluaXNoVGVzdCgpIHsKLSAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBldmFsQW5kTG9nKCJkYi5jbG9zZSgpIik7Ci0gICAgICAgICAgICAg
ICAgICAgICAgICAgICAgbmV4dFRlc3QoKTsKLSAgICAgICAgICAgICAgICAgICAgICAgIH0KLQot
ICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHRlc3Qub3B0aW9uYWwpIHsKLSAgICAgICAgICAg
ICAgICAgICAgICAgICAgICB0ZXN0Lm9wdGlvbmFsKGRiLCBmaW5pc2hUZXN0KTsKLSAgICAgICAg
ICAgICAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgZmlu
aXNoVGVzdCgpOwotICAgICAgICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgICAg
ICB9OwotICAgICAgICAgICAgICAgIH07Ci0gICAgICAgICAgICB9OwotICAgICAgICB9OworICAg
ICAgICAgICAgICAgIGlmICh0ZXN0Lm9wdGlvbmFsKSB7CisgICAgICAgICAgICAgICAgICAgIHRl
c3Qub3B0aW9uYWwoZGIsIGZpbmlzaFRlc3QpOworICAgICAgICAgICAgICAgIH0gZWxzZSB7Cisg
ICAgICAgICAgICAgICAgICAgIGZpbmlzaFRlc3QoKTsKKyAgICAgICAgICAgICAgICB9CisgICAg
ICAgICAgICB9KTsKICAgICB9CiAKICAgICBuZXh0VGVzdCgpOwpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvcmVzb3VyY2VzL2tleS1zb3J0LW9yZGVyLWFjcm9zcy10
eXBlcy5qcyBiL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL3Jlc291cmNlcy9rZXktc29y
dC1vcmRlci1hY3Jvc3MtdHlwZXMuanMKaW5kZXggN2QxZjQyNmZlMzRlMmYxZmQ3NDNlOTQxMmNm
NGM4ZTgzNmRkNjJmMy4uNWM2ODhjODUzM2EyNzdlMjAyYmMzMTQ2MjkwMDI2ODk5ZDE3ZThkNSAx
MDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvcmVzb3VyY2VzL2tleS1z
b3J0LW9yZGVyLWFjcm9zcy10eXBlcy5qcworKysgYi9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4
ZWRkYi9yZXNvdXJjZXMva2V5LXNvcnQtb3JkZXItYWNyb3NzLXR5cGVzLmpzCkBAIC01LDI5ICs1
LDggQEAgaWYgKHRoaXMuaW1wb3J0U2NyaXB0cykgewogCiBkZXNjcmlwdGlvbigiVGVzdCBJbmRl
eGVkREIga2V5IGNvbXBhcmlzb24iKTsKIAotZnVuY3Rpb24gdGVzdCgpCi17Ci0gICAgcmVtb3Zl
VmVuZG9yUHJlZml4ZXMoKTsKLQotICAgIG5hbWUgPSBzZWxmLmxvY2F0aW9uLnBhdGhuYW1lOwot
ICAgIHJlcXVlc3QgPSBldmFsQW5kTG9nKCJpbmRleGVkREIub3BlbihuYW1lKSIpOwotICAgIHJl
cXVlc3Qub25zdWNjZXNzID0gb3BlblN1Y2Nlc3M7Ci0gICAgcmVxdWVzdC5vbmVycm9yID0gdW5l
eHBlY3RlZEVycm9yQ2FsbGJhY2s7Ci19Ci0KLWZ1bmN0aW9uIG9wZW5TdWNjZXNzKCkKLXsKLSAg
ICBkYiA9IGV2YWxBbmRMb2coImRiID0gZXZlbnQudGFyZ2V0LnJlc3VsdCIpOwotCi0gICAgcmVx
dWVzdCA9IGV2YWxBbmRMb2coInJlcXVlc3QgPSBkYi5zZXRWZXJzaW9uKCcxJykiKTsKLSAgICBy
ZXF1ZXN0Lm9uc3VjY2VzcyA9IGFkZEtleTE7Ci0gICAgcmVxdWVzdC5vbmVycm9yID0gdW5leHBl
Y3RlZEVycm9yQ2FsbGJhY2s7Ci19Ci0KIGZ1bmN0aW9uIGFkZEtleTEoKQogewotICAgIGRlbGV0
ZUFsbE9iamVjdFN0b3JlcyhkYik7Ci0KICAgICBvYmplY3RTdG9yZSA9IGV2YWxBbmRMb2coImRi
LmNyZWF0ZU9iamVjdFN0b3JlKCdmb28nKTsiKTsKICAgICByZXF1ZXN0ID0gZXZhbEFuZExvZygi
cmVxdWVzdCA9IG9iamVjdFN0b3JlLmFkZChbXSwgSW5maW5pdHkpOyIpOwogICAgIHJlcXVlc3Qu
b25zdWNjZXNzID0gYWRkS2V5MjsKQEAgLTc4LDcgKzU3LDggQEAgZnVuY3Rpb24gb3BlbkFDdXJz
b3IoKQogICAgICAgICBlbHNlIHsKICAgICAgICAgICAgIGZpbmlzaEpTVGVzdCgpOwogICAgICAg
ICB9Ci0gICAgfQorICAgIH07CiB9CiAKLXRlc3QoKTsKXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBm
aWxlCitpbmRleGVkREJUZXN0KGFkZEtleTEpOworCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9z
dG9yYWdlL2luZGV4ZWRkYi9yZXNvdXJjZXMva2V5LXNvcnQtb3JkZXItZGF0ZS5qcyBiL0xheW91
dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL3Jlc291cmNlcy9rZXktc29ydC1vcmRlci1kYXRlLmpz
CmluZGV4IDllN2NhZmJmM2I0Y2JlMGIxMGVmZDViYWRiZTkzZTMzNjNmZGQ3YzMuLjQ4MzEwMmU4
MjRiMWE3N2E3YmExN2EzNTZlZWIwZmU0YzRkY2NjMTAgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3Rz
L3N0b3JhZ2UvaW5kZXhlZGRiL3Jlc291cmNlcy9rZXktc29ydC1vcmRlci1kYXRlLmpzCisrKyBi
L0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL3Jlc291cmNlcy9rZXktc29ydC1vcmRlci1k
YXRlLmpzCkBAIC01LDI5ICs1LDggQEAgaWYgKHRoaXMuaW1wb3J0U2NyaXB0cykgewogCiBkZXNj
cmlwdGlvbigiVGVzdCBJbmRleGVkREIga2V5IGNvbXBhcmlzb24iKTsKIAotZnVuY3Rpb24gdGVz
dCgpCi17Ci0gICAgcmVtb3ZlVmVuZG9yUHJlZml4ZXMoKTsKLQotICAgIG5hbWUgPSBzZWxmLmxv
Y2F0aW9uLnBhdGhuYW1lOwotICAgIHJlcXVlc3QgPSBldmFsQW5kTG9nKCJpbmRleGVkREIub3Bl
bihuYW1lKSIpOwotICAgIHJlcXVlc3Qub25zdWNjZXNzID0gb3BlblN1Y2Nlc3M7Ci0gICAgcmVx
dWVzdC5vbmVycm9yID0gdW5leHBlY3RlZEVycm9yQ2FsbGJhY2s7Ci19Ci0KLWZ1bmN0aW9uIG9w
ZW5TdWNjZXNzKCkKLXsKLSAgICBkYiA9IGV2YWxBbmRMb2coImRiID0gZXZlbnQudGFyZ2V0LnJl
c3VsdCIpOwotCi0gICAgcmVxdWVzdCA9IGV2YWxBbmRMb2coInJlcXVlc3QgPSBkYi5zZXRWZXJz
aW9uKCcxJykiKTsKLSAgICByZXF1ZXN0Lm9uc3VjY2VzcyA9IGFkZEtleTE7Ci0gICAgcmVxdWVz
dC5vbmVycm9yID0gdW5leHBlY3RlZEVycm9yQ2FsbGJhY2s7Ci19Ci0KIGZ1bmN0aW9uIGFkZEtl
eTEoKQogewotICAgIGRlbGV0ZUFsbE9iamVjdFN0b3JlcyhkYik7Ci0KICAgICBvYmplY3RTdG9y
ZSA9IGV2YWxBbmRMb2coImRiLmNyZWF0ZU9iamVjdFN0b3JlKCdmb28nKTsiKTsKICAgICBkYXRl
MSA9IGV2YWxBbmRMb2coImRhdGUxID0gbmV3IERhdGUoMTAwMCk7Iik7CiAgICAgcmVxdWVzdCA9
IGV2YWxBbmRMb2coInJlcXVlc3QgPSBvYmplY3RTdG9yZS5hZGQoW10sIGRhdGUxKTsiKTsKQEAg
LTc1LDcgKzU0LDcgQEAgZnVuY3Rpb24gb3BlbkFDdXJzb3IoKQogICAgICAgICBlbHNlIHsKICAg
ICAgICAgICAgIGZpbmlzaEpTVGVzdCgpOwogICAgICAgICB9Ci0gICAgfQorICAgIH07CiB9CiAK
LXRlc3QoKTsKXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCitpbmRleGVkREJUZXN0KGFkZEtl
eTEpOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvcmVzb3VyY2Vz
L2tleS10eXBlLWFycmF5LmpzIGIvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvcmVzb3Vy
Y2VzL2tleS10eXBlLWFycmF5LmpzCmluZGV4IDE0MTY1MDdhZGMwZjEwZmNhMzg3YmMwZTUxNGEx
ZTg1ZThmMzIwNDEuLmNmMzU0Yjg4MGM1NjllZDIyMjM5YzhmNzFlNDI1MjYxNmMyN2MzNzUgMTAw
NjQ0Ci0tLSBhL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL3Jlc291cmNlcy9rZXktdHlw
ZS1hcnJheS5qcworKysgYi9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9yZXNvdXJjZXMv
a2V5LXR5cGUtYXJyYXkuanMKQEAgLTUsMzAgKzUsOSBAQCBpZiAodGhpcy5pbXBvcnRTY3JpcHRz
KSB7CiAKIGRlc2NyaXB0aW9uKCJUZXN0IEluZGV4ZWREQiBrZXkgdHlwZXMiKTsKIAotZnVuY3Rp
b24gdGVzdCgpCi17Ci0gICAgcmVtb3ZlVmVuZG9yUHJlZml4ZXMoKTsKLQotICAgIG5hbWUgPSBz
ZWxmLmxvY2F0aW9uLnBhdGhuYW1lOwotICAgIG9wZW5yZXEgPSBldmFsQW5kTG9nKCJpbmRleGVk
REIub3BlbihuYW1lKSIpOwotICAgIG9wZW5yZXEub25zdWNjZXNzID0gb3BlblN1Y2Nlc3M7Ci0g
ICAgb3BlbnJlcS5vbmVycm9yID0gdW5leHBlY3RlZEVycm9yQ2FsbGJhY2s7Ci19Ci0KLWZ1bmN0
aW9uIG9wZW5TdWNjZXNzKCkKLXsKLSAgICBldmFsQW5kTG9nKCJkYiA9IG9wZW5yZXEucmVzdWx0
Iik7Ci0gICAgc2V0dmVycmVxID0gZXZhbEFuZExvZygicmVxdWVzdCA9IGRiLnNldFZlcnNpb24o
JzEnKSIpOwotICAgIHNldHZlcnJlcS5vbnN1Y2Nlc3MgPSBzZXRWZXJzaW9uU3VjY2VzczsKLSAg
ICBzZXR2ZXJyZXEub25lcnJvciA9IHVuZXhwZWN0ZWRFcnJvckNhbGxiYWNrOwotfQotCi1mdW5j
dGlvbiBzZXRWZXJzaW9uU3VjY2VzcygpCitmdW5jdGlvbiBwcmVwYXJlRGF0YWJhc2UoKQogewog
ICAgIGRlYnVnKCJwcmVwYXJpbmcgZGF0YWJhc2UiKTsKLSAgICB0cmFucyA9IHNldHZlcnJlcS5y
ZXN1bHQ7Ci0gICAgdHJhbnMub25jb21wbGV0ZSA9IHRlc3RWYWxpZEFycmF5S2V5czsKLSAgICBk
ZWxldGVBbGxPYmplY3RTdG9yZXMoZGIpOwogICAgIG9iamVjdFN0b3JlID0gZXZhbEFuZExvZygi
ZGIuY3JlYXRlT2JqZWN0U3RvcmUoJ3N0b3JlJyk7Iik7CiAgICAgZGVidWcoIiIpOwogfQpAQCAt
MTg3LDQgKzE2Niw0IEBAIGZ1bmN0aW9uIHRlc3REZXB0aExpbWl0cygpCiAgICAgZmluaXNoSlNU
ZXN0KCk7CiB9CiAKLXRlc3QoKTsKXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCitpbmRleGVk
REJUZXN0KHByZXBhcmVEYXRhYmFzZSwgdGVzdFZhbGlkQXJyYXlLZXlzKTsKZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL3Jlc291cmNlcy9rZXktdHlwZS1pbmZpbml0
eS5qcyBiL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL3Jlc291cmNlcy9rZXktdHlwZS1p
bmZpbml0eS5qcwppbmRleCA3OGFjODliMzI4ZjIzNDRkZWVlNWYzOTNkY2QxOTQzNTFhOGMxY2Zh
Li4wMTUxMTI5ODE1YjNjNzllODg2MTIwYTY4Y2QwMzI5ODBkODM1YzVlIDEwMDY0NAotLS0gYS9M
YXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9yZXNvdXJjZXMva2V5LXR5cGUtaW5maW5pdHku
anMKKysrIGIvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvcmVzb3VyY2VzL2tleS10eXBl
LWluZmluaXR5LmpzCkBAIC01LDI5ICs1LDggQEAgaWYgKHRoaXMuaW1wb3J0U2NyaXB0cykgewog
CiBkZXNjcmlwdGlvbigiVGVzdCBJbmRleGVkREIga2V5IHR5cGVzIik7CiAKLWZ1bmN0aW9uIHRl
c3QoKQotewotICAgIHJlbW92ZVZlbmRvclByZWZpeGVzKCk7Ci0KLSAgICBuYW1lID0gc2VsZi5s
b2NhdGlvbi5wYXRobmFtZTsKLSAgICByZXF1ZXN0ID0gZXZhbEFuZExvZygiaW5kZXhlZERCLm9w
ZW4obmFtZSkiKTsKLSAgICByZXF1ZXN0Lm9uc3VjY2VzcyA9IG9wZW5TdWNjZXNzOwotICAgIHJl
cXVlc3Qub25lcnJvciA9IHVuZXhwZWN0ZWRFcnJvckNhbGxiYWNrOwotfQotCi1mdW5jdGlvbiBv
cGVuU3VjY2VzcygpCi17Ci0gICAgZGIgPSBldmFsQW5kTG9nKCJkYiA9IGV2ZW50LnRhcmdldC5y
ZXN1bHQiKTsKLQotICAgIHJlcXVlc3QgPSBldmFsQW5kTG9nKCJyZXF1ZXN0ID0gZGIuc2V0VmVy
c2lvbignMScpIik7Ci0gICAgcmVxdWVzdC5vbnN1Y2Nlc3MgPSB0ZXN0R3JvdXAxOwotICAgIHJl
cXVlc3Qub25lcnJvciA9IHVuZXhwZWN0ZWRFcnJvckNhbGxiYWNrOwotfQotCiBmdW5jdGlvbiB0
ZXN0R3JvdXAxKCkKIHsKLSAgICBkZWxldGVBbGxPYmplY3RTdG9yZXMoZGIpOwotCiAgICAgb2Jq
ZWN0U3RvcmUgPSBldmFsQW5kTG9nKCJkYi5jcmVhdGVPYmplY3RTdG9yZSgnZm9vJyk7Iik7CiAg
ICAgZGVidWcoInRlc3Qga2V5IGFzIGluZmluaXR5Iik7CiAgICAgcmVxdWVzdCA9IGV2YWxBbmRM
b2coInJlcXVlc3QgPSBvYmplY3RTdG9yZS5hZGQoW10sIEluZmluaXR5KTsiKTsKQEAgLTQ4LDQg
KzI3LDUgQEAgZnVuY3Rpb24gdGVzdEdyb3VwMygpCiAgICAgZmluaXNoSlNUZXN0KCk7CiB9CiAK
LXRlc3QoKTsKXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCitpbmRleGVkREJUZXN0KHRlc3RH
cm91cDEpOworCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9yZXNv
dXJjZXMva2V5cGF0aC1hcnJheXMuanMgYi9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9y
ZXNvdXJjZXMva2V5cGF0aC1hcnJheXMuanMKaW5kZXggMzg2Njg4ZGM4OWE1YmVjZDBmMzAzMzc4
YmIzZTYyZTI1ZmZiYTZiNS4uNGQyYTJlYWY4NzViMDNjYzU1YWU2MjczM2Y2N2E2M2IwMGVjMGUz
YSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvcmVzb3VyY2VzL2tl
eXBhdGgtYXJyYXlzLmpzCisrKyBiL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL3Jlc291
cmNlcy9rZXlwYXRoLWFycmF5cy5qcwpAQCAtNSw0MiArNSwxOCBAQCBpZiAodGhpcy5pbXBvcnRT
Y3JpcHRzKSB7CiAKIGRlc2NyaXB0aW9uKCJUZXN0IEluZGV4ZWREQiBBcnJheS10eXBlIGtleVBh
dGhzIik7CiAKLWZ1bmN0aW9uIHRlc3QoKQotewotICAgIHJlbW92ZVZlbmRvclByZWZpeGVzKCk7
Ci0KLSAgICByZXF1ZXN0ID0gZXZhbEFuZExvZygiaW5kZXhlZERCLmRlbGV0ZURhdGFiYXNlKCdr
ZXlwYXRoLWFycmF5cycpIik7Ci0gICAgcmVxdWVzdC5vbmVycm9yID0gdW5leHBlY3RlZEVycm9y
Q2FsbGJhY2s7Ci0gICAgcmVxdWVzdC5vbnN1Y2Nlc3MgPSBmdW5jdGlvbiAoKSB7Ci0gICAgICAg
IHJlcXVlc3QgPSBldmFsQW5kTG9nKCJpbmRleGVkREIub3Blbigna2V5cGF0aC1hcnJheXMnKSIp
OwotICAgICAgICByZXF1ZXN0Lm9uZXJyb3IgPSB1bmV4cGVjdGVkRXJyb3JDYWxsYmFjazsKLSAg
ICAgICAgcmVxdWVzdC5vbnN1Y2Nlc3MgPSBvcGVuU3VjY2VzczsKLSAgICB9OwotfQotCiBmdW5j
dGlvbiBvcGVuU3VjY2VzcygpCiB7Ci0gICAgZGVidWcoIiIpOwotICAgIGRlYnVnKCJvcGVuU3Vj
Y2VzcygpOiIpOwotICAgIGRiID0gZXZhbEFuZExvZygiZGIgPSBldmVudC50YXJnZXQucmVzdWx0
Iik7Ci0gICAgcmVxdWVzdCA9IGV2YWxBbmRMb2coInJlcXVlc3QgPSBkYi5zZXRWZXJzaW9uKCcx
JykiKTsKLSAgICByZXF1ZXN0Lm9uZXJyb3IgPSB1bmV4cGVjdGVkRXJyb3JDYWxsYmFjazsKLSAg
ICByZXF1ZXN0Lm9uc3VjY2VzcyA9IGZ1bmN0aW9uICgpIHsKLSAgICAgICAgdHJhbnNhY3Rpb24g
PSByZXF1ZXN0LnJlc3VsdDsKLSAgICAgICAgdHJhbnNhY3Rpb24ub25hYm9ydCA9IHVuZXhwZWN0
ZWRBYm9ydENhbGxiYWNrOwotICAgICAgICBldmFsQW5kTG9nKCJzdG9yZSA9IGRiLmNyZWF0ZU9i
amVjdFN0b3JlKCdzdG9yZScsIHtrZXlQYXRoOiBbJ2EnLCAnYiddfSkiKTsKLSAgICAgICAgZXZh
bEFuZExvZygic3RvcmUuY3JlYXRlSW5kZXgoJ2luZGV4JywgWydjJywgJ2QnXSkiKTsKLQotICAg
ICAgICBldmFsQW5kRXhwZWN0RXhjZXB0aW9uKCJkYi5jcmVhdGVPYmplY3RTdG9yZSgnc3RvcmUt
d2l0aC1nZW5lcmF0b3InLCB7a2V5UGF0aDogWydhJywgJ2InXSwgYXV0b0luY3JlbWVudDogdHJ1
ZX0pIiwgIkRPTUV4Y2VwdGlvbi5JTlZBTElEX0FDQ0VTU19FUlIiKTsKLSAgICAgICAgZXZhbEFu
ZEV4cGVjdEV4Y2VwdGlvbigic3RvcmUuY3JlYXRlSW5kZXgoJ2luZGV4LW11bHRpZW50cnknLCBb
J2UnLCAnZiddLCB7bXVsdGlFbnRyeTogdHJ1ZX0pIiwgIkRPTUV4Y2VwdGlvbi5JTlZBTElEX0FD
Q0VTU19FUlIiKTsKKyAgICBldmFsQW5kTG9nKCJzdG9yZSA9IGRiLmNyZWF0ZU9iamVjdFN0b3Jl
KCdzdG9yZScsIHtrZXlQYXRoOiBbJ2EnLCAnYiddfSkiKTsKKyAgICBldmFsQW5kTG9nKCJzdG9y
ZS5jcmVhdGVJbmRleCgnaW5kZXgnLCBbJ2MnLCAnZCddKSIpOwogCi0gICAgICAgIGRlYnVnKCIi
KTsKLSAgICAgICAgZGVidWcoIkVtcHR5IGFycmF5cyBhcmUgbm90IHZhbGlkIGtleSBwYXRoczoi
KTsKLSAgICAgICAgZXZhbEFuZEV4cGVjdEV4Y2VwdGlvbigiZGIuY3JlYXRlT2JqZWN0U3RvcmUo
J3N0b3JlLWtleXBhdGgtZW1wdHktYXJyYXknLCB7a2V5UGF0aDogW119KSIsICJET01FeGNlcHRp
b24uU1lOVEFYX0VSUiIpOwotICAgICAgICBldmFsQW5kRXhwZWN0RXhjZXB0aW9uKCJzdG9yZS5j
cmVhdGVJbmRleCgnaW5kZXgta2V5cGF0aC1lbXB0eS1hcnJheScsIFtdKSIsICJET01FeGNlcHRp
b24uU1lOVEFYX0VSUiIpOworICAgIGV2YWxBbmRFeHBlY3RFeGNlcHRpb24oImRiLmNyZWF0ZU9i
amVjdFN0b3JlKCdzdG9yZS13aXRoLWdlbmVyYXRvcicsIHtrZXlQYXRoOiBbJ2EnLCAnYiddLCBh
dXRvSW5jcmVtZW50OiB0cnVlfSkiLCAiRE9NRXhjZXB0aW9uLklOVkFMSURfQUNDRVNTX0VSUiIp
OworICAgIGV2YWxBbmRFeHBlY3RFeGNlcHRpb24oInN0b3JlLmNyZWF0ZUluZGV4KCdpbmRleC1t
dWx0aWVudHJ5JywgWydlJywgJ2YnXSwge211bHRpRW50cnk6IHRydWV9KSIsICJET01FeGNlcHRp
b24uSU5WQUxJRF9BQ0NFU1NfRVJSIik7CiAKLSAgICAgICAgdHJhbnNhY3Rpb24ub25jb21wbGV0
ZSA9IHRlc3RLZXlQYXRoczsKLSAgICB9OworICAgIGRlYnVnKCIiKTsKKyAgICBkZWJ1ZygiRW1w
dHkgYXJyYXlzIGFyZSBub3QgdmFsaWQga2V5IHBhdGhzOiIpOworICAgIGV2YWxBbmRFeHBlY3RF
eGNlcHRpb24oImRiLmNyZWF0ZU9iamVjdFN0b3JlKCdzdG9yZS1rZXlwYXRoLWVtcHR5LWFycmF5
Jywge2tleVBhdGg6IFtdfSkiLCAiRE9NRXhjZXB0aW9uLlNZTlRBWF9FUlIiKTsKKyAgICBldmFs
QW5kRXhwZWN0RXhjZXB0aW9uKCJzdG9yZS5jcmVhdGVJbmRleCgnaW5kZXgta2V5cGF0aC1lbXB0
eS1hcnJheScsIFtdKSIsICJET01FeGNlcHRpb24uU1lOVEFYX0VSUiIpOwogfQogCiBmdW5jdGlv
biB0ZXN0S2V5UGF0aHMoKQpAQCAtODMsNCArNTksNSBAQCBmdW5jdGlvbiB0ZXN0S2V5UGF0aHMo
KQogICAgIHRyYW5zYWN0aW9uLm9uY29tcGxldGUgPSBmaW5pc2hKU1Rlc3Q7CiB9CiAKLXRlc3Qo
KTsKK2luZGV4ZWREQlRlc3Qob3BlblN1Y2Nlc3MsIHRlc3RLZXlQYXRocyk7CisKZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL3Jlc291cmNlcy9rZXlwYXRoLWJhc2lj
cy5qcyBiL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL3Jlc291cmNlcy9rZXlwYXRoLWJh
c2ljcy5qcwppbmRleCA2YzExYzFlMjVlMTVkNzViYTJjNjE1YjhkYzJkYzhhMDFjMTNjOTNkLi4x
MjlhZjNiYzNlN2Y0OWI1ODBlNTk4ZmRiMzRlZmU4Y2MwYThjY2YxIDEwMDY0NAotLS0gYS9MYXlv
dXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9yZXNvdXJjZXMva2V5cGF0aC1iYXNpY3MuanMKKysr
IGIvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvcmVzb3VyY2VzL2tleXBhdGgtYmFzaWNz
LmpzCkBAIC01LDI5ICs1LDEwIEBAIGlmICh0aGlzLmltcG9ydFNjcmlwdHMpIHsKIAogZGVzY3Jp
cHRpb24oIlRlc3QgZm9yIHZhbGlkIGFuZCBpbnZhbGlkIGtleXBhdGhzIik7CiAKLWZ1bmN0aW9u
IHRlc3QoKQotewotICAgIHJlbW92ZVZlbmRvclByZWZpeGVzKCk7Ci0gICAgbmFtZSA9IHNlbGYu
bG9jYXRpb24ucGF0aG5hbWU7Ci0gICAgcmVxdWVzdCA9IGV2YWxBbmRMb2coImluZGV4ZWREQi5v
cGVuKG5hbWUpIik7Ci0gICAgcmVxdWVzdC5vbnN1Y2Nlc3MgPSBvcGVuU3VjY2VzczsKLSAgICBy
ZXF1ZXN0Lm9uZXJyb3IgPSB1bmV4cGVjdGVkRXJyb3JDYWxsYmFjazsKLX0KLQotZnVuY3Rpb24g
b3BlblN1Y2Nlc3MoKQotewotICAgIGRiID0gZXZhbEFuZExvZygiZGIgPSBldmVudC50YXJnZXQu
cmVzdWx0Iik7Ci0KLSAgICByZXF1ZXN0ID0gZXZhbEFuZExvZygicmVxdWVzdCA9IGRiLnNldFZl
cnNpb24oJzEnKSIpOwotICAgIHJlcXVlc3Qub25zdWNjZXNzID0gdGVzdFZhbGlkS2V5UGF0aHM7
Ci0gICAgcmVxdWVzdC5vbmVycm9yID0gdW5leHBlY3RlZEVycm9yQ2FsbGJhY2s7Ci19Ci0KIGZ1
bmN0aW9uIHRlc3RWYWxpZEtleVBhdGhzKCkKIHsKICAgICBkZWJ1ZygiIik7CiAgICAgZGVidWco
InRlc3RWYWxpZEtleVBhdGhzKCk6Iik7Ci0gICAgZGVsZXRlQWxsT2JqZWN0U3RvcmVzKGRiKTsK
IAogICAgIGV2YWxBbmRMb2coInN0b3JlID0gZGIuY3JlYXRlT2JqZWN0U3RvcmUoJ25hbWUnKSIp
OwogICAgIHNob3VsZEJlTnVsbCgic3RvcmUua2V5UGF0aCIpOwpAQCAtNzgsNCArNTksNCBAQCBm
dW5jdGlvbiB0ZXN0SW52YWxpZEtleVBhdGhzKCkKICAgICBmaW5pc2hKU1Rlc3QoKTsKIH0KIAot
dGVzdCgpOworaW5kZXhlZERCVGVzdCh0ZXN0VmFsaWRLZXlQYXRocyk7CmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9yZXNvdXJjZXMva2V5cGF0aC1lZGdlcy5qcyBi
L0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL3Jlc291cmNlcy9rZXlwYXRoLWVkZ2VzLmpz
CmluZGV4IGIxNjgwM2EwN2ZhMGE2YzQ5ZmU2M2Y4MWVmNjAwYmQ5YjJlYzc4ZmEuLjdhMWM0YWYy
YjNjZjgzZjdiZTc2N2U5MWNmMWI5N2Q4YmI1M2ZlYjUgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3Rz
L3N0b3JhZ2UvaW5kZXhlZGRiL3Jlc291cmNlcy9rZXlwYXRoLWVkZ2VzLmpzCisrKyBiL0xheW91
dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL3Jlc291cmNlcy9rZXlwYXRoLWVkZ2VzLmpzCkBAIC01
LDMzICs1LDEwIEBAIGlmICh0aGlzLmltcG9ydFNjcmlwdHMpIHsKIAogZGVzY3JpcHRpb24oIlRl
c3QgSW5kZXhlZERCIGtleVBhdGggZWRnZSBjYXNlcyIpOwogCi1mdW5jdGlvbiB0ZXN0KCkKLXsK
LSAgICByZW1vdmVWZW5kb3JQcmVmaXhlcygpOwotCi0gICAgcmVxdWVzdCA9IGV2YWxBbmRMb2co
ImluZGV4ZWREQi5kZWxldGVEYXRhYmFzZSgna2V5cGF0aC1lZGdlcycpIik7Ci0gICAgcmVxdWVz
dC5vbmVycm9yID0gdW5leHBlY3RlZEVycm9yQ2FsbGJhY2s7Ci0gICAgcmVxdWVzdC5vbnN1Y2Nl
c3MgPSBmdW5jdGlvbiAoKSB7Ci0gICAgICAgIHJlcXVlc3QgPSBldmFsQW5kTG9nKCJpbmRleGVk
REIub3Blbigna2V5cGF0aC1lZGdlcycpIik7Ci0gICAgICAgIHJlcXVlc3Qub25lcnJvciA9IHVu
ZXhwZWN0ZWRFcnJvckNhbGxiYWNrOwotICAgICAgICByZXF1ZXN0Lm9uc3VjY2VzcyA9IG9wZW5T
dWNjZXNzOwotICAgIH07Ci19Ci0KIGZ1bmN0aW9uIG9wZW5TdWNjZXNzKCkKIHsKLSAgICBkZWJ1
ZygiIik7Ci0gICAgZGVidWcoIm9wZW5TdWNjZXNzKCk6Iik7Ci0gICAgZGIgPSBldmFsQW5kTG9n
KCJkYiA9IGV2ZW50LnRhcmdldC5yZXN1bHQiKTsKLSAgICByZXF1ZXN0ID0gZXZhbEFuZExvZygi
cmVxdWVzdCA9IGRiLnNldFZlcnNpb24oJzEnKSIpOwotICAgIHJlcXVlc3Qub25lcnJvciA9IHVu
ZXhwZWN0ZWRFcnJvckNhbGxiYWNrOwotICAgIHJlcXVlc3Qub25zdWNjZXNzID0gZnVuY3Rpb24g
KCkgewotICAgICAgICB0cmFuc2FjdGlvbiA9IHJlcXVlc3QucmVzdWx0OwotICAgICAgICB0cmFu
c2FjdGlvbi5vbmFib3J0ID0gdW5leHBlY3RlZEFib3J0Q2FsbGJhY2s7Ci0gICAgICAgIGV2YWxB
bmRMb2coImRiLmNyZWF0ZU9iamVjdFN0b3JlKCdzdG9yZS13aXRoLXBhdGgnLCB7a2V5UGF0aDog
J2Zvbyd9KSIpOwotICAgICAgICBldmFsQW5kTG9nKCJkYi5jcmVhdGVPYmplY3RTdG9yZSgnc3Rv
cmUtd2l0aC1wYXRoLWFuZC1nZW5lcmF0b3InLCB7a2V5UGF0aDogJ2ZvbycsIGF1dG9JbmNyZW1l
bnQ6IHRydWV9KSIpOwotICAgICAgICB0cmFuc2FjdGlvbi5vbmNvbXBsZXRlID0gdGVzdEtleVBh
dGhzOwotICAgIH07CisgICAgZXZhbEFuZExvZygiZGIuY3JlYXRlT2JqZWN0U3RvcmUoJ3N0b3Jl
LXdpdGgtcGF0aCcsIHtrZXlQYXRoOiAnZm9vJ30pIik7CisgICAgZXZhbEFuZExvZygiZGIuY3Jl
YXRlT2JqZWN0U3RvcmUoJ3N0b3JlLXdpdGgtcGF0aC1hbmQtZ2VuZXJhdG9yJywge2tleVBhdGg6
ICdmb28nLCBhdXRvSW5jcmVtZW50OiB0cnVlfSkiKTsKIH0KIAogZnVuY3Rpb24gdGVzdEtleVBh
dGhzKCkKQEAgLTEwNyw0ICs4NCw0IEBAIGZ1bmN0aW9uIHRlc3RLZXlQYXRoc0FuZEdlbmVyYXRv
cigpCiAgICAgdHJhbnNhY3Rpb24ub25jb21wbGV0ZSA9IGZpbmlzaEpTVGVzdDsKIH0KIAotdGVz
dCgpOwpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKK2luZGV4ZWREQlRlc3Qob3BlblN1Y2Nl
c3MsIHRlc3RLZXlQYXRocyk7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4
ZWRkYi9yZXNvdXJjZXMva2V5cGF0aC1mZXRjaC1rZXkuanMgYi9MYXlvdXRUZXN0cy9zdG9yYWdl
L2luZGV4ZWRkYi9yZXNvdXJjZXMva2V5cGF0aC1mZXRjaC1rZXkuanMKaW5kZXggMjY1ZmRmOWZi
MTM0MjRlNmM5ZTFkMTI0NDQ3ODk2YTUxOGJiMmZmYy4uYzE0Y2ZiNWU1NTE5YzU3Yjc1YWJlMjBl
NDdkNWJkZGY4NTYxNTEwYSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVk
ZGIvcmVzb3VyY2VzL2tleXBhdGgtZmV0Y2gta2V5LmpzCisrKyBiL0xheW91dFRlc3RzL3N0b3Jh
Z2UvaW5kZXhlZGRiL3Jlc291cmNlcy9rZXlwYXRoLWZldGNoLWtleS5qcwpAQCAtNSwyMiArNSw4
IEBAIGlmICh0aGlzLmltcG9ydFNjcmlwdHMpIHsKIAogZGVzY3JpcHRpb24oIlRlc3QgSW5kZXhl
ZERCIGtleVBhdGhzIik7CiAKLWZ1bmN0aW9uIHRlc3QoKQotewotICAgIHJlbW92ZVZlbmRvclBy
ZWZpeGVzKCk7Ci0KLSAgICBuYW1lID0gc2VsZi5sb2NhdGlvbi5wYXRobmFtZTsKLSAgICByZXF1
ZXN0ID0gZXZhbEFuZExvZygiaW5kZXhlZERCLm9wZW4obmFtZSkiKTsKLSAgICByZXF1ZXN0Lm9u
c3VjY2VzcyA9IG9wZW5TdWNjZXNzOwotICAgIHJlcXVlc3Qub25lcnJvciA9IHVuZXhwZWN0ZWRF
cnJvckNhbGxiYWNrOwotfQotCiBmdW5jdGlvbiBvcGVuU3VjY2VzcygpCiB7Ci0gICAgZGIgPSBl
dmFsQW5kTG9nKCJkYiA9IGV2ZW50LnRhcmdldC5yZXN1bHQiKTsKLQotICAgIHJlcXVlc3QgPSBl
dmFsQW5kTG9nKCJyZXF1ZXN0ID0gZGIuc2V0VmVyc2lvbignMScpIik7Ci0KICAgICB0ZXN0RGF0
YSA9IFt7IG5hbWU6ICJzaW1wbGUgaWRlbnRpZmllciIsCiAgICAgICAgICAgICAgICAgICB2YWx1
ZToge2lkOjEwfSwKICAgICAgICAgICAgICAgICAgIGtleVBhdGg6ICJpZCIsCkBAIC0zOSw4ICsy
NSw4IEBAIGZ1bmN0aW9uIG9wZW5TdWNjZXNzKCkKICAgICAgICAgICAgICAgICAgIGtleTogMTAg
fSwKICAgICBdOwogICAgIG5leHRUb09wZW4gPSAwOwotICAgIHJlcXVlc3Qub25zdWNjZXNzID0g
Y3JlYXRlQW5kUG9wdWxhdGVPYmplY3RTdG9yZTsKLSAgICByZXF1ZXN0Lm9uZXJyb3IgPSB1bmV4
cGVjdGVkRXJyb3JDYWxsYmFjazsKKworICAgIGNyZWF0ZUFuZFBvcHVsYXRlT2JqZWN0U3RvcmUo
KTsKIH0KIAogZnVuY3Rpb24gY3JlYXRlQW5kUG9wdWxhdGVPYmplY3RTdG9yZSgpCkBAIC03OCw0
ICs2NCw0IEBAIGZ1bmN0aW9uIGNoZWNrQ3Vyc29yKCkKICAgICB9CiB9CiAKLXRlc3QoKTsKXCBO
byBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCitpbmRleGVkREJUZXN0KG9wZW5TdWNjZXNzKTsKZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL3Jlc291cmNlcy9rZXlwYXRo
LWludHJpbnNpYy1wcm9wZXJ0aWVzLmpzIGIvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIv
cmVzb3VyY2VzL2tleXBhdGgtaW50cmluc2ljLXByb3BlcnRpZXMuanMKaW5kZXggNDMxOWJjYzkz
NmNhZTliOTRmMDJlOTU5Yzg3Y2ZmZjkzYTNmN2UxYy4uMTUwZTZkYTYyMmJmNjE2OTNjOTNkM2Zl
NmM5NGNlMGQzOTgwNDkwMyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVk
ZGIvcmVzb3VyY2VzL2tleXBhdGgtaW50cmluc2ljLXByb3BlcnRpZXMuanMKKysrIGIvTGF5b3V0
VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvcmVzb3VyY2VzL2tleXBhdGgtaW50cmluc2ljLXByb3Bl
cnRpZXMuanMKQEAgLTUsMzUgKzUsMTEgQEAgaWYgKHRoaXMuaW1wb3J0U2NyaXB0cykgewogCiBk
ZXNjcmlwdGlvbigiVGVzdCBJbmRleGVkREIga2V5UGF0aCB3aXRoIGludHJpbnNpYyBwcm9wZXJ0
aWVzIik7CiAKLWZ1bmN0aW9uIHRlc3QoKQotewotICAgIHJlbW92ZVZlbmRvclByZWZpeGVzKCk7
Ci0KLSAgICByZXF1ZXN0ID0gZXZhbEFuZExvZygiaW5kZXhlZERCLmRlbGV0ZURhdGFiYXNlKCdr
ZXlwYXRoLWludHJpbnNpYy1wcm9wZXJ0aWVzJykiKTsKLSAgICByZXF1ZXN0Lm9uZXJyb3IgPSB1
bmV4cGVjdGVkRXJyb3JDYWxsYmFjazsKLSAgICByZXF1ZXN0Lm9uc3VjY2VzcyA9IGZ1bmN0aW9u
ICgpIHsKLSAgICAgICAgcmVxdWVzdCA9IGV2YWxBbmRMb2coImluZGV4ZWREQi5vcGVuKCdrZXlw
YXRoLWludHJpbnNpYy1wcm9wZXJ0aWVzJykiKTsKLSAgICAgICAgcmVxdWVzdC5vbmVycm9yID0g
dW5leHBlY3RlZEVycm9yQ2FsbGJhY2s7Ci0gICAgICAgIHJlcXVlc3Qub25zdWNjZXNzID0gb3Bl
blN1Y2Nlc3M7Ci0gICAgfTsKLX0KLQogZnVuY3Rpb24gb3BlblN1Y2Nlc3MoKQogewotICAgIGRl
YnVnKCIiKTsKLSAgICBkZWJ1Zygib3BlblN1Y2Nlc3MoKToiKTsKLSAgICBkYiA9IGV2YWxBbmRM
b2coImRiID0gZXZlbnQudGFyZ2V0LnJlc3VsdCIpOwotICAgIHJlcXVlc3QgPSBldmFsQW5kTG9n
KCJyZXF1ZXN0ID0gZGIuc2V0VmVyc2lvbignMScpIik7Ci0gICAgcmVxdWVzdC5vbmVycm9yID0g
dW5leHBlY3RlZEVycm9yQ2FsbGJhY2s7Ci0gICAgcmVxdWVzdC5vbnN1Y2Nlc3MgPSBmdW5jdGlv
biAoKSB7Ci0gICAgICAgIHRyYW5zYWN0aW9uID0gcmVxdWVzdC5yZXN1bHQ7Ci0gICAgICAgIHRy
YW5zYWN0aW9uLm9uYWJvcnQgPSB1bmV4cGVjdGVkQWJvcnRDYWxsYmFjazsKLSAgICAgICAgZXZh
bEFuZExvZygic3RvcmUgPSBkYi5jcmVhdGVPYmplY3RTdG9yZSgnc3RvcmUnLCB7a2V5UGF0aDog
J2lkJ30pIik7Ci0gICAgICAgIGV2YWxBbmRMb2coInN0b3JlLmNyZWF0ZUluZGV4KCdzdHJpbmcg
bGVuZ3RoJywgJ3N0cmluZy5sZW5ndGgnKSIpOwotICAgICAgICBldmFsQW5kTG9nKCJzdG9yZS5j
cmVhdGVJbmRleCgnYXJyYXkgbGVuZ3RoJywgJ2FycmF5Lmxlbmd0aCcpIik7Ci0KLSAgICAgICAg
dHJhbnNhY3Rpb24ub25jb21wbGV0ZSA9IHRlc3RLZXlQYXRoczsKLSAgICB9OworICAgIGV2YWxB
bmRMb2coInN0b3JlID0gZGIuY3JlYXRlT2JqZWN0U3RvcmUoJ3N0b3JlJywge2tleVBhdGg6ICdp
ZCd9KSIpOworICAgIGV2YWxBbmRMb2coInN0b3JlLmNyZWF0ZUluZGV4KCdzdHJpbmcgbGVuZ3Ro
JywgJ3N0cmluZy5sZW5ndGgnKSIpOworICAgIGV2YWxBbmRMb2coInN0b3JlLmNyZWF0ZUluZGV4
KCdhcnJheSBsZW5ndGgnLCAnYXJyYXkubGVuZ3RoJykiKTsKIH0KIAogZnVuY3Rpb24gdGVzdEtl
eVBhdGhzKCkKQEAgLTY3LDcgKzQzLDcgQEAgZnVuY3Rpb24gdGVzdEtleVBhdGhzKCkKICAgICAg
ICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICAgICAgY2hlY2tBcnJheUxlbmd0aHMoKTsKICAg
ICAgICAgICAgIH0KLSAgICAgICAgfQorICAgICAgICB9OwogICAgIH0KIAogICAgIGZ1bmN0aW9u
IGNoZWNrQXJyYXlMZW5ndGhzKCkgewpAQCAtNzksMTAgKzU1LDExIEBAIGZ1bmN0aW9uIHRlc3RL
ZXlQYXRocygpCiAgICAgICAgICAgICAgICAgc2hvdWxkQmUoImN1cnNvci5rZXkiLCAiY3Vyc29y
LnZhbHVlLmFycmF5Lmxlbmd0aCIpOwogICAgICAgICAgICAgICAgIGN1cnNvci5jb250aW51ZSgp
OwogICAgICAgICAgICAgfQotICAgICAgICB9CisgICAgICAgIH07CiAgICAgfQogCiAgICAgdHJh
bnNhY3Rpb24ub25jb21wbGV0ZSA9IGZpbmlzaEpTVGVzdDsKIH0KIAotdGVzdCgpOworaW5kZXhl
ZERCVGVzdChvcGVuU3VjY2VzcywgdGVzdEtleVBhdGhzKTsKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvcmVzb3VyY2VzL2xlZ2FjeS1jb25zdGFudHMuanMgYi9M
YXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9yZXNvdXJjZXMvbGVnYWN5LWNvbnN0YW50cy5q
cwppbmRleCA5M2FkZjk0OGRmYzNkOTQ5MjRlYzg3MzYyY2RjMzBkNmM1ODExMGZlLi4yMjZkMmZk
ZDAwNjE0YTJjYTIwYTg4ZDY2NmQxN2E1NDNiNjQwY2Y3IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0
cy9zdG9yYWdlL2luZGV4ZWRkYi9yZXNvdXJjZXMvbGVnYWN5LWNvbnN0YW50cy5qcworKysgYi9M
YXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9yZXNvdXJjZXMvbGVnYWN5LWNvbnN0YW50cy5q
cwpAQCAtNSwzMSArNSwxMiBAQCBpZiAodGhpcy5pbXBvcnRTY3JpcHRzKSB7CiAKIGRlc2NyaXB0
aW9uKCJUZXN0IHRoYXQgbGVnYWN5IGRpcmVjdGlvbi9tb2RlIGNvbnN0YW50cyB3b3JrIik7CiAK
LWZ1bmN0aW9uIHRlc3QoKQotewotICAgIHJlbW92ZVZlbmRvclByZWZpeGVzKCk7Ci0gICAgcHJl
cGFyZURhdGFiYXNlKCk7Ci19Ci0KIGZ1bmN0aW9uIHByZXBhcmVEYXRhYmFzZSgpCiB7Ci0gICAg
ZGVidWcoIiIpOwotICAgIGV2YWxBbmRMb2coIm9wZW5yZXEgPSBpbmRleGVkREIub3BlbignbGVn
YWN5LWNvbnN0YW50cycpIik7Ci0gICAgb3BlbnJlcS5vbmVycm9yID0gdW5leHBlY3RlZEVycm9y
Q2FsbGJhY2s7Ci0gICAgb3BlbnJlcS5vbnN1Y2Nlc3MgPSBmdW5jdGlvbigpCi0gICAgewotICAg
ICAgICBldmFsQW5kTG9nKCJkYiA9IG9wZW5yZXEucmVzdWx0Iik7Ci0gICAgICAgIGV2YWxBbmRM
b2coInZlcnJlcSA9IGRiLnNldFZlcnNpb24oJzEnKSIpOwotICAgICAgICB2ZXJyZXEub25lcnJv
ciA9IHVuZXhwZWN0ZWRFcnJvckNhbGxiYWNrOwotICAgICAgICB2ZXJyZXEub25zdWNjZXNzID0g
ZnVuY3Rpb24oKQotICAgICAgICB7Ci0gICAgICAgICAgICBkZWxldGVBbGxPYmplY3RTdG9yZXMo
ZGIpOwotICAgICAgICAgICAgbnN0b3JlID0gZXZhbEFuZExvZygic3RvcmUgPSBkYi5jcmVhdGVP
YmplY3RTdG9yZSgnc3RvcmUnKSIpOwotICAgICAgICAgICAgZXZhbEFuZExvZygic3RvcmUuY3Jl
YXRlSW5kZXgoJ2luZGV4JywgJ3ZhbHVlJykiKTsKLSAgICAgICAgICAgIHZlcnJlcS5yZXN1bHQu
b25jb21wbGV0ZSA9IHBvcHVsYXRlU3RvcmU7Ci0gICAgICAgIH07Ci0gICAgfTsKKyAgICBldmFs
QW5kTG9nKCJzdG9yZSA9IGRiLmNyZWF0ZU9iamVjdFN0b3JlKCdzdG9yZScpIik7CisgICAgZXZh
bEFuZExvZygic3RvcmUuY3JlYXRlSW5kZXgoJ2luZGV4JywgJ3ZhbHVlJykiKTsKIH0KKwogZnVu
Y3Rpb24gcG9wdWxhdGVTdG9yZSgpCiB7CiAgICAgZGVidWcoIiIpOwpAQCAtMTMyLDQgKzExMyw0
IEBAIGZ1bmN0aW9uIHRlc3RPYnNvbGV0ZUNvbnN0YW50cygpCiAgICAgZmluaXNoSlNUZXN0KCk7
CiB9CiAKLXRlc3QoKTsKK2luZGV4ZWREQlRlc3QocHJlcGFyZURhdGFiYXNlLCBwb3B1bGF0ZVN0
b3JlKTsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL3Jlc291cmNl
cy9saXN0LW9yZGVyaW5nLmpzIGIvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvcmVzb3Vy
Y2VzL2xpc3Qtb3JkZXJpbmcuanMKaW5kZXggNzM1OThmZDcyMzU4NjBlZGE3OGIyZjE3MWVlMTRk
YjBjMGMxYWNjZi4uODliMDgwNmJhNzg3NTY3Nzg2ZGYwMTI0ZjVlZWVhMDkzNDUzZGQ3NiAxMDA2
NDQKLS0tIGEvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvcmVzb3VyY2VzL2xpc3Qtb3Jk
ZXJpbmcuanMKKysrIGIvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvcmVzb3VyY2VzL2xp
c3Qtb3JkZXJpbmcuanMKQEAgLTMyLDUzICszMiwzMyBAQCBmb3IgKGkgPSAwOyBpIDwgcGVybXV0
ZWRfb3JkZXIubGVuZ3RoIC0gMjsgaSArPSAyKSB7CiAgICAgcGVybXV0ZWRfb3JkZXJbaSArIDFd
ID0gdG1wOwogfQogCi1mdW5jdGlvbiB0ZXN0KCkKK2Z1bmN0aW9uIHRlc3RTdG9yZXNBbmRJbmRl
eGVzKCkKIHsKLSAgICByZW1vdmVWZW5kb3JQcmVmaXhlcygpOwogICAgIGRlYnVnKCJjaGVjayB0
aGF0IHRoZSBleHBlY3RlZCBvcmRlciBpcyB0aGUgY2Fub25pY2FsIEpTIHNvcnQgb3JkZXI6Iik7
CiAgICAgZXZhbEFuZExvZygic29ydGVkX29yZGVyID0gZXhwZWN0ZWRfb3JkZXIuc2xpY2UoKTsg
c29ydGVkX29yZGVyLnNvcnQoKSIpOwogICAgIHNob3VsZEJlVHJ1ZSgiYXJlQXJyYXlzRXF1YWwo
c29ydGVkX29yZGVyLCBleHBlY3RlZF9vcmRlcikiKTsKLSAgICB0ZXN0U3RvcmVzQW5kSW5kZXhl
cygpOwotfQogCi1mdW5jdGlvbiB0ZXN0U3RvcmVzQW5kSW5kZXhlcygpCi17CiAgICAgZGVidWco
IiIpOwogICAgIGRlYnVnKCJ0ZXN0U3RvcmVzQW5kSW5kZXhlcygpOiIpOwotICAgIHJlcXVlc3Qg
PSBldmFsQW5kTG9nKCJpbmRleGVkREIuZGVsZXRlRGF0YWJhc2UoJ2xpc3Qtb3JkZXJpbmcnKSIp
OwotICAgIHJlcXVlc3Qub25lcnJvciA9IHVuZXhwZWN0ZWRFcnJvckNhbGxiYWNrOwotICAgIHJl
cXVlc3Qub25zdWNjZXNzID0gZnVuY3Rpb24oZSkgewotICAgICAgICByZXF1ZXN0ID0gZXZhbEFu
ZExvZygiaW5kZXhlZERCLm9wZW4oJ2xpc3Qtb3JkZXJpbmcnKSIpOwotICAgICAgICByZXF1ZXN0
Lm9uZXJyb3IgPSB1bmV4cGVjdGVkRXJyb3JDYWxsYmFjazsKLSAgICAgICAgcmVxdWVzdC5vbnN1
Y2Nlc3MgPSBmdW5jdGlvbihlKSB7Ci0gICAgICAgICAgICBldmFsQW5kTG9nKCJkYiA9IHJlcXVl
c3QucmVzdWx0Iik7Ci0gICAgICAgICAgICBzaG91bGRCZUVxdWFsVG9TdHJpbmcoImRiLnZlcnNp
b24iLCAiIik7Ci0gICAgICAgICAgICByZXF1ZXN0ID0gZXZhbEFuZExvZygiZGIuc2V0VmVyc2lv
bignMScpIik7Ci0gICAgICAgICAgICByZXF1ZXN0Lm9uZXJyb3IgPSB1bmV4cGVjdGVkRXJyb3JD
YWxsYmFjazsKLSAgICAgICAgICAgIHJlcXVlc3Qub25zdWNjZXNzID0gZnVuY3Rpb24oZSkgewot
ICAgICAgICAgICAgICAgIHRyYW5zID0gcmVxdWVzdC5yZXN1bHQ7CiAKLSAgICAgICAgICAgICAg
ICBkZWJ1ZygiIik7Ci0gICAgICAgICAgICAgICAgZGVidWcoIk9iamVjdCBzdG9yZXM6Iik7Ci0g
ICAgICAgICAgICAgICAgcGVybXV0ZWRfb3JkZXIuZm9yRWFjaChmdW5jdGlvbiAobmFtZSkgewot
ICAgICAgICAgICAgICAgICAgICBldmFsQW5kTG9nKCJkYi5jcmVhdGVPYmplY3RTdG9yZSgiICsg
SlNPTi5zdHJpbmdpZnkobmFtZSkgKyIpIik7Ci0gICAgICAgICAgICAgICAgfSk7Ci0KLSAgICAg
ICAgICAgICAgICBzaG91bGRCZVRydWUoImFyZUFycmF5c0VxdWFsKGRiLm9iamVjdFN0b3JlTmFt
ZXMsIGV4cGVjdGVkX29yZGVyKSIpOworICAgIGRlYnVnKCIiKTsKKyAgICBkZWJ1ZygiT2JqZWN0
IHN0b3JlczoiKTsKKyAgICBwZXJtdXRlZF9vcmRlci5mb3JFYWNoKGZ1bmN0aW9uIChuYW1lKSB7
CisgICAgICAgIGV2YWxBbmRMb2coImRiLmNyZWF0ZU9iamVjdFN0b3JlKCIgKyBKU09OLnN0cmlu
Z2lmeShuYW1lKSArIikiKTsKKyAgICB9KTsKIAotICAgICAgICAgICAgICAgIGRlYnVnKCIiKTsK
LSAgICAgICAgICAgICAgICBkZWJ1ZygiSW5kZXhlczoiKTsKLSAgICAgICAgICAgICAgICBzdG9y
ZSA9IGV2YWxBbmRMb2coInN0b3JlID0gZGIuY3JlYXRlT2JqZWN0U3RvcmUoJ3N0b3JlJykiKTsK
LSAgICAgICAgICAgICAgICBwZXJtdXRlZF9vcmRlci5mb3JFYWNoKGZ1bmN0aW9uIChuYW1lKSB7
Ci0gICAgICAgICAgICAgICAgICAgIGV2YWxBbmRMb2coInN0b3JlLmNyZWF0ZUluZGV4KCIgKyBK
U09OLnN0cmluZ2lmeShuYW1lKSArIiwgJ2tleVBhdGgnKSIpOwotICAgICAgICAgICAgICAgIH0p
OworICAgIHNob3VsZEJlVHJ1ZSgiYXJlQXJyYXlzRXF1YWwoZGIub2JqZWN0U3RvcmVOYW1lcywg
ZXhwZWN0ZWRfb3JkZXIpIik7CiAKLSAgICAgICAgICAgICAgICBzaG91bGRCZVRydWUoImFyZUFy
cmF5c0VxdWFsKHN0b3JlLmluZGV4TmFtZXMsIGV4cGVjdGVkX29yZGVyKSIpOworICAgIGRlYnVn
KCIiKTsKKyAgICBkZWJ1ZygiSW5kZXhlczoiKTsKKyAgICBzdG9yZSA9IGV2YWxBbmRMb2coInN0
b3JlID0gZGIuY3JlYXRlT2JqZWN0U3RvcmUoJ3N0b3JlJykiKTsKKyAgICBwZXJtdXRlZF9vcmRl
ci5mb3JFYWNoKGZ1bmN0aW9uIChuYW1lKSB7CisgICAgICAgIGV2YWxBbmRMb2coInN0b3JlLmNy
ZWF0ZUluZGV4KCIgKyBKU09OLnN0cmluZ2lmeShuYW1lKSArIiwgJ2tleVBhdGgnKSIpOworICAg
IH0pOwogCi0gICAgICAgICAgICAgICAgdHJhbnMub25jb21wbGV0ZSA9IGZpbmlzaEpTVGVzdDsK
LSAgICAgICAgICAgIH07Ci0gICAgICAgIH07Ci0gICAgfTsKKyAgICBzaG91bGRCZVRydWUoImFy
ZUFycmF5c0VxdWFsKHN0b3JlLmluZGV4TmFtZXMsIGV4cGVjdGVkX29yZGVyKSIpOworICAgIGZp
bmlzaEpTVGVzdCgpOwogfQogCi10ZXN0KCk7ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQor
aW5kZXhlZERCVGVzdCh0ZXN0U3RvcmVzQW5kSW5kZXhlcyk7CisKZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL3Jlc291cmNlcy9tdXRhdGluZy1jdXJzb3IuanMgYi9M
YXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9yZXNvdXJjZXMvbXV0YXRpbmctY3Vyc29yLmpz
CmluZGV4IGFjZGJjOTFkMDQyZGNiZjk3YzM0YWZmMWNlMWVmNDBkMjA2ZGZmY2MuLmJlOGUzNGY5
YjIzNjMyN2JkZGVjNmUwODBiMjUyODc3NWY3MDU1YjUgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3Rz
L3N0b3JhZ2UvaW5kZXhlZGRiL3Jlc291cmNlcy9tdXRhdGluZy1jdXJzb3IuanMKKysrIGIvTGF5
b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvcmVzb3VyY2VzL211dGF0aW5nLWN1cnNvci5qcwpA
QCAtNSwzNSArNSwxMCBAQCBpZiAodGhpcy5pbXBvcnRTY3JpcHRzKSB7CiAKIGRlc2NyaXB0aW9u
KCJUZXN0IG11dGF0aW5nIGFuIEluZGV4ZWREQidzIG9iamVjdHN0b3JlIGZyb20gYSBjdXJzb3Iu
Iik7CiAKLXRlc3QoKTsKLQotZnVuY3Rpb24gdGVzdCgpCi17Ci0gICAgcmVtb3ZlVmVuZG9yUHJl
Zml4ZXMoKTsKLSAgICByZXF1ZXN0ID0gZXZhbEFuZExvZygiaW5kZXhlZERCLm9wZW4oJ211dGF0
aW5nLWN1cnNvcicpIik7Ci0gICAgcmVxdWVzdC5vbnN1Y2Nlc3MgPSBvcGVuU3VjY2VzczsKLSAg
ICByZXF1ZXN0Lm9uZXJyb3IgPSB1bmV4cGVjdGVkRXJyb3JDYWxsYmFjazsKLX0KLQotZnVuY3Rp
b24gb3BlblN1Y2Nlc3MoKQotewotICAgIHZhciBkYiA9IGV2YWxBbmRMb2coImRiID0gZXZlbnQu
dGFyZ2V0LnJlc3VsdCIpOwotCi0gICAgcmVxdWVzdCA9IGV2YWxBbmRMb2coImRiLnNldFZlcnNp
b24oJzEnKSIpOwotICAgIHJlcXVlc3Qub25zdWNjZXNzID0gc2V0VmVyc2lvblN1Y2Nlc3M7Ci0g
ICAgcmVxdWVzdC5vbmVycm9yID0gdW5leHBlY3RlZEVycm9yQ2FsbGJhY2s7Ci19CitpbmRleGVk
REJUZXN0KHNldFZlcnNpb25TdWNjZXNzLCBvcGVuRm9yd2FyZEN1cnNvcik7CiAKIGZ1bmN0aW9u
IHNldFZlcnNpb25TdWNjZXNzKCkKIHsKLSAgICBkZWJ1Zygic2V0VmVyc2lvblN1Y2Nlc3MoKToi
KTsKLSAgICBzZWxmLnRyYW5zID0gZXZhbEFuZExvZygidHJhbnMgPSBldmVudC50YXJnZXQucmVz
dWx0Iik7Ci0gICAgc2hvdWxkQmVOb25OdWxsKCJ0cmFucyIpOwotICAgIHRyYW5zLm9uYWJvcnQg
PSB1bmV4cGVjdGVkQWJvcnRDYWxsYmFjazsKLSAgICB0cmFucy5vbmNvbXBsZXRlID0gb3BlbkZv
cndhcmRDdXJzb3I7Ci0KLSAgICBkZWxldGVBbGxPYmplY3RTdG9yZXMoZGIpOwotCiAgICAgdmFy
IG9iamVjdFN0b3JlID0gZXZhbEFuZExvZygib2JqZWN0U3RvcmUgPSBkYi5jcmVhdGVPYmplY3RT
dG9yZSgnc3RvcmUnKSIpOwogICAgIGV2YWxBbmRMb2coIm9iamVjdFN0b3JlLmFkZCgxLCAxKS5v
bmVycm9yID0gdW5leHBlY3RlZEVycm9yQ2FsbGJhY2siKTsKICAgICBldmFsQW5kTG9nKCJvYmpl
Y3RTdG9yZS5hZGQoMiwgMikub25lcnJvciA9IHVuZXhwZWN0ZWRFcnJvckNhbGxiYWNrIik7CkBA
IC0xMjksNCArMTA0LDUgQEAgZnVuY3Rpb24gcmV2ZXJzZUN1cnNvckNvbXBsZXRlKCkKIHsKICAg
ICBkZWJ1ZygicmV2ZXJzZUN1cnNvckNvbXBsZXRlKCkiKTsKICAgICBmaW5pc2hKU1Rlc3QoKTsK
LX0KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCit9CisKZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL3N0b3JhZ2UvaW5kZXhlZGRiL3Jlc291cmNlcy9vYmplY3RTdG9yZS1yZXF1aXJlZC1hcmd1
bWVudHMuanMgYi9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9yZXNvdXJjZXMvb2JqZWN0
U3RvcmUtcmVxdWlyZWQtYXJndW1lbnRzLmpzCmluZGV4IGQyOTViZmMxYWE3ODE1YjNkMmZjYzQ1
MmJjMTc2N2Y5MjdmNzdhMTAuLjdkNWJlZDA4MmJhYjQ4MWNkNzU4NmVhMjJhMjJkYzM2MWJiNmFk
YWIgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL3Jlc291cmNlcy9v
YmplY3RTdG9yZS1yZXF1aXJlZC1hcmd1bWVudHMuanMKKysrIGIvTGF5b3V0VGVzdHMvc3RvcmFn
ZS9pbmRleGVkZGIvcmVzb3VyY2VzL29iamVjdFN0b3JlLXJlcXVpcmVkLWFyZ3VtZW50cy5qcwpA
QCAtNSwyOSArNSw4IEBAIGlmICh0aGlzLmltcG9ydFNjcmlwdHMpIHsKIAogZGVzY3JpcHRpb24o
IlRlc3QgSW5kZXhlZERCIG9iamVjdCBzdG9yZSByZXF1aXJlZCBhcmd1bWVudHMiKTsKIAotZnVu
Y3Rpb24gdGVzdCgpCi17Ci0gICAgcmVtb3ZlVmVuZG9yUHJlZml4ZXMoKTsKLQotICAgIG5hbWUg
PSBzZWxmLmxvY2F0aW9uLnBhdGhuYW1lOwotICAgIHJlcXVlc3QgPSBldmFsQW5kTG9nKCJpbmRl
eGVkREIub3BlbihuYW1lKSIpOwotICAgIHJlcXVlc3Qub25zdWNjZXNzID0gb3BlblN1Y2Nlc3M7
Ci0gICAgcmVxdWVzdC5vbmVycm9yID0gdW5leHBlY3RlZEVycm9yQ2FsbGJhY2s7Ci19Ci0KLWZ1
bmN0aW9uIG9wZW5TdWNjZXNzKCkKLXsKLSAgICBkYiA9IGV2YWxBbmRMb2coImRiID0gZXZlbnQu
dGFyZ2V0LnJlc3VsdCIpOwotCi0gICAgcmVxdWVzdCA9IGV2YWxBbmRMb2coInJlcXVlc3QgPSBk
Yi5zZXRWZXJzaW9uKCcxJykiKTsKLSAgICByZXF1ZXN0Lm9uc3VjY2VzcyA9IGNyZWF0ZUFuZFBv
cHVsYXRlT2JqZWN0U3RvcmU7Ci0gICAgcmVxdWVzdC5vbmVycm9yID0gdW5leHBlY3RlZEVycm9y
Q2FsbGJhY2s7Ci19Ci0KIGZ1bmN0aW9uIGNyZWF0ZUFuZFBvcHVsYXRlT2JqZWN0U3RvcmUoKQog
ewotICAgIGRlbGV0ZUFsbE9iamVjdFN0b3JlcyhkYik7Ci0KICAgICBvYmplY3RTdG9yZSA9IGV2
YWxBbmRMb2coIm9iamVjdFN0b3JlID0gZGIuY3JlYXRlT2JqZWN0U3RvcmUoJ2ZvbycpOyIpOwog
ICAgIHNob3VsZFRocm93KCJvYmplY3RTdG9yZS5wdXQoKTsiKTsKICAgICBzaG91bGRUaHJvdygi
b2JqZWN0U3RvcmUuYWRkKCk7Iik7CkBAIC00MCw0ICsxOSw0IEBAIGZ1bmN0aW9uIGNyZWF0ZUFu
ZFBvcHVsYXRlT2JqZWN0U3RvcmUoKQogICAgIGZpbmlzaEpTVGVzdCgpOwogfQogCi10ZXN0KCk7
ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQoraW5kZXhlZERCVGVzdChjcmVhdGVBbmRQb3B1
bGF0ZU9iamVjdFN0b3JlKTsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhl
ZGRiL3Jlc291cmNlcy9vYmplY3RzdG9yZS1hdXRvaW5jcmVtZW50LmpzIGIvTGF5b3V0VGVzdHMv
c3RvcmFnZS9pbmRleGVkZGIvcmVzb3VyY2VzL29iamVjdHN0b3JlLWF1dG9pbmNyZW1lbnQuanMK
aW5kZXggODYyYTA1NWQ3Y2U0NDhiYzE5MTFjNjZhZTViOTJkOTA2OGExNTI5Mi4uNDAwYTU4NzVm
NTUzY2NjMDQ3ZjRhNWIxYzViMzM0MDljNjAzYWE0NSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMv
c3RvcmFnZS9pbmRleGVkZGIvcmVzb3VyY2VzL29iamVjdHN0b3JlLWF1dG9pbmNyZW1lbnQuanMK
KysrIGIvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvcmVzb3VyY2VzL29iamVjdHN0b3Jl
LWF1dG9pbmNyZW1lbnQuanMKQEAgLTUsMzQgKzUsOCBAQCBpZiAodGhpcy5pbXBvcnRTY3JpcHRz
KSB7CiAKIGRlc2NyaXB0aW9uKCJUZXN0IEluZGV4ZWREQidzIElEQk9iamVjdFN0b3JlIGF1dG8t
aW5jcmVtZW50IGZlYXR1cmUuIik7CiAKLWZ1bmN0aW9uIHRlc3QoKQotewotICAgIHJlbW92ZVZl
bmRvclByZWZpeGVzKCk7Ci0gICAgcmVxdWVzdCA9IGV2YWxBbmRMb2coImluZGV4ZWREQi5vcGVu
KCdvYmplY3RzdG9yZS1hdXRvaW5jcmVtZW50JykiKTsKLSAgICByZXF1ZXN0Lm9uc3VjY2VzcyA9
IG9wZW5TdWNjZXNzOwotICAgIHJlcXVlc3Qub25lcnJvciA9IHVuZXhwZWN0ZWRFcnJvckNhbGxi
YWNrOwotfQotCi1mdW5jdGlvbiBvcGVuU3VjY2VzcygpCi17Ci0gICAgZGVidWcoIm9wZW5TdWNj
ZXNzKCk6Iik7Ci0gICAgc2VsZi5kYiA9IGV2YWxBbmRMb2coImRiID0gZXZlbnQudGFyZ2V0LnJl
c3VsdCIpOwotCi0gICAgcmVxdWVzdCA9IGV2YWxBbmRMb2coImRiLnNldFZlcnNpb24oJ25ldyB2
ZXJzaW9uJykiKTsKLSAgICByZXF1ZXN0Lm9uc3VjY2VzcyA9IHNldFZlcnNpb25TdWNjZXNzOwot
ICAgIHJlcXVlc3Qub25lcnJvciA9IHVuZXhwZWN0ZWRFcnJvckNhbGxiYWNrOwotfQotCiBmdW5j
dGlvbiBzZXRWZXJzaW9uU3VjY2VzcygpCiB7Ci0gICAgZGVidWcoInNldFZlcnNpb25TdWNjZXNz
KCk6Iik7Ci0gICAgc2VsZi50cmFucyA9IGV2YWxBbmRMb2coInRyYW5zID0gZXZlbnQudGFyZ2V0
LnJlc3VsdCIpOwotICAgIHNob3VsZEJlTm9uTnVsbCgidHJhbnMiKTsKLSAgICB0cmFucy5vbmFi
b3J0ID0gdW5leHBlY3RlZEFib3J0Q2FsbGJhY2s7Ci0gICAgdHJhbnMub25jb21wbGV0ZSA9IHNl
dFZlcnNpb25Db21wbGV0ZWQ7Ci0KLSAgICBkZWxldGVBbGxPYmplY3RTdG9yZXMoZGIpOwotCiAg
ICAgZGVidWcoImNyZWF0ZU9iamVjdFN0b3JlKCk6Iik7CiAgICAgc2VsZi5zdG9yZSA9IGV2YWxB
bmRMb2coInN0b3JlID0gZGIuY3JlYXRlT2JqZWN0U3RvcmUoJ1N0b3JlV2l0aEtleVBhdGgnLCB7
a2V5UGF0aDogJ2lkJywgYXV0b0luY3JlbWVudDogdHJ1ZX0pIik7CiAgICAgZXZhbEFuZExvZygi
ZGIuY3JlYXRlT2JqZWN0U3RvcmUoJ1N0b3JlV2l0aEF1dG9JbmNyZW1lbnQnLCB7YXV0b0luY3Jl
bWVudDogdHJ1ZX0pIik7CkBAIC00Niw4ICsyMCw2IEBAIGZ1bmN0aW9uIHNldFZlcnNpb25TdWNj
ZXNzKCkKICAgICBzaG91bGRCZSgic3RvcmVOYW1lcy5jb250YWlucygnU3RvcmVXaXRoQXV0b0lu
Y3JlbWVudCcpIiwgInRydWUiKTsKICAgICBzaG91bGRCZSgic3RvcmVOYW1lcy5jb250YWlucygn
UGxhaW5PbGRTdG9yZScpIiwgInRydWUiKTsKICAgICBzaG91bGRCZSgic3RvcmVOYW1lcy5sZW5n
dGgiLCAiNCIpOwotCi0gICAgLy8gTGV0IHRoZSBzZXRWZXJzaW9uIHRyYW5zYWN0aW9uIGNvbXBs
ZXRlLgogfQogCiBmdW5jdGlvbiBzZXRWZXJzaW9uQ29tcGxldGVkKCkKQEAgLTE5MCw0ICsxNjIs
NCBAQCBmdW5jdGlvbiB0ZXN0TG9uZ0tleVBhdGgoKQogICAgIH07CiB9CiAKLXRlc3QoKTsKXCBO
byBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCitpbmRleGVkREJUZXN0KHNldFZlcnNpb25TdWNjZXNz
LCBzZXRWZXJzaW9uQ29tcGxldGVkKTsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3N0b3JhZ2Uv
aW5kZXhlZGRiL3Jlc291cmNlcy9vYmplY3RzdG9yZS1jbGVhci5qcyBiL0xheW91dFRlc3RzL3N0
b3JhZ2UvaW5kZXhlZGRiL3Jlc291cmNlcy9vYmplY3RzdG9yZS1jbGVhci5qcwppbmRleCAwYjdm
M2ZmNTUxZjg1YWIwMThlMDBmYTU2MTRkYzM5NTU0OWY3YWY1Li5hYWNjNTM0NDc0NWZiNjExNjE3
YWRjYzM3M2I5NDM3YTc3OTFmM2ZjIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9zdG9yYWdlL2lu
ZGV4ZWRkYi9yZXNvdXJjZXMvb2JqZWN0c3RvcmUtY2xlYXIuanMKKysrIGIvTGF5b3V0VGVzdHMv
c3RvcmFnZS9pbmRleGVkZGIvcmVzb3VyY2VzL29iamVjdHN0b3JlLWNsZWFyLmpzCkBAIC01LDMw
ICs1LDggQEAgaWYgKHRoaXMuaW1wb3J0U2NyaXB0cykgewogCiBkZXNjcmlwdGlvbigiVGVzdCBJ
bmRleGVkREIncyB3ZWJraXRJREJPYmplY3RTdG9yZS5jbGVhcigpLiIpOwogCi1mdW5jdGlvbiB0
ZXN0KCkKK2Z1bmN0aW9uIHByZXBhcmVEYXRhYmFzZSgpCiB7Ci0gICAgcmVtb3ZlVmVuZG9yUHJl
Zml4ZXMoKTsKLSAgICByZXF1ZXN0ID0gZXZhbEFuZExvZygiaW5kZXhlZERCLm9wZW4oJ29iamVj
dHN0b3JlLWNsZWFyJykiKTsKLSAgICByZXF1ZXN0Lm9uc3VjY2VzcyA9IHN0YXJ0U2V0VmVyc2lv
bjsKLSAgICByZXF1ZXN0Lm9uZXJyb3IgPSB1bmV4cGVjdGVkRXJyb3JDYWxsYmFjazsKLX0KLQot
ZnVuY3Rpb24gc3RhcnRTZXRWZXJzaW9uKCkKLXsKLSAgICBkYiA9IGV2YWxBbmRMb2coImRiID0g
ZXZlbnQudGFyZ2V0LnJlc3VsdCIpOwotCi0gICAgcmVxdWVzdCA9IGV2YWxBbmRMb2coImRiLnNl
dFZlcnNpb24oJ25ldyB2ZXJzaW9uJykiKTsKLSAgICByZXF1ZXN0Lm9uc3VjY2VzcyA9IGRlbGV0
ZUV4aXN0aW5nOwotICAgIHJlcXVlc3Qub25lcnJvciA9IHVuZXhwZWN0ZWRFcnJvckNhbGxiYWNr
OwotfQotCi1mdW5jdGlvbiBkZWxldGVFeGlzdGluZygpCi17Ci0gICAgc2VsZi50cmFucyA9IGV2
YWxBbmRMb2coInRyYW5zID0gZXZlbnQudGFyZ2V0LnJlc3VsdCIpOwotICAgIHNob3VsZEJlTm9u
TnVsbCgidHJhbnMiKTsKLQotICAgIGRlbGV0ZUFsbE9iamVjdFN0b3JlcyhkYik7Ci0KICAgICBz
dG9yZSA9IGV2YWxBbmRMb2coInN0b3JlID0gZGIuY3JlYXRlT2JqZWN0U3RvcmUoJ3N0b3JlTmFt
ZScsIG51bGwpIik7CiAKICAgICBzZWxmLmluZGV4ID0gZXZhbEFuZExvZygic3RvcmUuY3JlYXRl
SW5kZXgoJ2luZGV4TmFtZScsICcnKSIpOwpAQCAtNzgsNyArNTYsNiBAQCBmdW5jdGlvbiBvcGVu
S2V5Q3Vyc29yU3VjY2VzcygpCiB7CiAgICAgZGVidWcoIm9wZW5LZXlDdXJzb3JTdWNjZXNzKCk6
Iik7CiAgICAgc2hvdWxkQmVOdWxsKCJldmVudC50YXJnZXQucmVzdWx0Iik7Ci0gICAgdHJhbnMu
b25jb21wbGV0ZSA9IHNldFZlcnNpb25Db21wbGV0ZTsKIH0KIAogZnVuY3Rpb24gc2V0VmVyc2lv
bkNvbXBsZXRlKCkKQEAgLTk5LDQgKzc2LDQgQEAgZnVuY3Rpb24gZ2V0U3VjY2VzcygpCiAgICAg
ZmluaXNoSlNUZXN0KCk7CiB9CiAKLXRlc3QoKTsKXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxl
CitpbmRleGVkREJUZXN0KHByZXBhcmVEYXRhYmFzZSwgc2V0VmVyc2lvbkNvbXBsZXRlKTsKZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL3Jlc291cmNlcy9vYmplY3Rz
dG9yZS1jb3VudC5qcyBiL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL3Jlc291cmNlcy9v
YmplY3RzdG9yZS1jb3VudC5qcwppbmRleCA4OTUwM2Y3YzBjMGU2MTU5Nzk2MTE4YTgzZmNjZDEz
M2UwOGE2ODNhLi44MDcyOGQzMWY3YjNlNDA0ZDVmMTRmZTYwM2Y0MDllNDA4ZDdmNDI2IDEwMDY0
NAotLS0gYS9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9yZXNvdXJjZXMvb2JqZWN0c3Rv
cmUtY291bnQuanMKKysrIGIvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvcmVzb3VyY2Vz
L29iamVjdHN0b3JlLWNvdW50LmpzCkBAIC01LDI4ICs1LDggQEAgaWYgKHRoaXMuaW1wb3J0U2Ny
aXB0cykgewogCiBkZXNjcmlwdGlvbigiVGVzdCBJbmRleGVkREIncyBJREJPYmplY3RTdG9yZS5j
b3VudCgpLiIpOwogCi1mdW5jdGlvbiB0ZXN0KCkKLXsKLSAgICByZW1vdmVWZW5kb3JQcmVmaXhl
cygpOwotICAgIHJlcXVlc3QgPSBldmFsQW5kTG9nKCJpbmRleGVkREIub3Blbignb2JqZWN0c3Rv
cmUtY291bnQnKSIpOwotICAgIHJlcXVlc3Qub25lcnJvciA9IHVuZXhwZWN0ZWRFcnJvckNhbGxi
YWNrOwotICAgIHJlcXVlc3Qub25zdWNjZXNzID0gZnVuY3Rpb24oKSB7Ci0gICAgICAgIGRiID0g
ZXZhbEFuZExvZygiZGIgPSBldmVudC50YXJnZXQucmVzdWx0Iik7Ci0gICAgICAgIHJlcXVlc3Qg
PSBldmFsQW5kTG9nKCJkYi5zZXRWZXJzaW9uKCduZXcgdmVyc2lvbicpIik7Ci0gICAgICAgIHJl
cXVlc3Qub25lcnJvciA9IHVuZXhwZWN0ZWRFcnJvckNhbGxiYWNrOwotICAgICAgICByZXF1ZXN0
Lm9uc3VjY2VzcyA9IHByZXBhcmVEYXRhYmFzZTsKLSAgICB9OwotfQotCiBmdW5jdGlvbiBwcmVw
YXJlRGF0YWJhc2UoKQogewotICAgIGRlYnVnKCIiKTsKLSAgICBkZWJ1ZygicHJlcGFyaW5nIGRh
dGFiYXNlIik7Ci0gICAgc2VsZi50cmFucyA9IGV2YWxBbmRMb2coInRyYW5zID0gZXZlbnQudGFy
Z2V0LnJlc3VsdCIpOwotICAgIHNob3VsZEJlTm9uTnVsbCgidHJhbnMiKTsKLQotICAgIGRlbGV0
ZUFsbE9iamVjdFN0b3JlcyhkYik7Ci0KICAgICBzdG9yZSA9IGV2YWxBbmRMb2coInN0b3JlID0g
ZGIuY3JlYXRlT2JqZWN0U3RvcmUoJ3N0b3JlTmFtZScsIG51bGwpIik7CiAKICAgICBkZWJ1Zygi
YWRkaW5nIDAgLi4uIDk5Iik7CkBAIC0zNCw3ICsxNCw2IEBAIGZ1bmN0aW9uIHByZXBhcmVEYXRh
YmFzZSgpCiAgICAgICAgIHJlcXVlc3QgPSBzdG9yZS5hZGQoaSwgaSk7CiAgICAgICAgIHJlcXVl
c3Qub25lcnJvciA9IHVuZXhwZWN0ZWRFcnJvckNhbGxiYWNrOwogICAgIH0KLSAgICB0cmFucy5v
bmNvbXBsZXRlID0gdmVyaWZ5Q291bnQ7CiB9CiAKIGZ1bmN0aW9uIHZlcmlmeUNvdW50KCkKQEAg
LTE0MSw0ICsxMjAsNCBAQCBmdW5jdGlvbiB2ZXJpZnlDb3VudFdpdGhLZXkoKQogICAgIG5leHRU
ZXN0KCk7CiB9CiAKLXRlc3QoKTsKXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCitpbmRleGVk
REJUZXN0KHByZXBhcmVEYXRhYmFzZSwgdmVyaWZ5Q291bnQpOwpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvcmVzb3VyY2VzL29iamVjdHN0b3JlLWN1cnNvci5qcyBi
L0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL3Jlc291cmNlcy9vYmplY3RzdG9yZS1jdXJz
b3IuanMKaW5kZXggZTE0ZmUyYzU3ZDg0NjgzMDIzNDYzZDY5NjM0YTJhZDBhN2I5MTEyMi4uY2Fi
ZDAwZDNlM2ZkMTVlOWIwM2ZlNzFmN2Y2ZWQ1MDUyMTc5YzNlMiAxMDA2NDQKLS0tIGEvTGF5b3V0
VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvcmVzb3VyY2VzL29iamVjdHN0b3JlLWN1cnNvci5qcwor
KysgYi9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9yZXNvdXJjZXMvb2JqZWN0c3RvcmUt
Y3Vyc29yLmpzCkBAIC0xNywzMCArMTcsOCBAQCBzZWxmLnRlc3REYXRhID0gWwogICAgICJhIGxv
dyBzdHJpbmciCiBdOwogCi1mdW5jdGlvbiBvcGVuRGF0YWJhc2UoKQotewotICAgIHJlcXVlc3Qg
PSBldmFsQW5kTG9nKCJpbmRleGVkREIub3Blbignb2JqZWN0c3RvcmUtY3Vyc29yJykiKTsKLSAg
ICByZXF1ZXN0Lm9uc3VjY2VzcyA9IHNldFZlcnNpb247Ci0gICAgcmVxdWVzdC5vbmVycm9yID0g
dW5leHBlY3RlZEVycm9yQ2FsbGJhY2s7Ci19Ci0KIGZ1bmN0aW9uIHNldFZlcnNpb24oKQogewot
ICAgIHNlbGYuZGIgPSBldmFsQW5kTG9nKCJkYiA9IGV2ZW50LnRhcmdldC5yZXN1bHQiKTsKLQot
ICAgIHJlcXVlc3QgPSBldmFsQW5kTG9nKCJkYi5zZXRWZXJzaW9uKCduZXcgdmVyc2lvbicpIik7
Ci0gICAgcmVxdWVzdC5vbnN1Y2Nlc3MgPSBkZWxldGVFeGlzdGluZzsKLSAgICByZXF1ZXN0Lm9u
ZXJyb3IgPSB1bmV4cGVjdGVkRXJyb3JDYWxsYmFjazsKLX0KLQotZnVuY3Rpb24gZGVsZXRlRXhp
c3RpbmcoKQotewotICAgIHNlbGYudHJhbnMgPSBldmFsQW5kTG9nKCJ0cmFucyA9IGV2ZW50LnRh
cmdldC5yZXN1bHQiKTsKLSAgICBzaG91bGRCZU5vbk51bGwoInRyYW5zIik7Ci0gICAgdHJhbnMu
b25hYm9ydCA9IHVuZXhwZWN0ZWRBYm9ydENhbGxiYWNrOwotCi0gICAgZGVsZXRlQWxsT2JqZWN0
U3RvcmVzKGRiKTsKLQogICAgIGV2YWxBbmRMb2coIm9iamVjdFN0b3JlID0gZGIuY3JlYXRlT2Jq
ZWN0U3RvcmUoJ3NvbWVPYmplY3RTdG9yZScpIik7CiAKICAgICBkZWJ1ZygiIik7CkBAIC0yMjgs
NSArMjA2LDQgQEAgZnVuY3Rpb24gdGVzdE51bGxLZXlSYW5nZSgpCiAgICAgcmVxdWVzdC5vbmVy
cm9yID0gdW5leHBlY3RlZEVycm9yQ2FsbGJhY2s7CiB9CiAKLXJlbW92ZVZlbmRvclByZWZpeGVz
KCk7Ci1vcGVuRGF0YWJhc2UoKTsgLy8gVGhlIGZpcnN0IHN0ZXAuCitpbmRleGVkREJUZXN0KHNl
dFZlcnNpb24pOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvcmVz
b3VyY2VzL29wZW4tY3Vyc29yLmpzIGIvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvcmVz
b3VyY2VzL29wZW4tY3Vyc29yLmpzCmluZGV4IDQzMWMxMzk5M2NmY2Y3M2M2YTEwMDAyZmFjNjE3
YTYwZmM3MzM3NDkuLjFiODJlZGNlNjFiNmFlZjhlMzU5NjljNTA5NmRlNDI2Y2NiZGQ5ZjMgMTAw
NjQ0Ci0tLSBhL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL3Jlc291cmNlcy9vcGVuLWN1
cnNvci5qcworKysgYi9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9yZXNvdXJjZXMvb3Bl
bi1jdXJzb3IuanMKQEAgLTc5LDQzICs3OSwyMSBAQCBmdW5jdGlvbiBjdXJzb3JTdWNjZXNzKCkK
IAogZnVuY3Rpb24gb3BlbkN1cnNvcigpCiB7CisgICAgZXZhbEFuZExvZygidHJhbnNhY3Rpb24g
PSBkYi50cmFuc2FjdGlvbigndGVzdCcpIik7CisgICAgZXZhbEFuZExvZygib2JqZWN0U3RvcmUg
PSB0cmFuc2FjdGlvbi5vYmplY3RTdG9yZSgndGVzdCcpIik7CisKICAgICBkZWJ1ZygiT3Blbmlu
ZyBjdXJzb3IiKTsKICAgICBrZXlSYW5nZSA9IElEQktleVJhbmdlLmxvd2VyQm91bmQoIm15S2V5
Iik7Ci0gICAgcmVxdWVzdCA9IGV2YWxBbmRMb2coImV2ZW50LnRhcmdldC5zb3VyY2Uub3BlbkN1
cnNvcihrZXlSYW5nZSkiKTsKKyAgICByZXF1ZXN0ID0gZXZhbEFuZExvZygib2JqZWN0U3RvcmUu
b3BlbkN1cnNvcihrZXlSYW5nZSkiKTsKICAgICByZXF1ZXN0Lm9uc3VjY2VzcyA9IGN1cnNvclN1
Y2Nlc3M7CiAgICAgcmVxdWVzdC5vbmVycm9yID0gdW5leHBlY3RlZEVycm9yQ2FsbGJhY2s7CiB9
CiAKLWZ1bmN0aW9uIHNldFZlcnNpb25TdWNjZXNzKCkKK2Z1bmN0aW9uIHByZXBhcmVEYXRhYmFz
ZSgpCiB7Ci0gICAgZGVidWcoInNldFZlcnNpb25TdWNjZXNzKCk6Iik7Ci0gICAgc2VsZi50cmFu
cyA9IGV2YWxBbmRMb2coInRyYW5zID0gZXZlbnQudGFyZ2V0LnJlc3VsdCIpOwotICAgIHNob3Vs
ZEJlTm9uTnVsbCgidHJhbnMiKTsKLSAgICB0cmFucy5vbmFib3J0ID0gdW5leHBlY3RlZEFib3J0
Q2FsbGJhY2s7Ci0KLSAgICBkZWxldGVBbGxPYmplY3RTdG9yZXMoZGIpOwotCiAgICAgdmFyIG9i
amVjdFN0b3JlID0gZXZhbEFuZExvZygib2JqZWN0U3RvcmUgPSBkYi5jcmVhdGVPYmplY3RTdG9y
ZSgndGVzdCcpIik7CiAgICAgcmVxdWVzdCA9IGV2YWxBbmRMb2coIm9iamVjdFN0b3JlLmFkZCgn
bXlWYWx1ZScsICdteUtleScpIik7Ci0gICAgcmVxdWVzdC5vbnN1Y2Nlc3MgPSBvcGVuQ3Vyc29y
OwotICAgIHJlcXVlc3Qub25lcnJvciA9IHVuZXhwZWN0ZWRFcnJvckNhbGxiYWNrOwotfQotCi1m
dW5jdGlvbiBvcGVuU3VjY2VzcygpCi17Ci0gICAgdmFyIGRiID0gZXZhbEFuZExvZygiZGIgPSBl
dmVudC50YXJnZXQucmVzdWx0Iik7Ci0KLSAgICByZXF1ZXN0ID0gZXZhbEFuZExvZygiZGIuc2V0
VmVyc2lvbignbmV3IHZlcnNpb24nKSIpOwotICAgIHJlcXVlc3Qub25zdWNjZXNzID0gc2V0VmVy
c2lvblN1Y2Nlc3M7Ci0gICAgcmVxdWVzdC5vbmVycm9yID0gdW5leHBlY3RlZEVycm9yQ2FsbGJh
Y2s7Ci19Ci0KLWZ1bmN0aW9uIHRlc3QoKQotewotICAgIHJlbW92ZVZlbmRvclByZWZpeGVzKCk7
Ci0gICAgcmVxdWVzdCA9IGV2YWxBbmRMb2coImluZGV4ZWREQi5vcGVuKCdvcGVuLWN1cnNvcicp
Iik7Ci0gICAgcmVxdWVzdC5vbnN1Y2Nlc3MgPSBvcGVuU3VjY2VzczsKICAgICByZXF1ZXN0Lm9u
ZXJyb3IgPSB1bmV4cGVjdGVkRXJyb3JDYWxsYmFjazsKIH0KIAotdGVzdCgpOwpcIE5vIG5ld2xp
bmUgYXQgZW5kIG9mIGZpbGUKK2luZGV4ZWREQlRlc3QocHJlcGFyZURhdGFiYXNlLCBvcGVuQ3Vy
c29yKTsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL3Jlc291cmNl
cy9vcGVuY3Vyc29yLWtleS5qcyBiL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL3Jlc291
cmNlcy9vcGVuY3Vyc29yLWtleS5qcwppbmRleCA3YTQxMjdhZTY0Y2I2YWQyN2NlN2VlZjA0ZDU2
M2Q4NDU3MmY1YjA2Li4yYjU3OTExMTRmYjM3MTY4YTJhNjNjM2E5MmFmNzdlZTc0YWUwMDUxIDEw
MDY0NAotLS0gYS9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9yZXNvdXJjZXMvb3BlbmN1
cnNvci1rZXkuanMKKysrIGIvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvcmVzb3VyY2Vz
L29wZW5jdXJzb3Ita2V5LmpzCkBAIC0yNywzNSArMjcsMTAgQEAgdmFyIGluZGV4RGF0YSA9IFsK
ICAgICB7IG5hbWU6ICJ3ZWlnaHQiLCBrZXlQYXRoOiAid2VpZ2h0Iiwgb3B0aW9uczogeyB1bmlx
dWU6IGZhbHNlIH0gfQogXTsKIAotZnVuY3Rpb24gdGVzdCgpCi17Ci0gICAgcmVtb3ZlVmVuZG9y
UHJlZml4ZXMoKTsKLSAgICBuYW1lID0gd2luZG93LmxvY2F0aW9uLnBhdGhuYW1lOwotICAgIHJl
cXVlc3QgPSBldmFsQW5kTG9nKCJpbmRleGVkREIub3BlbihuYW1lKSIpOwotICAgIHJlcXVlc3Qu
b25zdWNjZXNzID0gb3BlblN1Y2Nlc3M7Ci0gICAgcmVxdWVzdC5vbmVycm9yID0gdW5leHBlY3Rl
ZEVycm9yQ2FsbGJhY2s7Ci19Ci0KLWZ1bmN0aW9uIG9wZW5TdWNjZXNzKCkKLXsKLSAgICBkZWJ1
Zygib3BlblN1Y2Nlc3MoKToiKTsKLSAgICBkYiA9IGV2YWxBbmRMb2coImRiID0gZXZlbnQudGFy
Z2V0LnJlc3VsdCIpOwotCi0gICAgb2JqZWN0U3RvcmVOYW1lID0gIlBlb3BsZSI7Ci0KLSAgICBy
ZXF1ZXN0ID0gZXZhbEFuZExvZygicmVxdWVzdCA9IGRiLnNldFZlcnNpb24oJzEnKSIpOwotICAg
IHJlcXVlc3Qub25zdWNjZXNzID0gY3JlYXRlQW5kUG9wdWxhdGVPYmplY3RTdG9yZTsKLSAgICBy
ZXF1ZXN0Lm9uZXJyb3IgPSB1bmV4cGVjdGVkRXJyb3JDYWxsYmFjazsKLX0KLQogZnVuY3Rpb24g
Y3JlYXRlQW5kUG9wdWxhdGVPYmplY3RTdG9yZSgpCiB7Ci0gICAgZGVsZXRlQWxsT2JqZWN0U3Rv
cmVzKGRiKTsKLQorICAgIG9iamVjdFN0b3JlTmFtZSA9ICJQZW9wbGUiOwogICAgIG9iamVjdFN0
b3JlID0gZXZhbEFuZExvZygib2JqZWN0U3RvcmUgPSBkYi5jcmVhdGVPYmplY3RTdG9yZShvYmpl
Y3RTdG9yZU5hbWUpOyIpOwotICAgIHRyYW5zID0gZXZlbnQudGFyZ2V0LnJlc3VsdDsKLSAgICB0
cmFucy5vbmFib3J0ID0gdW5leHBlY3RlZEFib3J0Q2FsbGJhY2s7Ci0KICAgICBkZWJ1ZygiRmly
c3QsIGFkZCBhbGwgb3VyIGRhdGEgdG8gdGhlIG9iamVjdCBzdG9yZS4iKTsKICAgICBhZGRlZERh
dGEgPSAwOwogICAgIGZvciAoaSBpbiBvYmplY3RTdG9yZURhdGEpIHsKQEAgLTYzLDcgKzM4LDYg
QEAgZnVuY3Rpb24gY3JlYXRlQW5kUG9wdWxhdGVPYmplY3RTdG9yZSgpCiAgICAgICAgIHJlcXVl
c3Qub25lcnJvciA9IHVuZXhwZWN0ZWRFcnJvckNhbGxiYWNrOwogICAgIH0KICAgICBjcmVhdGVJ
bmRleGVzKCk7Ci0gICAgdHJhbnMub25jb21wbGV0ZSA9IHRlc3RBbGw7CiB9CiAKIGZ1bmN0aW9u
IGNyZWF0ZUluZGV4ZXMoKQpAQCAtMTgxLDUgKzE1NSw0IEBAIGZ1bmN0aW9uIHRlc3RJbmRleFdp
dGhLZXkoKQogICAgIHRyYW5zLm9uY29tcGxldGUgPSBmaW5pc2hKU1Rlc3Q7CiB9CiAKLQotdGVz
dCgpOworaW5kZXhlZERCVGVzdChjcmVhdGVBbmRQb3B1bGF0ZU9iamVjdFN0b3JlLCB0ZXN0QWxs
KTsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL3Jlc291cmNlcy9w
cmVmZXRjaC1idWdmaXgtMTA4MDcxLmpzIGIvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIv
cmVzb3VyY2VzL3ByZWZldGNoLWJ1Z2ZpeC0xMDgwNzEuanMKaW5kZXggMmUwOGExMjY0YzU0MzQ4
ZDY3YjBjMzExY2MyNzk1NTBkZTM0OWE5MC4uZjRkOWIxNDAzZGFmNmY4ZmU2ZWY4MDEzN2JiNjE0
MzBmYjU5ODIxYiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvcmVz
b3VyY2VzL3ByZWZldGNoLWJ1Z2ZpeC0xMDgwNzEuanMKKysrIGIvTGF5b3V0VGVzdHMvc3RvcmFn
ZS9pbmRleGVkZGIvcmVzb3VyY2VzL3ByZWZldGNoLWJ1Z2ZpeC0xMDgwNzEuanMKQEAgLTksMzcg
KzksOCBAQCBkZXNjcmlwdGlvbigiVGVzdCBmb3IgY3JidWcuY29tLzEwODA3MSIpOwogLy8gcG9z
dC1hYm9ydCBvdXRzdGFuZGluZyBjb250aW51ZS4KIHZhciBuYW1lcyA9IFsnQWxwaGEnLCAnQnJh
dm8nLCAnQ2hhcmxpZScsICdEZWx0YScsICdFY2hvJ107CiAKLWZ1bmN0aW9uIHRlc3QoKQorZnVu
Y3Rpb24gcHJlcGFyZURhdGFiYXNlKCkKIHsKLSAgICByZW1vdmVWZW5kb3JQcmVmaXhlcygpOwot
ICAgIERCTkFNRSA9ICdwcmVmZXRjaC1idWdmaXgtMTA4MDcxJzsKLSAgICByZXF1ZXN0ID0gZXZh
bEFuZExvZygiaW5kZXhlZERCLmRlbGV0ZURhdGFiYXNlKERCTkFNRSkiKTsKLSAgICByZXF1ZXN0
Lm9uZXJyb3IgPSB1bmV4cGVjdGVkRXJyb3JDYWxsYmFjazsKLSAgICByZXF1ZXN0Lm9uYmxvY2tl
ZCA9IHVuZXhwZWN0ZWRCbG9ja2VkQ2FsbGJhY2s7Ci0gICAgcmVxdWVzdC5vbnN1Y2Nlc3MgPSBm
dW5jdGlvbiAoZSkgewotICAgICAgICByZXF1ZXN0ID0gZXZhbEFuZExvZygiaW5kZXhlZERCLm9w
ZW4oREJOQU1FKSIpOwotICAgICAgICByZXF1ZXN0Lm9uc3VjY2VzcyA9IG9wZW5TdWNjZXNzOwot
ICAgICAgICByZXF1ZXN0Lm9uZXJyb3IgPSB1bmV4cGVjdGVkRXJyb3JDYWxsYmFjazsKLSAgICB9
OwotfQotCi1mdW5jdGlvbiBvcGVuU3VjY2VzcygpCi17Ci0gICAgdmFyIGRiID0gZXZhbEFuZExv
ZygiZGIgPSBldmVudC50YXJnZXQucmVzdWx0Iik7Ci0KLSAgICByZXF1ZXN0ID0gZXZhbEFuZExv
ZygiZGIuc2V0VmVyc2lvbignbmV3IHZlcnNpb24nKSIpOwotICAgIHJlcXVlc3Qub25zdWNjZXNz
ID0gc2V0VmVyc2lvblN1Y2Nlc3M7Ci0gICAgcmVxdWVzdC5vbmVycm9yID0gdW5leHBlY3RlZEVy
cm9yQ2FsbGJhY2s7Ci19Ci0KLWZ1bmN0aW9uIHNldFZlcnNpb25TdWNjZXNzKCkKLXsKLSAgICBk
ZWJ1Zygic2V0VmVyc2lvblN1Y2Nlc3MoKToiKTsKLSAgICBzZWxmLnRyYW5zID0gZXZhbEFuZExv
ZygidHJhbnMgPSBldmVudC50YXJnZXQucmVzdWx0Iik7Ci0gICAgc2hvdWxkQmVOb25OdWxsKCJ0
cmFucyIpOwotICAgIHRyYW5zLm9uYWJvcnQgPSB1bmV4cGVjdGVkQWJvcnRDYWxsYmFjazsKLSAg
ICB0cmFucy5vbmNvbXBsZXRlID0gaXRlcmF0ZUFuZERlbGV0ZUZpcnN0RWxlbWVudDsKLQogICAg
IHZhciBvYmplY3RTdG9yZSA9IGV2YWxBbmRMb2coIm9iamVjdFN0b3JlID0gZGIuY3JlYXRlT2Jq
ZWN0U3RvcmUoJ3N0b3JlJywge2tleVBhdGg6ICdpZCd9KSIpOwogICAgIHJlc2V0T2JqZWN0U3Rv
cmUoKTsKIH0KQEAgLTExNSw0ICs4Niw0IEBAIGZ1bmN0aW9uIHRyYW5zYWN0aW9uQWJvcnRlZCgp
CiAgICAgZmluaXNoSlNUZXN0KCk7CiB9CiAKLXRlc3QoKTsKXCBObyBuZXdsaW5lIGF0IGVuZCBv
ZiBmaWxlCitpbmRleGVkREJUZXN0KHByZXBhcmVEYXRhYmFzZSwgaXRlcmF0ZUFuZERlbGV0ZUZp
cnN0RWxlbWVudCk7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9y
ZXNvdXJjZXMvcXVldWVkLWNvbW1hbmRzLmpzIGIvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVk
ZGIvcmVzb3VyY2VzL3F1ZXVlZC1jb21tYW5kcy5qcwppbmRleCAwOTVjZGQ5NDA3ZTNjNzQzMGRi
ZDc3MDljOWU5Y2ZjNGRjZjhlY2MwLi45YWRkOWExNTE0NDY0MzIwMjU2ZmYzOTFkMmVlN2RhYzMy
ZmM0NmE3IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9yZXNvdXJj
ZXMvcXVldWVkLWNvbW1hbmRzLmpzCisrKyBiL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRi
L3Jlc291cmNlcy9xdWV1ZWQtY29tbWFuZHMuanMKQEAgLTUsMzIgKzUsOCBAQCBpZiAodGhpcy5p
bXBvcnRTY3JpcHRzKSB7CiAKIGRlc2NyaXB0aW9uKCJWZXJpZnkgdGhhdCBxdWV1aW5nIHVwIHNl
dmVyYWwgY29tbWFuZHMgd29ya3MgKGFuZCB0aGV5IGFsbCBmaXJlKS4iKTsKIAotZnVuY3Rpb24g
dGVzdCgpCitmdW5jdGlvbiBwcmVwYXJlRGF0YWJhc2UoKQogewotICAgIHJlbW92ZVZlbmRvclBy
ZWZpeGVzKCk7Ci0gICAgcmVxdWVzdCA9IGV2YWxBbmRMb2coImluZGV4ZWREQi5vcGVuKCdxdWV1
ZWQtY29tbWFuZHMnKSIpOwotICAgIHJlcXVlc3Qub25zdWNjZXNzID0gc2V0VmVyc2lvbjsKLSAg
ICByZXF1ZXN0Lm9uZXJyb3IgPSB1bmV4cGVjdGVkRXJyb3JDYWxsYmFjazsKLX0KLQotZnVuY3Rp
b24gc2V0VmVyc2lvbigpCi17Ci0gICAgZGIgPSBldmFsQW5kTG9nKCJkYiA9IGV2ZW50LnRhcmdl
dC5yZXN1bHQiKTsKLQotICAgIHJlcXVlc3QgPSBldmFsQW5kTG9nKCJkYi5zZXRWZXJzaW9uKCdu
ZXcgdmVyc2lvbicpIik7Ci0gICAgcmVxdWVzdC5vbnN1Y2Nlc3MgPSBkZWxldGVFeGlzdGluZzsK
LSAgICByZXF1ZXN0Lm9uZXJyb3IgPSB1bmV4cGVjdGVkRXJyb3JDYWxsYmFjazsKLX0KLQotZnVu
Y3Rpb24gZGVsZXRlRXhpc3RpbmcoKQotewotICAgIGRlYnVnKCJzZXRWZXJzaW9uU3VjY2Vzcygp
OiIpOwotICAgIHNlbGYudHJhbnMgPSBldmFsQW5kTG9nKCJ0cmFucyA9IGV2ZW50LnRhcmdldC5y
ZXN1bHQiKTsKLSAgICBzaG91bGRCZU5vbk51bGwoInRyYW5zIik7Ci0gICAgdHJhbnMub25hYm9y
dCA9IHVuZXhwZWN0ZWRBYm9ydENhbGxiYWNrOwotCi0gICAgZGVsZXRlQWxsT2JqZWN0U3RvcmVz
KGRiKTsKLQogICAgIHNlbGYuc3RvcmUgPSBldmFsQW5kTG9nKCJkYi5jcmVhdGVPYmplY3RTdG9y
ZSgnc3RvcmVOYW1lJykiKTsKICAgICBzZWxmLmluZGV4T2JqZWN0ID0gZXZhbEFuZExvZygic3Rv
cmUuY3JlYXRlSW5kZXgoJ2luZGV4TmFtZScsICd4JykiKTsKIApAQCAtNTksNCArMzUsNCBAQCBm
dW5jdGlvbiB2ZXJpZnlBZGQoZXhwZWN0ZWQpCiAgICAgICAgIHRlc3RGYWlsZWQoIlVuZXhwZWN0
ZWQgY2FsbCB0byB2ZXJpZnlBZGQhIik7CiB9CiAKLXRlc3QoKTsKXCBObyBuZXdsaW5lIGF0IGVu
ZCBvZiBmaWxlCitpbmRleGVkREJUZXN0KHByZXBhcmVEYXRhYmFzZSwgZmluaXNoSlNUZXN0KTsK
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL3Jlc291cmNlcy9yZWFk
b25seS1wcm9wZXJ0aWVzLmpzIGIvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvcmVzb3Vy
Y2VzL3JlYWRvbmx5LXByb3BlcnRpZXMuanMKaW5kZXggMjRjOWJmMjBiNzA2MzZjNWMzODkzYjc5
OGZjZTBlZmEwYzQzOTZlMC4uZWYyZDlmNWU2Yjk5MjRmMGVlYWZmYmQzZTA5YTYyMzY1MjU5MjQ5
MSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvcmVzb3VyY2VzL3Jl
YWRvbmx5LXByb3BlcnRpZXMuanMKKysrIGIvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIv
cmVzb3VyY2VzL3JlYWRvbmx5LXByb3BlcnRpZXMuanMKQEAgLTE4LDMxICsxOCwxMCBAQCBmdW5j
dGlvbiBzZXRSZWFkb25seVByb3BlcnR5KHByb3BlcnR5LCB2YWx1ZSkKICAgICB9CiB9CiAKLWZ1
bmN0aW9uIHRlc3QoKQotewotICAgIHJlbW92ZVZlbmRvclByZWZpeGVzKCk7Ci0KLSAgICBuYW1l
ID0gImZvbyI7Ci0gICAgcmVxdWVzdCA9IGV2YWxBbmRMb2coImluZGV4ZWREQi5vcGVuKG5hbWUp
Iik7Ci0gICAgcmVxdWVzdC5vbnN1Y2Nlc3MgPSBvcGVuU3VjY2VzczsKLSAgICByZXF1ZXN0Lm9u
ZXJyb3IgPSB1bmV4cGVjdGVkRXJyb3JDYWxsYmFjazsKLX0KLQotZnVuY3Rpb24gb3BlblN1Y2Nl
c3MoKQotewotICAgIGRiID0gZXZhbEFuZExvZygiZGIgPSBldmVudC50YXJnZXQucmVzdWx0Iik7
Ci0gICAgcmVxdWVzdCA9IGV2YWxBbmRMb2coInJlcXVlc3QgPSBkYi5zZXRWZXJzaW9uKCcxJyki
KTsKLSAgICByZXF1ZXN0Lm9uc3VjY2VzcyA9IGNyZWF0ZUFuZFBvcHVsYXRlT2JqZWN0U3RvcmU7
Ci0gICAgcmVxdWVzdC5vbmVycm9yID0gdW5leHBlY3RlZEVycm9yQ2FsbGJhY2s7Ci19Ci0KIGZ1
bmN0aW9uIGNyZWF0ZUFuZFBvcHVsYXRlT2JqZWN0U3RvcmUoKQogewotICAgIHRyYW5zYWN0aW9u
ID0gZXZhbEFuZExvZygidHJhbnNhY3Rpb24gPSBldmVudC50YXJnZXQucmVzdWx0OyIpOwotICAg
IGRlbGV0ZUFsbE9iamVjdFN0b3JlcyhkYik7CiAgICAgb2JqZWN0U3RvcmUgPSBldmFsQW5kTG9n
KCJvYmplY3RTdG9yZSA9IGRiLmNyZWF0ZU9iamVjdFN0b3JlKCdmb28nKTsiKTsKICAgICBzZXRS
ZWFkb25seVByb3BlcnR5KCJvYmplY3RTdG9yZS50cmFuc2FjdGlvbiIsICJ0aGlzIik7Ci0gICAg
ZmluaXNoSlNUZXN0KCk7CiB9CiAKLXRlc3QoKTsKXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxl
CitpbmRleGVkREJUZXN0KGNyZWF0ZUFuZFBvcHVsYXRlT2JqZWN0U3RvcmUsIGZpbmlzaEpTVGVz
dCk7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9yZXNvdXJjZXMv
cmVxdWVzdC1ldmVudC1wcm9wYWdhdGlvbi5qcyBiL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhl
ZGRiL3Jlc291cmNlcy9yZXF1ZXN0LWV2ZW50LXByb3BhZ2F0aW9uLmpzCmluZGV4IGEzMGE5N2Vm
YzUyOWNiNDhhMDU0MWY1MGNmOWQ5ZTRlODc4ZWNlNTUuLjJmYTQ2MmUwZDUwNGJmYjljZmRlODlm
OTA0NjRiMTZhMjljN2MwNjcgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhl
ZGRiL3Jlc291cmNlcy9yZXF1ZXN0LWV2ZW50LXByb3BhZ2F0aW9uLmpzCisrKyBiL0xheW91dFRl
c3RzL3N0b3JhZ2UvaW5kZXhlZGRiL3Jlc291cmNlcy9yZXF1ZXN0LWV2ZW50LXByb3BhZ2F0aW9u
LmpzCkBAIC01LDMzICs1LDkgQEAgaWYgKHRoaXMuaW1wb3J0U2NyaXB0cykgewogCiBkZXNjcmlw
dGlvbigiVGVzdCBldmVudCBwcm9wb2dhdGlvbiBvbiBJREJSZXF1ZXN0LiIpOwogCi1mdW5jdGlv
biB0ZXN0KCkKLXsKLSAgICByZW1vdmVWZW5kb3JQcmVmaXhlcygpOwotICAgIHJlcXVlc3QgPSBl
dmFsQW5kTG9nKCJpbmRleGVkREIub3BlbigncmVxdWVzdC1ldmVudC1wcm9wYWdhdGlvbicpIik7
Ci0gICAgcmVxdWVzdC5vbnN1Y2Nlc3MgPSBzZXRWZXJzaW9uOwotICAgIHJlcXVlc3Qub25lcnJv
ciA9IHVuZXhwZWN0ZWRFcnJvckNhbGxiYWNrOwotfQotCi1mdW5jdGlvbiBzZXRWZXJzaW9uKCkK
LXsKLSAgICBkYiA9IGV2YWxBbmRMb2coImRiID0gZXZlbnQudGFyZ2V0LnJlc3VsdCIpOwotCi0g
ICAgcmVxdWVzdCA9IGV2YWxBbmRMb2coImRiLnNldFZlcnNpb24oJ25ldyB2ZXJzaW9uJykiKTsK
LSAgICByZXF1ZXN0Lm9uc3VjY2VzcyA9IGRlbGV0ZUV4aXN0aW5nOwotICAgIHJlcXVlc3Qub25l
cnJvciA9IHVuZXhwZWN0ZWRFcnJvckNhbGxiYWNrOwotfQotCiBmdW5jdGlvbiBkZWxldGVFeGlz
dGluZygpCiB7CiAgICAgZGVidWcoInNldFZlcnNpb25TdWNjZXNzKCk6Iik7Ci0gICAgc2VsZi50
cmFucyA9IGV2YWxBbmRMb2coInRyYW5zID0gZXZlbnQudGFyZ2V0LnJlc3VsdCIpOwotICAgIHNo
b3VsZEJlTm9uTnVsbCgidHJhbnMiKTsKLSAgICB0cmFucy5vbmFib3J0ID0gdW5leHBlY3RlZEFi
b3J0Q2FsbGJhY2s7Ci0gICAgZXZhbEFuZExvZygidHJhbnMub25jb21wbGV0ZSA9IHN0YXJ0VGVz
dCIpOwotCi0gICAgZGVsZXRlQWxsT2JqZWN0U3RvcmVzKGRiKTsKLQogICAgIHN0b3JlID0gZXZh
bEFuZExvZygic3RvcmUgPSBkYi5jcmVhdGVPYmplY3RTdG9yZSgnc3RvcmVOYW1lJywgbnVsbCki
KTsKICAgICByZXF1ZXN0ID0gZXZhbEFuZExvZygic3RvcmUuYWRkKHt4OiAndmFsdWUnLCB5OiAn
enp6J30sICdrZXknKSIpOwogICAgIHJlcXVlc3Qub25lcnJvciA9IHVuZXhwZWN0ZWRFcnJvckNh
bGxiYWNrOwpAQCAtMjY0LDQgKzI0MCw0IEBAIGZ1bmN0aW9uIHRyYW5zYWN0aW9uQ29tcGxldGUo
KQogICAgIHJldHVybjsKIH0KIAotdGVzdCgpOwpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUK
K2luZGV4ZWREQlRlc3QoZGVsZXRlRXhpc3RpbmcsIHN0YXJ0VGVzdCk7CmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9yZXNvdXJjZXMvc2hhcmVkLmpzIGIvTGF5b3V0
VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvcmVzb3VyY2VzL3NoYXJlZC5qcwppbmRleCBhMDZmNWFm
NDAwY2Y4OTMwYTY2MDdkZTc5Y2VlZmMxYTAwMTc4Yzg3Li5jZThiYjlmYzk1NGQ1ZmYwM2M1NGQy
OTIwYjhlZmNiMzc2ZTkzM2ExIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4
ZWRkYi9yZXNvdXJjZXMvc2hhcmVkLmpzCisrKyBiL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhl
ZGRiL3Jlc291cmNlcy9zaGFyZWQuanMKQEAgLTE1MywzICsxNTMsNDkgQEAgaWYgKCFzZWxmLkRP
TUV4Y2VwdGlvbikgewogICAgICAgICBEQVRBX0NMT05FX0VSUjogMjUKICAgICB9OwogfQorCisv
LyBBbGxvdyB0ZXN0cyB0byBiZSB3cml0dGVuIHRoYXQgd29yayB3aXRoIGJvdGggdGhlIGxlZ2Fj
eSBzZXRWZXJzaW9uKCkgQVBJCisvLyBhbmQgdGhlIHN0YW5kYXJkaXplZCAidXBncmFkZW5lZWRl
ZCIgZXZlbnQuIEdsb2JhbCB8ZGJ8IGlzIHRoZSBJREJEYXRhYmFzZQorLy8gKGNvbm5lY3Rpb24p
LCB8ZGJuYW1lfCBpcyB0aGUgZGF0YWJhc2UgbmFtZSAoYmFzZWQgb24gdGVzdCBwYXRoKSwKKy8v
IGFuZCB8dHJhbnN8IGlzIHRoZSBJREJUcmFuc2FjdGlvbiAoZHVyaW5nIHRoZSB1cGdyYWRlQ2Fs
bGJhY2sgb25seSkuCitmdW5jdGlvbiBpbmRleGVkREJUZXN0KHVwZ3JhZGVDYWxsYmFjaywgb3B0
aW9uYWxPcGVuQ2FsbGJhY2spIHsKKyAgICByZW1vdmVWZW5kb3JQcmVmaXhlcygpOworICAgIGV2
YWxBbmRMb2coImRibmFtZSA9IHNlbGYubG9jYXRpb24ucGF0aG5hbWUiKTsKKyAgICB2YXIgZGVs
ZXRlUmVxdWVzdCA9IGV2YWxBbmRMb2coImluZGV4ZWREQi5kZWxldGVEYXRhYmFzZShkYm5hbWUp
Iik7CisgICAgZGVsZXRlUmVxdWVzdC5vbmVycm9yID0gdW5leHBlY3RlZEVycm9yQ2FsbGJhY2s7
CisgICAgZGVsZXRlUmVxdWVzdC5vbmJsb2NrZWQgPSB1bmV4cGVjdGVkQmxvY2tlZENhbGxiYWNr
OworICAgIGRlbGV0ZVJlcXVlc3Qub25zdWNjZXNzID0gZnVuY3Rpb24oKSB7CisgICAgICAgIHZh
ciBvcGVuUmVxdWVzdCA9IGV2YWxBbmRMb2coImluZGV4ZWREQi5vcGVuKGRibmFtZSkiKTsKKyAg
ICAgICAgb3BlblJlcXVlc3Qub25lcnJvciA9IHVuZXhwZWN0ZWRFcnJvckNhbGxiYWNrOworICAg
ICAgICBvcGVuUmVxdWVzdC5vbnN1Y2Nlc3MgPSBmdW5jdGlvbigpIHsKKyAgICAgICAgICAgIHNl
bGYuZGIgPSBvcGVuUmVxdWVzdC5yZXN1bHQ7CisgICAgICAgICAgICB2YXIgc2V0VmVyc2lvblJl
cXVlc3QgPSBldmFsQW5kTG9nKCJkYi5zZXRWZXJzaW9uKCcxJykiKTsKKyAgICAgICAgICAgIHNl
dFZlcnNpb25SZXF1ZXN0Lm9uZXJyb3IgPSB1bmV4cGVjdGVkRXJyb3JDYWxsYmFjazsKKyAgICAg
ICAgICAgIHNldFZlcnNpb25SZXF1ZXN0Lm9uYmxvY2tlZCA9IHVuZXhwZWN0ZWRCbG9ja2VkQ2Fs
bGJhY2s7CisgICAgICAgICAgICBzZXRWZXJzaW9uUmVxdWVzdC5vbnN1Y2Nlc3MgPSBmdW5jdGlv
bigpIHsKKyAgICAgICAgICAgICAgICB2YXIgdHJhbnMgPSBzZXRWZXJzaW9uUmVxdWVzdC5yZXN1
bHQ7CisgICAgICAgICAgICAgICAgdHJhbnMub25hYm9ydCA9IHVuZXhwZWN0ZWRBYm9ydENhbGxi
YWNrOworICAgICAgICAgICAgICAgIHRyeSB7CisgICAgICAgICAgICAgICAgICAgIHNlbGYudHJh
bnMgPSB0cmFuczsKKyAgICAgICAgICAgICAgICAgICAgdXBncmFkZUNhbGxiYWNrKCk7CisgICAg
ICAgICAgICAgICAgICAgIGRlbGV0ZSBzZWxmLnRyYW5zOworICAgICAgICAgICAgICAgIH0gY2F0
Y2ggKGUpIHsKKyAgICAgICAgICAgICAgICAgICAgdGVzdEZhaWxlZCgiVXBncmFkZSBjYWxsYmFj
ayB0aHJldzogIiArIGUpOworICAgICAgICAgICAgICAgICAgICBmaW5pc2hKU1Rlc3QoKTsKKyAg
ICAgICAgICAgICAgICAgICAgcmV0dXJuOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAg
ICAgICBpZiAob3B0aW9uYWxPcGVuQ2FsbGJhY2spIHsKKyAgICAgICAgICAgICAgICAgICAgdHJh
bnMub25jb21wbGV0ZSA9IGZ1bmN0aW9uKCkgeworICAgICAgICAgICAgICAgICAgICAgICAgdHJ5
IHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBvcHRpb25hbE9wZW5DYWxsYmFjaygpOwor
ICAgICAgICAgICAgICAgICAgICAgICAgfSBjYXRjaCAoZSkgeworICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIHRlc3RGYWlsZWQoIk9wZW4gY2FsbGJhY2sgdGhyZXc6ICIgKyBlKTsKKyAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBmaW5pc2hKU1Rlc3QoKTsKKyAgICAgICAgICAgICAgICAg
ICAgICAgICAgICByZXR1cm47CisgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAg
ICAgICAgICAgIH07CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfTsKKyAgICAgICAg
fTsKKyAgICB9OworfQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIv
cmVzb3VyY2VzL3RyYW5zYWN0aW9uLWFib3J0LmpzIGIvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRl
eGVkZGIvcmVzb3VyY2VzL3RyYW5zYWN0aW9uLWFib3J0LmpzCmluZGV4IDZhZGUwMjUxYzEwMGQ3
OWIwZmNlNjIxY2QxNDkwNzE4MmRkYmIwMzkuLjkzNzYzOWVhNDJhNDFlZmE5YmIyMjlkYzAxZjRh
YTQwYjNhYmNmZDkgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL3Jl
c291cmNlcy90cmFuc2FjdGlvbi1hYm9ydC5qcworKysgYi9MYXlvdXRUZXN0cy9zdG9yYWdlL2lu
ZGV4ZWRkYi9yZXNvdXJjZXMvdHJhbnNhY3Rpb24tYWJvcnQuanMKQEAgLTUsMzQgKzUsOCBAQCBp
ZiAodGhpcy5pbXBvcnRTY3JpcHRzKSB7CiAKIGRlc2NyaXB0aW9uKCJUZXN0IHRyYW5zYWN0aW9u
IGFib3J0cyBzZW5kIHRoZSBwcm9wZXIgb25hYm9ydCBtZXNzYWdlcy4uIik7CiAKLWZ1bmN0aW9u
IHRlc3QoKQorZnVuY3Rpb24gcHJlcGFyZURhdGFiYXNlKCkKIHsKLSAgICByZW1vdmVWZW5kb3JQ
cmVmaXhlcygpOwotCi0gICAgcmVxdWVzdCA9IGV2YWxBbmRMb2coImluZGV4ZWREQi5vcGVuKCdu
YW1lJykiKTsKLSAgICByZXF1ZXN0Lm9uc3VjY2VzcyA9IHNldFZlcnNpb247Ci0gICAgcmVxdWVz
dC5vbmVycm9yID0gdW5leHBlY3RlZEVycm9yQ2FsbGJhY2s7Ci19Ci0KLWZ1bmN0aW9uIHNldFZl
cnNpb24oKQotewotICAgIGRiID0gZXZhbEFuZExvZygiZGIgPSBldmVudC50YXJnZXQucmVzdWx0
Iik7Ci0KLSAgICByZXF1ZXN0ID0gZXZhbEFuZExvZygiZGIuc2V0VmVyc2lvbignbmV3IHZlcnNp
b24nKSIpOwotICAgIHJlcXVlc3Qub25zdWNjZXNzID0gZGVsZXRlRXhpc3Rpbmc7Ci0gICAgcmVx
dWVzdC5vbmVycm9yID0gdW5leHBlY3RlZEVycm9yQ2FsbGJhY2s7Ci19Ci0KLWZ1bmN0aW9uIGRl
bGV0ZUV4aXN0aW5nKCkKLXsKLSAgICBkZWJ1Zygic2V0VmVyc2lvblN1Y2Nlc3MoKToiKTsKLSAg
ICBzZWxmLnRyYW5zID0gZXZhbEFuZExvZygidHJhbnMgPSBldmVudC50YXJnZXQucmVzdWx0Iik7
Ci0gICAgc2hvdWxkQmVOb25OdWxsKCJ0cmFucyIpOwotICAgIHRyYW5zLm9uYWJvcnQgPSB1bmV4
cGVjdGVkQWJvcnRDYWxsYmFjazsKLSAgICBldmFsQW5kTG9nKCJ0cmFucy5vbmNvbXBsZXRlID0g
c3RhcnRUZXN0Iik7Ci0KLSAgICBkZWxldGVBbGxPYmplY3RTdG9yZXMoZGIpOwotCiAgICAgc3Rv
cmUgPSBldmFsQW5kTG9nKCJzdG9yZSA9IGRiLmNyZWF0ZU9iamVjdFN0b3JlKCdzdG9yZU5hbWUn
LCBudWxsKSIpOwogICAgIHJlcXVlc3QgPSBldmFsQW5kTG9nKCJzdG9yZS5hZGQoe3g6ICd2YWx1
ZScsIHk6ICd6enonfSwgJ2tleScpIik7CiAgICAgcmVxdWVzdC5vbmVycm9yID0gdW5leHBlY3Rl
ZEVycm9yQ2FsbGJhY2s7CkBAIC05Myw0ICs2Nyw1IEBAIGZ1bmN0aW9uIHRyYW5zYWN0aW9uQWJv
cnRlZCgpCiAgICAgZmluaXNoSlNUZXN0KCk7CiB9CiAKLXRlc3QoKTsKK2luZGV4ZWREQlRlc3Qo
cHJlcGFyZURhdGFiYXNlLCBzdGFydFRlc3QpOworCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9z
dG9yYWdlL2luZGV4ZWRkYi9yZXNvdXJjZXMvdHJhbnNhY3Rpb24tYWN0aXZlLWZsYWcuanMgYi9M
YXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9yZXNvdXJjZXMvdHJhbnNhY3Rpb24tYWN0aXZl
LWZsYWcuanMKaW5kZXggNWY1MzQ5OTUxMDlmN2Y0NjhmNzRjODA1ZGE4ZDRhMzFhNzA3NWI3OC4u
ODYwM2Q1YjE5MjljZDRmN2EzNzhhNDIzZjEyZWQ3OWRiMzEyOGM5MSAxMDA2NDQKLS0tIGEvTGF5
b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvcmVzb3VyY2VzL3RyYW5zYWN0aW9uLWFjdGl2ZS1m
bGFnLmpzCisrKyBiL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL3Jlc291cmNlcy90cmFu
c2FjdGlvbi1hY3RpdmUtZmxhZy5qcwpAQCAtNSwyNyArNSwxMCBAQCBpZiAodGhpcy5pbXBvcnRT
Y3JpcHRzKSB7CiAKIGRlc2NyaXB0aW9uKCJUZXN0IEluZGV4ZWREQiB0cmFuc2FjdGlvbiBpbnRl
cm5hbCBhY3RpdmUgZmxhZy4iKTsKIAotZnVuY3Rpb24gdGVzdCgpCitmdW5jdGlvbiBwcmVwYXJl
RGF0YWJhc2UoKQogewotICAgIHJlbW92ZVZlbmRvclByZWZpeGVzKCk7Ci0gICAgcmVxdWVzdCA9
IGV2YWxBbmRMb2coImluZGV4ZWREQi5kZWxldGVEYXRhYmFzZSgndHJhbnNhY3Rpb24tYWN0aXZl
LWZsYWcnKSIpOwotICAgIHJlcXVlc3Qub25lcnJvciA9IHVuZXhwZWN0ZWRFcnJvckNhbGxiYWNr
OwotICAgIHJlcXVlc3Qub25zdWNjZXNzID0gZnVuY3Rpb24oKSB7Ci0gICAgICAgIHJlcXVlc3Qg
PSBldmFsQW5kTG9nKCJpbmRleGVkREIub3BlbigndHJhbnNhY3Rpb24tYWN0aXZlLWZsYWcnKSIp
OwotICAgICAgICByZXF1ZXN0Lm9uZXJyb3IgPSB1bmV4cGVjdGVkRXJyb3JDYWxsYmFjazsKLSAg
ICAgICAgcmVxdWVzdC5vbnN1Y2Nlc3MgPSBmdW5jdGlvbigpIHsKLSAgICAgICAgICAgIGRiID0g
cmVxdWVzdC5yZXN1bHQ7Ci0gICAgICAgICAgICByZXF1ZXN0ID0gZXZhbEFuZExvZygiZGIuc2V0
VmVyc2lvbignMScpIik7Ci0gICAgICAgICAgICByZXF1ZXN0Lm9uZXJyb3IgPSB1bmV4cGVjdGVk
RXJyb3JDYWxsYmFjazsKLSAgICAgICAgICAgIHJlcXVlc3Qub25zdWNjZXNzID0gZnVuY3Rpb24o
KSB7Ci0gICAgICAgICAgICAgICAgdHJhbnNhY3Rpb24gPSByZXF1ZXN0LnJlc3VsdDsKLSAgICAg
ICAgICAgICAgICB0cmFuc2FjdGlvbi5vbmFib3J0ID0gdW5leHBlY3RlZEFib3J0Q2FsbGJhY2s7
Ci0gICAgICAgICAgICAgICAgZXZhbEFuZExvZygic3RvcmUgPSBkYi5jcmVhdGVPYmplY3RTdG9y
ZSgnc3RvcmUnKSIpOwotICAgICAgICAgICAgICAgIGV2YWxBbmRMb2coInN0b3JlLmNyZWF0ZUlu
ZGV4KCdpbmRleCcsICdrZXlwYXRoJykiKTsKLSAgICAgICAgICAgICAgICB0cmFuc2FjdGlvbi5v
bmNvbXBsZXRlID0gcnVuVHJhbnNhY3Rpb247Ci0gICAgICAgICAgICB9OwotICAgICAgICB9Owot
ICAgIH07CisgICAgZXZhbEFuZExvZygic3RvcmUgPSBkYi5jcmVhdGVPYmplY3RTdG9yZSgnc3Rv
cmUnKSIpOworICAgIGV2YWxBbmRMb2coInN0b3JlLmNyZWF0ZUluZGV4KCdpbmRleCcsICdrZXlw
YXRoJykiKTsKIH0KIAogZnVuY3Rpb24gcnVuVHJhbnNhY3Rpb24oKQpAQCAtMTM1LDQgKzExOCw1
IEBAIGZ1bmN0aW9uIHRyYW5zYWN0aW9uQ29tcGxldGUoKQogICAgIGZpbmlzaEpTVGVzdCgpOwog
fQogCi10ZXN0KCk7CitpbmRleGVkREJUZXN0KHByZXBhcmVEYXRhYmFzZSwgcnVuVHJhbnNhY3Rp
b24pOworCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9yZXNvdXJj
ZXMvdHJhbnNhY3Rpb24tYWZ0ZXItY2xvc2UuanMgYi9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4
ZWRkYi9yZXNvdXJjZXMvdHJhbnNhY3Rpb24tYWZ0ZXItY2xvc2UuanMKaW5kZXggZWIzNDc5ZjI3
M2VkYjc2MzY2M2E5NDJmYjQyMjYwMjQ5N2ZkY2FiOS4uYThiYjI1NWY0Y2JjYmE3NzgxMWU1M2Y5
YWI3YzM2NTliYjgwZTc3OSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVk
ZGIvcmVzb3VyY2VzL3RyYW5zYWN0aW9uLWFmdGVyLWNsb3NlLmpzCisrKyBiL0xheW91dFRlc3Rz
L3N0b3JhZ2UvaW5kZXhlZGRiL3Jlc291cmNlcy90cmFuc2FjdGlvbi1hZnRlci1jbG9zZS5qcwpA
QCAtNSwzMCArNSw4IEBAIGlmICh0aGlzLmltcG9ydFNjcmlwdHMpIHsKIAogZGVzY3JpcHRpb24o
IlRlc3QgY2xvc2luZyBhIGRhdGFiYXNlIGNvbm5lY3Rpb24gaW4gSW5kZXhlZERCLiIpOwogCi1m
dW5jdGlvbiB0ZXN0KCkKLXsKLSAgICByZW1vdmVWZW5kb3JQcmVmaXhlcygpOwotCi0gICAgcmVx
dWVzdCA9IGV2YWxBbmRMb2coImluZGV4ZWREQi5vcGVuKCd0cmFuc2FjdGlvbi1hZnRlci1jbG9z
ZScpIik7Ci0gICAgcmVxdWVzdC5vbnN1Y2Nlc3MgPSBvcGVuU3VjY2VzczsKLSAgICByZXF1ZXN0
Lm9uZXJyb3IgPSB1bmV4cGVjdGVkRXJyb3JDYWxsYmFjazsKLX0KLQotZnVuY3Rpb24gb3BlblN1
Y2Nlc3MoKQotewotICAgIGRlYnVnKCJvcGVuU3VjY2VzcygpOiIpOwotICAgIHNlbGYuZGIgPSBl
dmFsQW5kTG9nKCJkYiA9IGV2ZW50LnRhcmdldC5yZXN1bHQiKTsKLSAgICByZXF1ZXN0ID0gZXZh
bEFuZExvZygicmVxdWVzdCA9IGRiLnNldFZlcnNpb24oJ3ZlcnNpb24gMScpIik7Ci0gICAgcmVx
dWVzdC5vbnN1Y2Nlc3MgPSBpblNldFZlcnNpb247Ci0gICAgcmVxdWVzdC5vbmVycm9yID0gdW5l
eHBlY3RlZEVycm9yQ2FsbGJhY2s7Ci19Ci0KIGZ1bmN0aW9uIGluU2V0VmVyc2lvbigpCiB7Ci0g
ICAgZGVsZXRlQWxsT2JqZWN0U3RvcmVzKGRiKTsKLQotICAgIGV2ZW50LnRhcmdldC5yZXN1bHQu
b25jb21wbGV0ZSA9IHJ1bkZpcnN0UmVndWxhclRyYW5zYWN0aW9uOwotICAgIGV2ZW50LnRhcmdl
dC5yZXN1bHQub25hYm9ydCA9IHVuZXhwZWN0ZWRBYm9ydENhbGxiYWNrOwogICAgIHN0b3JlID0g
ZXZhbEFuZExvZygic3RvcmUgPSBkYi5jcmVhdGVPYmplY3RTdG9yZSgnc3RvcmUnKSIpOwogICAg
IHJlcXVlc3QgPSBldmFsQW5kTG9nKCJyZXF1ZXN0ID0gc3RvcmUucHV0KCd4JywgJ3knKSIpOwog
ICAgIHJlcXVlc3Qub25zdWNjZXNzID0gb25QdXRTdWNjZXNzOwpAQCAtMzcsMTIgKzE1LDEyIEBA
IGZ1bmN0aW9uIGluU2V0VmVyc2lvbigpCiAKIGZ1bmN0aW9uIG9uUHV0U3VjY2VzcygpCiB7Ci0g
ICAgdGVzdFBhc3NlZCgiUHV0IHN1Y2Nlc3MiKQorICAgIHRlc3RQYXNzZWQoIlB1dCBzdWNjZXNz
Iik7CiB9CiAKIGZ1bmN0aW9uIHJ1bkZpcnN0UmVndWxhclRyYW5zYWN0aW9uKCkKIHsKLSAgICBk
ZWJ1ZygicnVubmluZyBmaXJzdCB0cmFuc2FjdGlvbiIpCisgICAgZGVidWcoInJ1bm5pbmcgZmly
c3QgdHJhbnNhY3Rpb24iKTsKICAgICBjdXJyZW50VHJhbnNhY3Rpb24gPSBldmFsQW5kTG9nKCJj
dXJyZW50VHJhbnNhY3Rpb24gPSBkYi50cmFuc2FjdGlvbihbJ3N0b3JlJ10sICdyZWFkd3JpdGUn
KSIpOwogICAgIGN1cnJlbnRUcmFuc2FjdGlvbi5vbmFib3J0ID0gdW5leHBlY3RlZEFib3J0Q2Fs
bGJhY2s7CiAgICAgY3VycmVudFRyYW5zYWN0aW9uLm9uY29tcGxldGUgPSBmaXJzdFRyYW5zYWN0
aW9uQ29tcGxldGU7CkBAIC01NiwxMCArMzQsMTAgQEAgZnVuY3Rpb24gZmlyc3RUcmFuc2FjdGlv
bkNvbXBsZXRlKCkKICAgICBldmFsQW5kTG9nKCJkYi5jbG9zZSgpIik7CiAgICAgZXZhbEFuZEV4
cGVjdEV4Y2VwdGlvbigiZGIudHJhbnNhY3Rpb24oWydzdG9yZSddLCAncmVhZHdyaXRlJykiLCAi
RE9NRXhjZXB0aW9uLklOVkFMSURfU1RBVEVfRVJSIiwgIidJbnZhbGlkU3RhdGVFcnJvciciKTsK
IAotICAgIGRlYnVnKCIiKQotICAgIGRlYnVnKCJ2ZXJpZnkgdGhhdCB3ZSBjYW4gcmVvcGVuIHRo
ZSBkYiBhZnRlciBjYWxsaW5nIGNsb3NlIikKLSAgICByZXF1ZXN0ID0gZXZhbEFuZExvZygiaW5k
ZXhlZERCLm9wZW4oJ3RyYW5zYWN0aW9uLWFmdGVyLWNsb3NlJykiKTsKLSAgICByZXF1ZXN0Lm9u
c3VjY2VzcyA9IG9uU2Vjb25kT3BlbgorICAgIGRlYnVnKCIiKTsKKyAgICBkZWJ1ZygidmVyaWZ5
IHRoYXQgd2UgY2FuIHJlb3BlbiB0aGUgZGIgYWZ0ZXIgY2FsbGluZyBjbG9zZSIpOworICAgIHJl
cXVlc3QgPSBldmFsQW5kTG9nKCJpbmRleGVkREIub3BlbihkYi5uYW1lKSIpOworICAgIHJlcXVl
c3Qub25zdWNjZXNzID0gb25TZWNvbmRPcGVuOwogICAgIHJlcXVlc3Qub25lcnJvciA9IHVuZXhw
ZWN0ZWRFcnJvckNhbGxiYWNrOwogfQogCkBAIC03OCw0ICs1Niw0IEBAIGZ1bmN0aW9uIG9uRmlu
YWxQdXRTdWNjZXNzKCkgewogICAgIHRlc3RQYXNzZWQoImZpbmFsIHB1dCBzdWNjZXNzIik7CiB9
CiAKLXRlc3QoKTsKK2luZGV4ZWREQlRlc3QoaW5TZXRWZXJzaW9uLCBydW5GaXJzdFJlZ3VsYXJU
cmFuc2FjdGlvbik7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9y
ZXNvdXJjZXMvdHJhbnNhY3Rpb24tYW5kLW9iamVjdHN0b3JlLWNhbGxzLmpzIGIvTGF5b3V0VGVz
dHMvc3RvcmFnZS9pbmRleGVkZGIvcmVzb3VyY2VzL3RyYW5zYWN0aW9uLWFuZC1vYmplY3RzdG9y
ZS1jYWxscy5qcwppbmRleCBiOWNhNDViY2JmNjM0NGRiNWEzNDBjMzUxYzY2OTdkMDU3M2FkYThm
Li42YWRjOTAzNWE4MjU5YWZhNDI1ZmM1Njc1MTVmOTc4NGJhMGEyNDEwIDEwMDY0NAotLS0gYS9M
YXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9yZXNvdXJjZXMvdHJhbnNhY3Rpb24tYW5kLW9i
amVjdHN0b3JlLWNhbGxzLmpzCisrKyBiL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL3Jl
c291cmNlcy90cmFuc2FjdGlvbi1hbmQtb2JqZWN0c3RvcmUtY2FsbHMuanMKQEAgLTUsMzMgKzUs
MTEgQEAgaWYgKHRoaXMuaW1wb3J0U2NyaXB0cykgewogCiBkZXNjcmlwdGlvbigiVGVzdCBJbmRl
eGVkREIncyB0cmFuc2FjdGlvbiBhbmQgb2JqZWN0U3RvcmUgY2FsbHMiKTsKIAotZnVuY3Rpb24g
dGVzdCgpCitmdW5jdGlvbiBwcmVwYXJlRGF0YWJhc2UoKQogewotICAgIHJlbW92ZVZlbmRvclBy
ZWZpeGVzKCk7Ci0KLSAgICByZXF1ZXN0ID0gZXZhbEFuZExvZygiaW5kZXhlZERCLm9wZW4oJ3Ry
YW5zYWN0aW9uLWFuZC1vYmplY3RzdG9yZS1jYWxscycpIik7Ci0gICAgcmVxdWVzdC5vbnN1Y2Nl
c3MgPSBvcGVuU3VjY2VzczsKLSAgICByZXF1ZXN0Lm9uZXJyb3IgPSB1bmV4cGVjdGVkRXJyb3JD
YWxsYmFjazsKLX0KLQotZnVuY3Rpb24gb3BlblN1Y2Nlc3MoKQotewotICAgIHNlbGYuZGIgPSBl
dmFsQW5kTG9nKCJkYiA9IGV2ZW50LnRhcmdldC5yZXN1bHQiKTsKLSAgICByZXF1ZXN0ID0gZXZh
bEFuZExvZygicmVzdWx0ID0gZGIuc2V0VmVyc2lvbigndmVyc2lvbiAxJykiKTsKLSAgICByZXF1
ZXN0Lm9uc3VjY2VzcyA9IGNsZWFuRGF0YWJhc2U7Ci0gICAgcmVxdWVzdC5vbmVycm9yID0gdW5l
eHBlY3RlZEVycm9yQ2FsbGJhY2s7Ci19Ci0KLWZ1bmN0aW9uIGNsZWFuRGF0YWJhc2UoKQotewot
ICAgIHRyYW5zID0gZXZhbEFuZExvZygidHJhbnMgPSBldmVudC50YXJnZXQucmVzdWx0Iik7Ci0g
ICAgZGVsZXRlQWxsT2JqZWN0U3RvcmVzKGRiKTsKLQogICAgIGV2YWxBbmRMb2coImRiLmNyZWF0
ZU9iamVjdFN0b3JlKCdhJykiKTsKICAgICBldmFsQW5kTG9nKCJkYi5jcmVhdGVPYmplY3RTdG9y
ZSgnYicpIik7CiAgICAgZXZhbEFuZExvZygiZGIuY3JlYXRlT2JqZWN0U3RvcmUoJ3N0b3JlJyku
Y3JlYXRlSW5kZXgoJ2luZGV4JywgJ3NvbWVfcGF0aCcpIik7Ci0gICAgZXZhbEFuZExvZygidHJh
bnMuYWRkRXZlbnRMaXN0ZW5lcignY29tcGxldGUnLCBjcmVhdGVkLCB0cnVlKSIpOwotICAgIGRl
YnVnKCIiKTsKIH0KIAogZnVuY3Rpb24gY3JlYXRlZCgpCkBAIC0xMjEsNCArOTksNSBAQCBmdW5j
dGlvbiBhZnRlckNvbXBsZXRlKCkKICAgICBmaW5pc2hKU1Rlc3QoKTsKIH0KIAotdGVzdCgpOwor
aW5kZXhlZERCVGVzdChwcmVwYXJlRGF0YWJhc2UsIGNyZWF0ZWQpOworCmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9yZXNvdXJjZXMvdHJhbnNhY3Rpb24tY29tcGxl
dGUtd29ya2Vycy5qcyBiL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL3Jlc291cmNlcy90
cmFuc2FjdGlvbi1jb21wbGV0ZS13b3JrZXJzLmpzCmluZGV4IDA2MDMyNGRjMGFlMmRiYzZkZTc4
N2ZlMzk2NzZmOWIzN2E1MmJhZDcuLjhhYjhhMDQzODczMjE0Y2QxOTk2MTBhY2Q3Y2FkZGMxMTgz
N2YyYTIgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL3Jlc291cmNl
cy90cmFuc2FjdGlvbi1jb21wbGV0ZS13b3JrZXJzLmpzCisrKyBiL0xheW91dFRlc3RzL3N0b3Jh
Z2UvaW5kZXhlZGRiL3Jlc291cmNlcy90cmFuc2FjdGlvbi1jb21wbGV0ZS13b3JrZXJzLmpzCkBA
IC01LDI0ICs1LDkgQEAgaWYgKHRoaXMuaW1wb3J0U2NyaXB0cykgewogCiBkZXNjcmlwdGlvbigi
VGVzdCBJbmRleGVkREIgd29ya2VycywgcmVjdXJzaW9uLCBhbmQgdHJhbnNhY3Rpb24gdGVybWlu
YXRpb24uIik7CiAKLWZ1bmN0aW9uIHRlc3QoKQorZnVuY3Rpb24gcHJlcGFyZURhdGFiYXNlKCkK
IHsKLSAgICByZW1vdmVWZW5kb3JQcmVmaXhlcygpOwotCi0gICAgZXZhbEFuZExvZygicmVxdWVz
dCA9IGluZGV4ZWREQi5vcGVuKCd0cmFuc2FjdGlvbi1jb21wbGV0ZS13b3JrZXInKSIpOwotICAg
IHJlcXVlc3Qub25lcnJvciA9IHVuZXhwZWN0ZWRFcnJvckNhbGxiYWNrOwotICAgIHJlcXVlc3Qu
b25zdWNjZXNzID0gZnVuY3Rpb24gKCkgewotICAgICAgICBldmFsQW5kTG9nKCJkYiA9IHJlcXVl
c3QucmVzdWx0Iik7Ci0gICAgICAgIGV2YWxBbmRMb2coInJlcXVlc3QgPSBkYi5zZXRWZXJzaW9u
KCcxJykiKTsKLSAgICAgICAgcmVxdWVzdC5vbmVycm9yID0gdW5leHBlY3RlZEVycm9yQ2FsbGJh
Y2s7Ci0gICAgICAgIHJlcXVlc3Qub25ibG9ja2VkID0gdW5leHBlY3RlZEJsb2NrZWRDYWxsYmFj
azsKLSAgICAgICAgcmVxdWVzdC5vbnN1Y2Nlc3MgPSBmdW5jdGlvbiAoKSB7Ci0gICAgICAgICAg
ICBkZWxldGVBbGxPYmplY3RTdG9yZXMoZGIpOwotICAgICAgICAgICAgZXZhbEFuZExvZygidHJh
bnMgPSByZXF1ZXN0LnJlc3VsdCIpOwotICAgICAgICAgICAgZXZhbEFuZExvZygiZGIuY3JlYXRl
T2JqZWN0U3RvcmUoJ3N0b3JlJykiKTsKLSAgICAgICAgICAgIHRyYW5zLm9uY29tcGxldGUgPSBj
cmVhdGVUcmFuc2FjdGlvbjsKLSAgICAgICAgfTsKLSAgICB9OworICAgIGV2YWxBbmRMb2coImRi
LmNyZWF0ZU9iamVjdFN0b3JlKCdzdG9yZScpIik7CiB9CiAKIGZ1bmN0aW9uIGNyZWF0ZVRyYW5z
YWN0aW9uKCkKQEAgLTEyNSw0ICsxMTAsNCBAQCBmdW5jdGlvbiBlcnJvclRyYW5zYWN0aW9uQ29t
cGxldGVkKCkKICAgICBmaW5pc2hKU1Rlc3QoKTsKIH0KIAotdGVzdCgpOworaW5kZXhlZERCVGVz
dChwcmVwYXJlRGF0YWJhc2UsIGNyZWF0ZVRyYW5zYWN0aW9uKTsKZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL3Jlc291cmNlcy90cmFuc2FjdGlvbi1jcmFzaC1vbi1h
Ym9ydC5qcyBiL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL3Jlc291cmNlcy90cmFuc2Fj
dGlvbi1jcmFzaC1vbi1hYm9ydC5qcwppbmRleCBiMzNlYjA0YmVkMTRjNDJkNDgwNjc0OTc0OWE5
NjZlNWY4NGVjMzVlLi4wMjhiNWFjNDg0ODRkNDJkMGZhNjVlNTcxODg4NzE2ZDQ4M2U2OWJmIDEw
MDY0NAotLS0gYS9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9yZXNvdXJjZXMvdHJhbnNh
Y3Rpb24tY3Jhc2gtb24tYWJvcnQuanMKKysrIGIvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVk
ZGIvcmVzb3VyY2VzL3RyYW5zYWN0aW9uLWNyYXNoLW9uLWFib3J0LmpzCkBAIC01LDI4ICs1LDkg
QEAgaWYgKHRoaXMuaW1wb3J0U2NyaXB0cykgewogCiBkZXNjcmlwdGlvbigiVGVzdCBJbmRleGVk
REIgdHJhbnNhY3Rpb24gZG9lcyBub3QgY3Jhc2ggb24gYWJvcnQuIik7CiAKLWZ1bmN0aW9uIHRl
c3QoKQotewotICAgIHJlbW92ZVZlbmRvclByZWZpeGVzKCk7Ci0KLSAgICByZXF1ZXN0ID0gZXZh
bEFuZExvZygiaW5kZXhlZERCLm9wZW4oJ3RyYW5zYWN0aW9uLWNyYXNoLW9uLWFib3J0JykiKTsK
LSAgICByZXF1ZXN0Lm9uc3VjY2VzcyA9IG9wZW5TdWNjZXNzOwotICAgIHJlcXVlc3Qub25lcnJv
ciA9IHVuZXhwZWN0ZWRFcnJvckNhbGxiYWNrOwotfQotCi1mdW5jdGlvbiBvcGVuU3VjY2Vzcygp
Ci17Ci0gICAgZGVidWcoIm9wZW5TdWNjZXNzKCk6Iik7Ci0gICAgZGIgPSBldmFsQW5kTG9nKCJk
YiA9IGV2ZW50LnRhcmdldC5yZXN1bHQiKTsKLSAgICByZXF1ZXN0ID0gZXZhbEFuZExvZygiZGIu
c2V0VmVyc2lvbignMS4wJykiKTsKLSAgICByZXF1ZXN0Lm9uc3VjY2VzcyA9IHNldFZlcnNpb25T
dWNjZXNzOwotICAgIHJlcXVlc3Qub25lcnJvciA9IHVuZXhwZWN0ZWRFcnJvckNhbGxiYWNrOwot
fQotCiBmdW5jdGlvbiBzZXRWZXJzaW9uU3VjY2VzcygpCiB7CiAgICAgZXZhbEFuZExvZygiZGIu
Y3JlYXRlT2JqZWN0U3RvcmUoJ2ZvbycpIik7Ci0gICAgZXZlbnQudGFyZ2V0LnJlc3VsdC5vbmNv
bXBsZXRlID0gc2V0VmVyc2lvbkNvbXBsZXRlOwogfQogCiBmdW5jdGlvbiBzZXRWZXJzaW9uQ29t
cGxldGUoKQpAQCAtMzYsNCArMTcsNCBAQCBmdW5jdGlvbiBzZXRWZXJzaW9uQ29tcGxldGUoKQog
ICAgIGZpbmlzaEpTVGVzdCgpOwogfQogCi10ZXN0KCk7ClwgTm8gbmV3bGluZSBhdCBlbmQgb2Yg
ZmlsZQoraW5kZXhlZERCVGVzdChzZXRWZXJzaW9uU3VjY2Vzcywgc2V0VmVyc2lvbkNvbXBsZXRl
KTsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL3Jlc291cmNlcy90
cmFuc2FjdGlvbi1lcnJvci5qcyBiL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL3Jlc291
cmNlcy90cmFuc2FjdGlvbi1lcnJvci5qcwppbmRleCA1ODFkYzExYTQ0MTNmOWFhYjY3YjZlZTU3
MDZlMDI5OTc5NTJmNWVhLi5lYTIxNDUwODVjMjMyNDk5ZGUwMTZkYTI3MDRiZmE1NGUzMmM4M2Nm
IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9yZXNvdXJjZXMvdHJh
bnNhY3Rpb24tZXJyb3IuanMKKysrIGIvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvcmVz
b3VyY2VzL3RyYW5zYWN0aW9uLWVycm9yLmpzCkBAIC01LDMyICs1LDExIEBAIGlmICh0aGlzLmlt
cG9ydFNjcmlwdHMpIHsKIAogZGVzY3JpcHRpb24oIlRlc3QgSURCVHJhbnNhY3Rpb24uZXJyb3Ig
Y2FzZXMuIik7CiAKLWZ1bmN0aW9uIHRlc3QoKQorZnVuY3Rpb24gcHJlcGFyZURhdGFiYXNlKCkK
IHsKLSAgICByZW1vdmVWZW5kb3JQcmVmaXhlcygpOwotCi0gICAgZXZhbEFuZExvZygiZGJuYW1l
ID0gc2VsZi5sb2NhdGlvbi5wYXRobmFtZSIpOwotICAgIHJlcXVlc3QgPSBldmFsQW5kTG9nKCJp
bmRleGVkREIuZGVsZXRlRGF0YWJhc2UoZGJuYW1lKSIpOwotICAgIHJlcXVlc3Qub25ibG9ja2Vk
ID0gdW5leHBlY3RlZEJsb2NrZWRDYWxsYmFjazsKKyAgICBldmFsQW5kTG9nKCJzdG9yZSA9IGRi
LmNyZWF0ZU9iamVjdFN0b3JlKCdzdG9yZU5hbWUnKSIpOworICAgIHJlcXVlc3QgPSBldmFsQW5k
TG9nKCJzdG9yZS5hZGQoJ3ZhbHVlJywgJ2tleScpIik7CiAgICAgcmVxdWVzdC5vbmVycm9yID0g
dW5leHBlY3RlZEVycm9yQ2FsbGJhY2s7Ci0gICAgcmVxdWVzdC5vbnN1Y2Nlc3MgPSBmdW5jdGlv
bigpIHsKLSAgICAgICAgcmVxdWVzdCA9IGV2YWxBbmRMb2coImluZGV4ZWREQi5vcGVuKGRibmFt
ZSkiKTsKLSAgICAgICAgcmVxdWVzdC5vbmVycm9yID0gdW5leHBlY3RlZEVycm9yQ2FsbGJhY2s7
Ci0gICAgICAgIHJlcXVlc3Qub25zdWNjZXNzID0gZnVuY3Rpb24oKSB7Ci0gICAgICAgICAgICBl
dmFsQW5kTG9nKCJkYiA9IHJlcXVlc3QucmVzdWx0Iik7Ci0gICAgICAgICAgICByZXF1ZXN0ID0g
ZXZhbEFuZExvZygiZGIuc2V0VmVyc2lvbignMScpIik7Ci0gICAgICAgICAgICByZXF1ZXN0Lm9u
YmxvY2tlZCA9IHVuZXhwZWN0ZWRCbG9ja2VkQ2FsbGJhY2s7Ci0gICAgICAgICAgICByZXF1ZXN0
Lm9uZXJyb3IgPSB1bmV4cGVjdGVkRXJyb3JDYWxsYmFjazsKLSAgICAgICAgICAgIHJlcXVlc3Qu
b25zdWNjZXNzID0gZnVuY3Rpb24oKSB7Ci0gICAgICAgICAgICAgICAgZXZhbEFuZExvZygidHJh
bnMgPSBldmVudC50YXJnZXQucmVzdWx0Iik7Ci0gICAgICAgICAgICAgICAgdHJhbnMub25hYm9y
dCA9IHVuZXhwZWN0ZWRBYm9ydENhbGxiYWNrOwotICAgICAgICAgICAgICAgIGV2YWxBbmRMb2co
InN0b3JlID0gZGIuY3JlYXRlT2JqZWN0U3RvcmUoJ3N0b3JlTmFtZScpIik7Ci0gICAgICAgICAg
ICAgICAgcmVxdWVzdCA9IGV2YWxBbmRMb2coInN0b3JlLmFkZCgndmFsdWUnLCAna2V5JykiKTsK
LSAgICAgICAgICAgICAgICByZXF1ZXN0Lm9uZXJyb3IgPSB1bmV4cGVjdGVkRXJyb3JDYWxsYmFj
azsKLSAgICAgICAgICAgICAgICB0cmFucy5vbmNvbXBsZXRlID0gc3RhcnRUZXN0OwotICAgICAg
ICAgICAgfTsKLSAgICAgICAgfTsKLSAgICB9OwogfQogCiBmdW5jdGlvbiBzdGFydFRlc3QoKQpA
QCAtMTM1LDQgKzExNCw1IEBAIGZ1bmN0aW9uIHRlc3RFcnJvckZyb21Db21taXQoKQogICAgIH07
CiB9CiAKLXRlc3QoKTsKK2luZGV4ZWREQlRlc3QocHJlcGFyZURhdGFiYXNlLCBzdGFydFRlc3Qp
OworCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9yZXNvdXJjZXMv
dHJhbnNhY3Rpb24tZXZlbnQtcHJvcGFnYXRpb24uanMgYi9MYXlvdXRUZXN0cy9zdG9yYWdlL2lu
ZGV4ZWRkYi9yZXNvdXJjZXMvdHJhbnNhY3Rpb24tZXZlbnQtcHJvcGFnYXRpb24uanMKaW5kZXgg
N2U1M2M5N2NjODRiNjgwZDE1ZDY0OTNkZGQxM2ZkZjYwNjQ3MWZhNS4uMTUwYWE4M2MzNmE1MDk3
MjM5OGFiN2EwOTI1Y2NhNTcxZGFkMzYwOCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvc3RvcmFn
ZS9pbmRleGVkZGIvcmVzb3VyY2VzL3RyYW5zYWN0aW9uLWV2ZW50LXByb3BhZ2F0aW9uLmpzCisr
KyBiL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL3Jlc291cmNlcy90cmFuc2FjdGlvbi1l
dmVudC1wcm9wYWdhdGlvbi5qcwpAQCAtNSwzMiArNSw4IEBAIGlmICh0aGlzLmltcG9ydFNjcmlw
dHMpIHsKIAogZGVzY3JpcHRpb24oIlRlc3QgZXZlbnQgcHJvcG9nYXRpb24gb24gSURCVHJhbnNh
Y3Rpb24uIik7CiAKLWZ1bmN0aW9uIHRlc3QoKQorZnVuY3Rpb24gcHJlcGFyZURhdGFiYXNlKCkK
IHsKLSAgICByZW1vdmVWZW5kb3JQcmVmaXhlcygpOwotICAgIHJlcXVlc3QgPSBldmFsQW5kTG9n
KCJpbmRleGVkREIub3BlbigndHJhbnNhY3Rpb24tZXZlbnQtcHJvcGFnYXRpb24nKSIpOwotICAg
IHJlcXVlc3Qub25zdWNjZXNzID0gc2V0VmVyc2lvbjsKLSAgICByZXF1ZXN0Lm9uZXJyb3IgPSB1
bmV4cGVjdGVkRXJyb3JDYWxsYmFjazsKLX0KLQotZnVuY3Rpb24gc2V0VmVyc2lvbigpCi17Ci0g
ICAgZGIgPSBldmFsQW5kTG9nKCJkYiA9IGV2ZW50LnRhcmdldC5yZXN1bHQiKTsKLQotICAgIHJl
cXVlc3QgPSBldmFsQW5kTG9nKCJkYi5zZXRWZXJzaW9uKCduZXcgdmVyc2lvbicpIik7Ci0gICAg
cmVxdWVzdC5vbnN1Y2Nlc3MgPSBkZWxldGVFeGlzdGluZzsKLSAgICByZXF1ZXN0Lm9uZXJyb3Ig
PSB1bmV4cGVjdGVkRXJyb3JDYWxsYmFjazsKLX0KLQotZnVuY3Rpb24gZGVsZXRlRXhpc3Rpbmco
KQotewotICAgIHNlbGYudHJhbnMgPSBldmFsQW5kTG9nKCJ0cmFucyA9IGV2ZW50LnRhcmdldC5y
ZXN1bHQiKTsKLSAgICBzaG91bGRCZU5vbk51bGwoInRyYW5zIik7Ci0gICAgdHJhbnMub25hYm9y
dCA9IHVuZXhwZWN0ZWRBYm9ydENhbGxiYWNrOwotICAgIGV2YWxBbmRMb2coInRyYW5zLm9uY29t
cGxldGUgPSBzdGFydFRlc3QiKTsKLQotICAgIGRlbGV0ZUFsbE9iamVjdFN0b3JlcyhkYik7Ci0K
ICAgICBzdG9yZSA9IGV2YWxBbmRMb2coInN0b3JlID0gZGIuY3JlYXRlT2JqZWN0U3RvcmUoJ3N0
b3JlTmFtZScsIG51bGwpIik7CiAgICAgcmVxdWVzdCA9IGV2YWxBbmRMb2coInN0b3JlLmFkZCh7
eDogJ3ZhbHVlJywgeTogJ3p6eid9LCAna2V5JykiKTsKICAgICByZXF1ZXN0Lm9uZXJyb3IgPSB1
bmV4cGVjdGVkRXJyb3JDYWxsYmFjazsKQEAgLTE0MSw0ICsxMTcsNSBAQCBmdW5jdGlvbiBkYkNv
bXBsZXRlQnViYmxlQ2FsbGJhY2soKQogICAgIGRiQnViYmxlRmlyZWQyID0gdHJ1ZTsKIH0KIAot
dGVzdCgpOwpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKK2luZGV4ZWREQlRlc3QocHJlcGFy
ZURhdGFiYXNlLCBzdGFydFRlc3QpOworCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9zdG9yYWdl
L2luZGV4ZWRkYi9yZXNvdXJjZXMvdHJhbnNhY3Rpb24tcmVhZC1vbmx5LmpzIGIvTGF5b3V0VGVz
dHMvc3RvcmFnZS9pbmRleGVkZGIvcmVzb3VyY2VzL3RyYW5zYWN0aW9uLXJlYWQtb25seS5qcwpp
bmRleCBhNzVhN2MwNzUwNGZjYTU1YjhlMjhkMmIwYjAxMTA4NDAzMzc1ZTMyLi5lNTRjOGY1MTg4
MDhhMmE5ZjRjNDcyMzZmNjYyYTgzNmI5MmQ3OGE4IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9z
dG9yYWdlL2luZGV4ZWRkYi9yZXNvdXJjZXMvdHJhbnNhY3Rpb24tcmVhZC1vbmx5LmpzCisrKyBi
L0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL3Jlc291cmNlcy90cmFuc2FjdGlvbi1yZWFk
LW9ubHkuanMKQEAgLTUsMzAgKzUsOCBAQCBpZiAodGhpcy5pbXBvcnRTY3JpcHRzKSB7CiAKIGRl
c2NyaXB0aW9uKCJUZXN0IHJlYWQtb25seSB0cmFuc2FjdGlvbnMgaW4gSW5kZXhlZERCLiIpOwog
Ci1mdW5jdGlvbiB0ZXN0KCkKLXsKLSAgICByZW1vdmVWZW5kb3JQcmVmaXhlcygpOwotCi0gICAg
cmVxdWVzdCA9IGV2YWxBbmRMb2coImluZGV4ZWREQi5vcGVuKCd0cmFuc2FjdGlvbi1yZWFkLW9u
bHknKSIpOwotICAgIHJlcXVlc3Qub25zdWNjZXNzID0gb3BlblN1Y2Nlc3M7Ci0gICAgcmVxdWVz
dC5vbmVycm9yID0gdW5leHBlY3RlZEVycm9yQ2FsbGJhY2s7Ci19Ci0KLWZ1bmN0aW9uIG9wZW5T
dWNjZXNzKCkKLXsKLSAgICBkZWJ1Zygib3BlblN1Y2Nlc3MoKToiKTsKLSAgICBzZWxmLmRiID0g
ZXZhbEFuZExvZygiZGIgPSBldmVudC50YXJnZXQucmVzdWx0Iik7Ci0gICAgcmVxdWVzdCA9IGV2
YWxBbmRMb2coInJlc3VsdCA9IGRiLnNldFZlcnNpb24oJ3ZlcnNpb24gMScpIik7Ci0gICAgcmVx
dWVzdC5vbnN1Y2Nlc3MgPSBjbGVhbkRhdGFiYXNlOwotICAgIHJlcXVlc3Qub25lcnJvciA9IHVu
ZXhwZWN0ZWRFcnJvckNhbGxiYWNrOwotfQotCiBmdW5jdGlvbiBjbGVhbkRhdGFiYXNlKCkKIHsK
LSAgICBkZWxldGVBbGxPYmplY3RTdG9yZXMoZGIpOwotCi0gICAgZXZlbnQudGFyZ2V0LnJlc3Vs
dC5vbmNvbXBsZXRlID0gc2V0VmVyc2lvbkRvbmU7Ci0gICAgZXZlbnQudGFyZ2V0LnJlc3VsdC5v
bmFib3J0ID0gdW5leHBlY3RlZEFib3J0Q2FsbGJhY2s7CiAgICAgc3RvcmUgPSBldmFsQW5kTG9n
KCJzdG9yZSA9IGRiLmNyZWF0ZU9iamVjdFN0b3JlKCdzdG9yZScpIik7CiAgICAgZXZhbEFuZExv
Zygic3RvcmUucHV0KCd4JywgJ3knKSIpOwogfQpAQCAtNTUsNCArMzMsNCBAQCBmdW5jdGlvbiBn
b3RDdXJzb3IoKQogICAgIGZpbmlzaEpTVGVzdCgpOwogfQogCi10ZXN0KCk7CitpbmRleGVkREJU
ZXN0KGNsZWFuRGF0YWJhc2UsIHNldFZlcnNpb25Eb25lKTsKZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL3N0b3JhZ2UvaW5kZXhlZGRiL3Jlc291cmNlcy90cmFuc2FjdGlvbi1yb2xsYmFjay5qcyBi
L0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL3Jlc291cmNlcy90cmFuc2FjdGlvbi1yb2xs
YmFjay5qcwppbmRleCBhZDcyYTk0NWYyOGRmNTEzODVkZjFmYTFhZjI0MDJiMTgzMmZiOWU0Li4z
Mjc2MzBlNDc3MDJmZjhlYTkwNGI5N2E0YmM2ZmRmODY1NzViZDlkIDEwMDY0NAotLS0gYS9MYXlv
dXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9yZXNvdXJjZXMvdHJhbnNhY3Rpb24tcm9sbGJhY2su
anMKKysrIGIvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvcmVzb3VyY2VzL3RyYW5zYWN0
aW9uLXJvbGxiYWNrLmpzCkBAIC01LDMyICs1LDkgQEAgaWYgKHRoaXMuaW1wb3J0U2NyaXB0cykg
ewogCiBkZXNjcmlwdGlvbigiVGVzdCBJbmRleGVkREIgdHJhbnNhY3Rpb24gcm9sbGJhY2suIik7
CiAKLWZ1bmN0aW9uIHRlc3QoKQotewotICAgIHJlbW92ZVZlbmRvclByZWZpeGVzKCk7Ci0KLSAg
ICByZXF1ZXN0ID0gZXZhbEFuZExvZygiaW5kZXhlZERCLm9wZW4oJ3RyYW5zYWN0aW9uLXJvbGxi
YWNrJykiKTsKLSAgICByZXF1ZXN0Lm9uc3VjY2VzcyA9IG9wZW5TdWNjZXNzOwotICAgIHJlcXVl
c3Qub25lcnJvciA9IHVuZXhwZWN0ZWRFcnJvckNhbGxiYWNrOwotfQotCi1mdW5jdGlvbiBvcGVu
U3VjY2VzcygpCi17Ci0gICAgZGVidWcoIm9wZW5TdWNjZXNzKCk6Iik7Ci0gICAgc2VsZi5kYiA9
IGV2YWxBbmRMb2coImRiID0gZXZlbnQudGFyZ2V0LnJlc3VsdCIpOwotICAgIHJlcXVlc3QgPSBl
dmFsQW5kTG9nKCJyZXF1ZXN0ID0gZGIuc2V0VmVyc2lvbigndmVyc2lvbiAxJykiKTsKLSAgICBy
ZXF1ZXN0Lm9uc3VjY2VzcyA9IGNsZWFuRGF0YWJhc2U7Ci0gICAgcmVxdWVzdC5vbmVycm9yID0g
dW5leHBlY3RlZEVycm9yQ2FsbGJhY2s7Ci19Ci0KIGZ1bmN0aW9uIGNsZWFuRGF0YWJhc2UoKQog
ewogICAgIGRlYnVnKCJjbGVhbkRhdGFiYXNlKCk6Iik7Ci0gICAgc2VsZi50cmFuc2FjdGlvbiA9
IGV2YWxBbmRMb2coInRyYW5zYWN0aW9uID0gZXZlbnQudGFyZ2V0LnJlc3VsdCIpOwotICAgIHRy
YW5zYWN0aW9uLm9uYWJvcnQgPSB1bmV4cGVjdGVkRXJyb3JDYWxsYmFjazsKLSAgICB0cmFuc2Fj
dGlvbi5vbmNvbXBsZXRlID0gc2V0VmVyc2lvbkNvbXBsZXRlOwotCi0gICAgZGVsZXRlQWxsT2Jq
ZWN0U3RvcmVzKGRiKTsKICAgICBldmFsQW5kTG9nKCJkYi5jcmVhdGVPYmplY3RTdG9yZSgnbXlP
YmplY3RTdG9yZScpIik7CiAgICAgc2hvdWxkQmUoImRiLm9iamVjdFN0b3JlTmFtZXMubGVuZ3Ro
IiwgIjEiKTsKIH0KQEAgLTg4LDQgKzY1LDQgQEAgZnVuY3Rpb24gZ2V0U3VjY2VzcygpCiAgICAg
ZmluaXNoSlNUZXN0KCk7CiB9CiAKLXRlc3QoKTsKXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxl
CitpbmRleGVkREJUZXN0KGNsZWFuRGF0YWJhc2UsIHNldFZlcnNpb25Db21wbGV0ZSk7CmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9yZXNvdXJjZXMvdHJhbnNhY3Rp
b24tc3RvcmVOYW1lcy1yZXF1aXJlZC5qcyBiL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRi
L3Jlc291cmNlcy90cmFuc2FjdGlvbi1zdG9yZU5hbWVzLXJlcXVpcmVkLmpzCmluZGV4IDg3NDhi
MjVkNjQ1MGM2MTFjYmUwN2JjY2VlY2NiMTU1YWI4NWM4OGUuLjYxZTIyZGE3ODU4YmU2NjQyMTcw
Yzg4YWEwM2QyYmQ5ODU2Zjg4MGUgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5k
ZXhlZGRiL3Jlc291cmNlcy90cmFuc2FjdGlvbi1zdG9yZU5hbWVzLXJlcXVpcmVkLmpzCisrKyBi
L0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL3Jlc291cmNlcy90cmFuc2FjdGlvbi1zdG9y
ZU5hbWVzLXJlcXVpcmVkLmpzCkBAIC01LDMxICs1LDEwIEBAIGlmICh0aGlzLmltcG9ydFNjcmlw
dHMpIHsKIAogZGVzY3JpcHRpb24oIlRlc3QgSW5kZXhlZERCOiB0cmFuc2FjdGlvbiBzdG9yZU5h
bWVzIHJlcXVpcmVkIGFyZ3VtZW50cyIpOwogCi1mdW5jdGlvbiB0ZXN0KCkKK2Z1bmN0aW9uIHRl
c3RUcmFuc2FjdGlvbigpCiB7Ci0gICAgcmVtb3ZlVmVuZG9yUHJlZml4ZXMoKTsKLQotICAgIG5h
bWUgPSBzZWxmLmxvY2F0aW9uLnBhdGhuYW1lOwotICAgIHJlcXVlc3QgPSBldmFsQW5kTG9nKCJp
bmRleGVkREIub3BlbihuYW1lKSIpOwotICAgIHJlcXVlc3Qub25zdWNjZXNzID0gb3BlblN1Y2Nl
c3M7Ci0gICAgcmVxdWVzdC5vbmVycm9yID0gdW5leHBlY3RlZEVycm9yQ2FsbGJhY2s7Ci19Ci0K
LWZ1bmN0aW9uIG9wZW5TdWNjZXNzKCkKLXsKLSAgICBkYiA9IGV2YWxBbmRMb2coImRiID0gZXZl
bnQudGFyZ2V0LnJlc3VsdCIpOwotCi0gICAgcmVxdWVzdCA9IGV2YWxBbmRMb2coInJlcXVlc3Qg
PSBkYi5zZXRWZXJzaW9uKCcxJykiKTsKLSAgICByZXF1ZXN0Lm9uc3VjY2VzcyA9IGNyZWF0ZUFu
ZFBvcHVsYXRlT2JqZWN0U3RvcmU7Ci0gICAgcmVxdWVzdC5vbmVycm9yID0gdW5leHBlY3RlZEVy
cm9yQ2FsbGJhY2s7Ci19Ci0KLWZ1bmN0aW9uIGNyZWF0ZUFuZFBvcHVsYXRlT2JqZWN0U3RvcmUo
KQotewotICAgIGRlbGV0ZUFsbE9iamVjdFN0b3JlcyhkYik7Ci0KLSAgICBzaG91bGRUaHJvdygi
ZGIudHJhbnNhY3Rpb24oKTsiKTsKKyAgICBzaG91bGRUaHJvdygiZGIudHJhbnNhY3Rpb24oKSIp
OwogICAgIGZpbmlzaEpTVGVzdCgpOwogfQogCi10ZXN0KCk7ClwgTm8gbmV3bGluZSBhdCBlbmQg
b2YgZmlsZQoraW5kZXhlZERCVGVzdChmdW5jdGlvbigpIHt9LCB0ZXN0VHJhbnNhY3Rpb24pOwpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvcmVzb3VyY2VzL3ZhbHVl
LXVuZGVmaW5lZC5qcyBiL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL3Jlc291cmNlcy92
YWx1ZS11bmRlZmluZWQuanMKaW5kZXggMzJiYzIzZGEzYTQ4ZmQ2NDlkZTJlOGUyMjgyMDU5NjMx
MGRkZDJmNS4uNjZjZGJhZWMzMDllMzllNDU3NmMwZmFjNTU4ZjIwZWY1OWFiM2QwMyAxMDA2NDQK
LS0tIGEvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvcmVzb3VyY2VzL3ZhbHVlLXVuZGVm
aW5lZC5qcworKysgYi9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9yZXNvdXJjZXMvdmFs
dWUtdW5kZWZpbmVkLmpzCkBAIC01LDI5ICs1LDggQEAgaWYgKHRoaXMuaW1wb3J0U2NyaXB0cykg
ewogCiBkZXNjcmlwdGlvbigiVGVzdCBJbmRleGVkREIgdW5kZWZpbmVkIGFzIHJlY29yZCB2YWx1
ZSIpOwogCi1mdW5jdGlvbiB0ZXN0KCkKLXsKLSAgICByZW1vdmVWZW5kb3JQcmVmaXhlcygpOwot
Ci0gICAgbmFtZSA9IHNlbGYubG9jYXRpb24ucGF0aG5hbWU7Ci0gICAgcmVxdWVzdCA9IGV2YWxB
bmRMb2coImluZGV4ZWREQi5vcGVuKG5hbWUpIik7Ci0gICAgcmVxdWVzdC5vbnN1Y2Nlc3MgPSBv
cGVuU3VjY2VzczsKLSAgICByZXF1ZXN0Lm9uZXJyb3IgPSB1bmV4cGVjdGVkRXJyb3JDYWxsYmFj
azsKLX0KLQotZnVuY3Rpb24gb3BlblN1Y2Nlc3MoKQotewotICAgIGRiID0gZXZhbEFuZExvZygi
ZGIgPSBldmVudC50YXJnZXQucmVzdWx0Iik7Ci0KLSAgICByZXF1ZXN0ID0gZXZhbEFuZExvZygi
cmVxdWVzdCA9IGRiLnNldFZlcnNpb24oJzEnKSIpOwotICAgIHJlcXVlc3Qub25zdWNjZXNzID0g
Y3JlYXRlQW5kUG9wdWxhdGVPYmplY3RTdG9yZTsKLSAgICByZXF1ZXN0Lm9uZXJyb3IgPSB1bmV4
cGVjdGVkRXJyb3JDYWxsYmFjazsKLX0KLQogZnVuY3Rpb24gY3JlYXRlQW5kUG9wdWxhdGVPYmpl
Y3RTdG9yZSgpCiB7Ci0gICAgZGVsZXRlQWxsT2JqZWN0U3RvcmVzKGRiKTsKLQogICAgIG9iamVj
dFN0b3JlID0gZXZhbEFuZExvZygib2JqZWN0U3RvcmUgPSBkYi5jcmVhdGVPYmplY3RTdG9yZSgn
Zm9vJyk7Iik7CiAgICAgcmVzdWx0ID0gZXZhbEFuZExvZygicmVzdWx0ID0gb2JqZWN0U3RvcmUu
YWRkKHVuZGVmaW5lZCwgSW5maW5pdHkpOyIpOwogICAgIHJlc3VsdC5vbmVycm9yID0gdW5leHBl
Y3RlZEVycm9yQ2FsbGJhY2s7CkBAIC01OSw3ICszOCw2IEBAIGZ1bmN0aW9uIGNoZWNrQ3Vyc29y
KCkKICAgICB9IGVsc2UgewogICAgICAgICB0ZXN0RmFpbGVkKCJjdXJzb3IgaXMgbnVsbCIpOwog
ICAgIH0KLSAgICBmaW5pc2hKU1Rlc3QoKTsKIH0KIAotdGVzdCgpOwpcIE5vIG5ld2xpbmUgYXQg
ZW5kIG9mIGZpbGUKK2luZGV4ZWREQlRlc3QoY3JlYXRlQW5kUG9wdWxhdGVPYmplY3RTdG9yZSwg
ZmluaXNoSlNUZXN0KTsKXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9yZXNvdXJjZXMvdmFsdWVzLW9kZC10eXBlcy5q
cyBiL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL3Jlc291cmNlcy92YWx1ZXMtb2RkLXR5
cGVzLmpzCmluZGV4IGQwNzIyOWI4N2ViODM4ZDcwZTkzMzNhYjQ0ZTA1ZGMyYTc3ODBkMjcuLjVj
ZjZjMjE2OTgwY2IzN2E4ODdmNWUzMjBhZjgwNzRkODcyZmUwNDEgMTAwNjQ0Ci0tLSBhL0xheW91
dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL3Jlc291cmNlcy92YWx1ZXMtb2RkLXR5cGVzLmpzCisr
KyBiL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL3Jlc291cmNlcy92YWx1ZXMtb2RkLXR5
cGVzLmpzCkBAIC01LDI5ICs1LDggQEAgaWYgKHRoaXMuaW1wb3J0U2NyaXB0cykgewogCiBkZXNj
cmlwdGlvbigiVGVzdCBJbmRleGVkREIgb2RkIHZhbHVlIGRhdGF0eXBlcyIpOwogCi1mdW5jdGlv
biB0ZXN0KCkKK2Z1bmN0aW9uIHByZXBhcmVEYXRhYmFzZSgpCiB7Ci0gICAgcmVtb3ZlVmVuZG9y
UHJlZml4ZXMoKTsKLQotICAgIG5hbWUgPSBzZWxmLmxvY2F0aW9uLnBhdGhuYW1lOwotICAgIHJl
cXVlc3QgPSBldmFsQW5kTG9nKCJpbmRleGVkREIub3BlbihuYW1lKSIpOwotICAgIHJlcXVlc3Qu
b25zdWNjZXNzID0gb3BlblN1Y2Nlc3M7Ci0gICAgcmVxdWVzdC5vbmVycm9yID0gdW5leHBlY3Rl
ZEVycm9yQ2FsbGJhY2s7Ci19Ci0KLWZ1bmN0aW9uIG9wZW5TdWNjZXNzKCkKLXsKLSAgICBkYiA9
IGV2YWxBbmRMb2coImRiID0gZXZlbnQudGFyZ2V0LnJlc3VsdCIpOwotCi0gICAgcmVxdWVzdCA9
IGV2YWxBbmRMb2coInJlcXVlc3QgPSBkYi5zZXRWZXJzaW9uKCcxJykiKTsKLSAgICByZXF1ZXN0
Lm9uc3VjY2VzcyA9IGFkZEtleTE7Ci0gICAgcmVxdWVzdC5vbmVycm9yID0gdW5leHBlY3RlZEVy
cm9yQ2FsbGJhY2s7Ci19Ci0KLWZ1bmN0aW9uIGFkZEtleTEoKQotewotICAgIGRlbGV0ZUFsbE9i
amVjdFN0b3JlcyhkYik7Ci0KICAgICBvYmplY3RTdG9yZSA9IGV2YWxBbmRMb2coImRiLmNyZWF0
ZU9iamVjdFN0b3JlKCdmb28nLCB7YXV0b0luY3JlbWVudDogdHJ1ZX0pOyIpOwogCiAgICAgY2Fu
dmFzID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnY2FudmFzJyk7CkBAIC0zNywyMSArMTYsMjAg
QEAgZnVuY3Rpb24gYWRkS2V5MSgpCiAgICAgICAgICAgICAgICAgICB7IGRlc2NyaXB0aW9uOiAn
ZGF0ZScsICAgICAgdmFsdWU6IG5ldyBEYXRlKDApIH0sCiAgICAgICAgICAgICAgICAgICB7IGRl
c2NyaXB0aW9uOiAnb2JqZWN0JywgICAgdmFsdWU6IG5ldyBPYmplY3QoKSB9LAogICAgICAgICAg
ICAgICAgICAgeyBkZXNjcmlwdGlvbjogJ2ltYWdlZGF0YScsIHZhbHVlOiBpbWFnZWRhdGEgfSwK
LSAgICBdOwotICAgIG5leHRUb0FkZCA9IDA7Ci0gICAgYWRkRGF0YSgpOwotfQorICAgICAgICAg
ICAgICAgICBdOwogCi1mdW5jdGlvbiBhZGREYXRhKCkKLXsKLSAgICBkZWJ1ZygiYWRkaW5nICIg
KyB2YWxpZFR5cGVzW25leHRUb0FkZF0uZGVzY3JpcHRpb24gKyAiIHZhbHVlIik7Ci0gICAgcmVz
dWx0ID0gZXZhbEFuZExvZygib2JqZWN0U3RvcmUuYWRkKHZhbGlkVHlwZXNbbmV4dFRvQWRkXS52
YWx1ZSkiKTsKLSAgICByZXN1bHQub25zdWNjZXNzID0gKytuZXh0VG9BZGQgPCB2YWxpZFR5cGVz
Lmxlbmd0aCA/IGFkZERhdGEgOiBvcGVuQUN1cnNvcjsKLSAgICByZXN1bHQub25lcnJvciA9IHVu
ZXhwZWN0ZWRFcnJvckNhbGxiYWNrOworICAgIGZvciAobmV4dFRvQWRkID0gMDsgbmV4dFRvQWRk
IDwgdmFsaWRUeXBlcy5sZW5ndGg7ICsrbmV4dFRvQWRkKSB7CisgICAgICAgIGRlYnVnKCJhZGRp
bmcgIiArIHZhbGlkVHlwZXNbbmV4dFRvQWRkXS5kZXNjcmlwdGlvbiArICIgdmFsdWUiKTsKKyAg
ICAgICAgcmVzdWx0ID0gZXZhbEFuZExvZygib2JqZWN0U3RvcmUuYWRkKHZhbGlkVHlwZXNbbmV4
dFRvQWRkXS52YWx1ZSkiKTsKKyAgICAgICAgcmVzdWx0Lm9uZXJyb3IgPSB1bmV4cGVjdGVkRXJy
b3JDYWxsYmFjazsKKyAgICB9CiB9CiAKIGZ1bmN0aW9uIG9wZW5BQ3Vyc29yKCkKIHsKKyAgICBl
dmFsQW5kTG9nKCJ0cmFucyA9IGRiLnRyYW5zYWN0aW9uKCdmb28nKSIpOworICAgIGV2YWxBbmRM
b2coIm9iamVjdFN0b3JlID0gdHJhbnMub2JqZWN0U3RvcmUoJ2ZvbycpIik7CisKICAgICB2YWx1
ZUluZGV4ID0gMDsKICAgICByZXF1ZXN0ID0gZXZhbEFuZExvZygicmVxdWVzdCA9IG9iamVjdFN0
b3JlLm9wZW5DdXJzb3IoKTsiKTsKICAgICByZXF1ZXN0Lm9uZXJyb3IgPSB1bmV4cGVjdGVkRXJy
b3JDYWxsYmFjazsKQEAgLTcxLDcgKzQ5LDcgQEAgZnVuY3Rpb24gb3BlbkFDdXJzb3IoKQogICAg
ICAgICBlbHNlIHsKICAgICAgICAgICAgIGZpbmlzaEpTVGVzdCgpOwogICAgICAgICB9Ci0gICAg
fQorICAgIH07CiB9CiAKLXRlc3QoKTsKXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCitpbmRl
eGVkREJUZXN0KHByZXBhcmVEYXRhYmFzZSwgb3BlbkFDdXJzb3IpOwpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvc3RydWN0dXJlZC1jbG9uZS1leHBlY3RlZC50eHQg
Yi9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9zdHJ1Y3R1cmVkLWNsb25lLWV4cGVjdGVk
LnR4dAppbmRleCA4ZmJmOTA1MGQ2YzllYjE4MGE5ZjcyNTM3ZGZhYzIzYzA2Y2ExNzEwLi5kZWNi
YmNhNTcyMTQ3MTdiNGYyZmYyMmIzZmRmYjlkOWU4YTUwNGI2IDEwMDY0NAotLS0gYS9MYXlvdXRU
ZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9zdHJ1Y3R1cmVkLWNsb25lLWV4cGVjdGVkLnR4dAorKysg
Yi9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9zdHJ1Y3R1cmVkLWNsb25lLWV4cGVjdGVk
LnR4dApAQCAtNSwxMiArNSw5IEBAIE9uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBv
ZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFCiAKIGluZGV4ZWRE
QiA9IHNlbGYuaW5kZXhlZERCIHx8IHNlbGYud2Via2l0SW5kZXhlZERCIHx8IHNlbGYubW96SW5k
ZXhlZERCIHx8IHNlbGYubXNJbmRleGVkREIgfHwgc2VsZi5PSW5kZXhlZERCOwogCi0KLVByZXBh
cmUgRGF0YWJhc2UKLWluZGV4ZWREQi5kZWxldGVEYXRhYmFzZSgnc3RydWN0dXJlZC1jbG9uZScp
Ci1pbmRleGVkREIub3Blbignc3RydWN0dXJlZC1jbG9uZScpCi1kYiA9IHJlcXVlc3QucmVzdWx0
Ci1QQVNTIGRiLnZlcnNpb24gaXMgIiIKK2RibmFtZSA9IHNlbGYubG9jYXRpb24ucGF0aG5hbWUK
K2luZGV4ZWREQi5kZWxldGVEYXRhYmFzZShkYm5hbWUpCitpbmRleGVkREIub3BlbihkYm5hbWUp
CiBkYi5zZXRWZXJzaW9uKCcxJykKIHN0b3JlID0gZGIuY3JlYXRlT2JqZWN0U3RvcmUoJ3N0b3Jl
TmFtZScpCiBUaGlzIGluZGV4IGlzIG5vdCB1c2VkLCBidXQgZXZhbHVhdGluZyBrZXkgcGF0aCBv
biBlYWNoIHB1dCgpIGNhbGwgd2lsbCBleGVyY2lzZSAoZGUpc2VyaWFsaXphdGlvbjoKZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL3N0cnVjdHVyZWQtY2xvbmUuaHRt
bCBiL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL3N0cnVjdHVyZWQtY2xvbmUuaHRtbApp
bmRleCA4ZDgyZWM4NGJmOTIxYTFkNDk4M2JhZDNhZDdjMmY1YjU4NWYyZGQ1Li4xNjYwMDA1OTM3
ZmRiMGVkNTI5NGU4OTI3OTNlNDY3N2FjN2Y1ZDA3IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9z
dG9yYWdlL2luZGV4ZWRkYi9zdHJ1Y3R1cmVkLWNsb25lLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMv
c3RvcmFnZS9pbmRleGVkZGIvc3RydWN0dXJlZC1jbG9uZS5odG1sCkBAIC0xOSwzNyArMTksMTEg
QEAgaWYgKHNlbGYuZXZlbnRTZW5kZXIpIHsKICAgICBldmVudFNlbmRlci5tb3VzZVVwKCk7CiB9
CiAKLWZ1bmN0aW9uIHRlc3QoKQotewotICAgIHJlbW92ZVZlbmRvclByZWZpeGVzKCk7Ci0gICAg
cHJlcGFyZURhdGFiYXNlKCk7Ci19Ci0KIGZ1bmN0aW9uIHByZXBhcmVEYXRhYmFzZSgpCiB7Ci0g
ICAgZGVidWcoIiIpOwotICAgIGRlYnVnKCJQcmVwYXJlIERhdGFiYXNlIik7Ci0gICAgcmVxdWVz
dCA9IGV2YWxBbmRMb2coImluZGV4ZWREQi5kZWxldGVEYXRhYmFzZSgnc3RydWN0dXJlZC1jbG9u
ZScpIik7Ci0gICAgcmVxdWVzdC5vbmVycm9yID0gdW5leHBlY3RlZEVycm9yQ2FsbGJhY2s7Ci0g
ICAgcmVxdWVzdC5vbnN1Y2Nlc3MgPSBmdW5jdGlvbihlKSB7Ci0gICAgICAgIHJlcXVlc3QgPSBl
dmFsQW5kTG9nKCJpbmRleGVkREIub3Blbignc3RydWN0dXJlZC1jbG9uZScpIik7Ci0gICAgICAg
IHJlcXVlc3Qub25lcnJvciA9IHVuZXhwZWN0ZWRFcnJvckNhbGxiYWNrOwotICAgICAgICByZXF1
ZXN0Lm9uc3VjY2VzcyA9IGZ1bmN0aW9uKGUpIHsKLSAgICAgICAgICAgIGV2YWxBbmRMb2coImRi
ID0gcmVxdWVzdC5yZXN1bHQiKTsKLSAgICAgICAgICAgIHNob3VsZEJlRXF1YWxUb1N0cmluZygi
ZGIudmVyc2lvbiIsICIiKTsKLSAgICAgICAgICAgIHJlcXVlc3QgPSBldmFsQW5kTG9nKCJkYi5z
ZXRWZXJzaW9uKCcxJykiKTsKLSAgICAgICAgICAgIHJlcXVlc3Qub25lcnJvciA9IHVuZXhwZWN0
ZWRFcnJvckNhbGxiYWNrOwotICAgICAgICAgICAgcmVxdWVzdC5vbnN1Y2Nlc3MgPSBmdW5jdGlv
bihlKSB7Ci0gICAgICAgICAgICAgICAgZXZhbEFuZExvZygic3RvcmUgPSBkYi5jcmVhdGVPYmpl
Y3RTdG9yZSgnc3RvcmVOYW1lJykiKTsKLSAgICAgICAgICAgICAgICBkZWJ1ZygiVGhpcyBpbmRl
eCBpcyBub3QgdXNlZCwgYnV0IGV2YWx1YXRpbmcga2V5IHBhdGggb24gZWFjaCBwdXQoKSBjYWxs
IHdpbGwgZXhlcmNpc2UgKGRlKXNlcmlhbGl6YXRpb246Iik7Ci0gICAgICAgICAgICAgICAgZXZh
bEFuZExvZygic3RvcmUuY3JlYXRlSW5kZXgoJ2luZGV4TmFtZScsICdkdW1teUtleVBhdGgnKSIp
OwotICAgICAgICAgICAgICAgIHZhciB0cmFucyA9IHJlcXVlc3QucmVzdWx0OwotICAgICAgICAg
ICAgICAgIHRyYW5zLm9uZXJyb3IgPSB1bmV4cGVjdGVkRXJyb3JDYWxsYmFjazsKLSAgICAgICAg
ICAgICAgICB0cmFucy5vbmFib3J0ID0gdW5leHBlY3RlZEFib3J0Q2FsbGJhY2s7Ci0gICAgICAg
ICAgICAgICAgdHJhbnMub25jb21wbGV0ZSA9IHN0YXJ0VGVzdHM7Ci0gICAgICAgICAgICB9Owot
ICAgICAgICB9OwotICAgIH07CisgICAgZXZhbEFuZExvZygic3RvcmUgPSBkYi5jcmVhdGVPYmpl
Y3RTdG9yZSgnc3RvcmVOYW1lJykiKTsKKyAgICBkZWJ1ZygiVGhpcyBpbmRleCBpcyBub3QgdXNl
ZCwgYnV0IGV2YWx1YXRpbmcga2V5IHBhdGggb24gZWFjaCBwdXQoKSBjYWxsIHdpbGwgZXhlcmNp
c2UgKGRlKXNlcmlhbGl6YXRpb246Iik7CisgICAgZXZhbEFuZExvZygic3RvcmUuY3JlYXRlSW5k
ZXgoJ2luZGV4TmFtZScsICdkdW1teUtleVBhdGgnKSIpOwogfQogCiBmdW5jdGlvbiBzdGFydFRl
c3RzKCkKQEAgLTU2NSw3ICs1MzksNyBAQCBmdW5jdGlvbiB0ZXN0QmFkVHlwZXMoKQogICAgIGV2
YWxBbmRFeHBlY3RFeGNlcHRpb24oInN0b3JlLnB1dChkb2N1bWVudC5ib2R5LCAna2V5JykiLCAi
RE9NRXhjZXB0aW9uLkRBVEFfQ0xPTkVfRVJSIik7CiB9CiAKLXRlc3QoKTsKK2luZGV4ZWREQlRl
c3QocHJlcGFyZURhdGFiYXNlLCBzdGFydFRlc3RzKTsKIAogPC9zY3JpcHQ+CiA8c2NyaXB0IHNy
Yz0iLi4vLi4vZmFzdC9qcy9yZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL3RyYW5zYWN0aW9uLWFib3J0
LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL3RyYW5zYWN0aW9u
LWFib3J0LWV4cGVjdGVkLnR4dAppbmRleCBlOTI5Y2Q3OTc0OTFiMzU0YzcwM2ExODlmZWVmZGNm
NGQ0YjY1MzA3Li4yODBmY2IwMmI1OWU3OTk5ZmViNTQ2OThhNmVjNTNlMjVmODhkNjY5IDEwMDY0
NAotLS0gYS9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi90cmFuc2FjdGlvbi1hYm9ydC1l
eHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvdHJhbnNhY3Rp
b24tYWJvcnQtZXhwZWN0ZWQudHh0CkBAIC01LDE0ICs1LDEwIEBAIE9uIHN1Y2Nlc3MsIHlvdSB3
aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENP
TVBMRVRFCiAKIGluZGV4ZWREQiA9IHNlbGYuaW5kZXhlZERCIHx8IHNlbGYud2Via2l0SW5kZXhl
ZERCIHx8IHNlbGYubW96SW5kZXhlZERCIHx8IHNlbGYubXNJbmRleGVkREIgfHwgc2VsZi5PSW5k
ZXhlZERCOwogCi1pbmRleGVkREIub3BlbignbmFtZScpCi1kYiA9IGV2ZW50LnRhcmdldC5yZXN1
bHQKLWRiLnNldFZlcnNpb24oJ25ldyB2ZXJzaW9uJykKLXNldFZlcnNpb25TdWNjZXNzKCk6Ci10
cmFucyA9IGV2ZW50LnRhcmdldC5yZXN1bHQKLVBBU1MgdHJhbnMgaXMgbm9uLW51bGwuCi10cmFu
cy5vbmNvbXBsZXRlID0gc3RhcnRUZXN0Ci1EZWxldGVkIGFsbCBvYmplY3Qgc3RvcmVzLgorZGJu
YW1lID0gc2VsZi5sb2NhdGlvbi5wYXRobmFtZQoraW5kZXhlZERCLmRlbGV0ZURhdGFiYXNlKGRi
bmFtZSkKK2luZGV4ZWREQi5vcGVuKGRibmFtZSkKK2RiLnNldFZlcnNpb24oJzEnKQogc3RvcmUg
PSBkYi5jcmVhdGVPYmplY3RTdG9yZSgnc3RvcmVOYW1lJywgbnVsbCkKIHN0b3JlLmFkZCh7eDog
J3ZhbHVlJywgeTogJ3p6eid9LCAna2V5JykKIHRyYW5zID0gZGIudHJhbnNhY3Rpb24oWydzdG9y
ZU5hbWUnXSwgJ3JlYWR3cml0ZScpCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9zdG9yYWdlL2lu
ZGV4ZWRkYi90cmFuc2FjdGlvbi1hY3RpdmUtZmxhZy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0
cy9zdG9yYWdlL2luZGV4ZWRkYi90cmFuc2FjdGlvbi1hY3RpdmUtZmxhZy1leHBlY3RlZC50eHQK
aW5kZXggYmE5MWM1YjY2NTgxNmE2Y2U4ZTBiNTljNTYwMjZjMTc4Mjk0ZDY4ZS4uZGY3ZmNlN2Iy
MGE1NTNjYzczYWZiNGZkYTU5MGZiNGQ5NGEwNTlkZSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMv
c3RvcmFnZS9pbmRleGVkZGIvdHJhbnNhY3Rpb24tYWN0aXZlLWZsYWctZXhwZWN0ZWQudHh0Cisr
KyBiL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL3RyYW5zYWN0aW9uLWFjdGl2ZS1mbGFn
LWV4cGVjdGVkLnR4dApAQCAtNSw4ICs1LDkgQEAgT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEg
c2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUKIAog
aW5kZXhlZERCID0gc2VsZi5pbmRleGVkREIgfHwgc2VsZi53ZWJraXRJbmRleGVkREIgfHwgc2Vs
Zi5tb3pJbmRleGVkREIgfHwgc2VsZi5tc0luZGV4ZWREQiB8fCBzZWxmLk9JbmRleGVkREI7CiAK
LWluZGV4ZWREQi5kZWxldGVEYXRhYmFzZSgndHJhbnNhY3Rpb24tYWN0aXZlLWZsYWcnKQotaW5k
ZXhlZERCLm9wZW4oJ3RyYW5zYWN0aW9uLWFjdGl2ZS1mbGFnJykKK2RibmFtZSA9IHNlbGYubG9j
YXRpb24ucGF0aG5hbWUKK2luZGV4ZWREQi5kZWxldGVEYXRhYmFzZShkYm5hbWUpCitpbmRleGVk
REIub3BlbihkYm5hbWUpCiBkYi5zZXRWZXJzaW9uKCcxJykKIHN0b3JlID0gZGIuY3JlYXRlT2Jq
ZWN0U3RvcmUoJ3N0b3JlJykKIHN0b3JlLmNyZWF0ZUluZGV4KCdpbmRleCcsICdrZXlwYXRoJykK
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL3RyYW5zYWN0aW9uLWFm
dGVyLWNsb3NlLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL3Ry
YW5zYWN0aW9uLWFmdGVyLWNsb3NlLWV4cGVjdGVkLnR4dAppbmRleCBhZWZhZTEyMWRiOTM0NzY5
OWRkMTdlZDNiZGFmMmY3MjM3OWE0ZmRkLi43OGY4YmIwYWY1NjdiYWNlMGQyMTlkNzI2ODliMjE2
N2VlMDlmZGFlIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi90cmFu
c2FjdGlvbi1hZnRlci1jbG9zZS1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvc3RvcmFn
ZS9pbmRleGVkZGIvdHJhbnNhY3Rpb24tYWZ0ZXItY2xvc2UtZXhwZWN0ZWQudHh0CkBAIC01LDEx
ICs1LDEwIEBAIE9uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVz
c2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFCiAKIGluZGV4ZWREQiA9IHNlbGYuaW5k
ZXhlZERCIHx8IHNlbGYud2Via2l0SW5kZXhlZERCIHx8IHNlbGYubW96SW5kZXhlZERCIHx8IHNl
bGYubXNJbmRleGVkREIgfHwgc2VsZi5PSW5kZXhlZERCOwogCi1pbmRleGVkREIub3BlbigndHJh
bnNhY3Rpb24tYWZ0ZXItY2xvc2UnKQotb3BlblN1Y2Nlc3MoKToKLWRiID0gZXZlbnQudGFyZ2V0
LnJlc3VsdAotcmVxdWVzdCA9IGRiLnNldFZlcnNpb24oJ3ZlcnNpb24gMScpCi1EZWxldGVkIGFs
bCBvYmplY3Qgc3RvcmVzLgorZGJuYW1lID0gc2VsZi5sb2NhdGlvbi5wYXRobmFtZQoraW5kZXhl
ZERCLmRlbGV0ZURhdGFiYXNlKGRibmFtZSkKK2luZGV4ZWREQi5vcGVuKGRibmFtZSkKK2RiLnNl
dFZlcnNpb24oJzEnKQogc3RvcmUgPSBkYi5jcmVhdGVPYmplY3RTdG9yZSgnc3RvcmUnKQogcmVx
dWVzdCA9IHN0b3JlLnB1dCgneCcsICd5JykKIFBBU1MgUHV0IHN1Y2Nlc3MKQEAgLTIzLDcgKzIy
LDcgQEAgUEFTUyBjb2RlIGlzIERPTUV4Y2VwdGlvbi5JTlZBTElEX1NUQVRFX0VSUgogUEFTUyBl
bmFtZSBpcyAnSW52YWxpZFN0YXRlRXJyb3InCiAKIHZlcmlmeSB0aGF0IHdlIGNhbiByZW9wZW4g
dGhlIGRiIGFmdGVyIGNhbGxpbmcgY2xvc2UKLWluZGV4ZWREQi5vcGVuKCd0cmFuc2FjdGlvbi1h
ZnRlci1jbG9zZScpCitpbmRleGVkREIub3BlbihkYi5uYW1lKQogc2Vjb25kX2RiID0gZXZlbnQu
dGFyZ2V0LnJlc3VsdAogY3VycmVudFRyYW5zYWN0aW9uID0gc2Vjb25kX2RiLnRyYW5zYWN0aW9u
KFsnc3RvcmUnXSwgJ3JlYWR3cml0ZScpCiByZXF1ZXN0ID0gc3RvcmUucHV0KCcxJywgJzInKQpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvdHJhbnNhY3Rpb24tYW5k
LW9iamVjdHN0b3JlLWNhbGxzLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5k
ZXhlZGRiL3RyYW5zYWN0aW9uLWFuZC1vYmplY3RzdG9yZS1jYWxscy1leHBlY3RlZC50eHQKaW5k
ZXggNDFkZWM4NjYzZjE4MzViYjk3YmM1ZmQ4NTg2MjQ5OWM5M2Y1NDkxOC4uMjk1ZGIxOGFmNWYy
YjI2YzVmY2UyMjYzZDBhYmZkM2YxZmQwYmNjNCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvc3Rv
cmFnZS9pbmRleGVkZGIvdHJhbnNhY3Rpb24tYW5kLW9iamVjdHN0b3JlLWNhbGxzLWV4cGVjdGVk
LnR4dAorKysgYi9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi90cmFuc2FjdGlvbi1hbmQt
b2JqZWN0c3RvcmUtY2FsbHMtZXhwZWN0ZWQudHh0CkBAIC01LDE2ICs1LDEzIEBAIE9uIHN1Y2Nl
c3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5
ICJURVNUIENPTVBMRVRFCiAKIGluZGV4ZWREQiA9IHNlbGYuaW5kZXhlZERCIHx8IHNlbGYud2Vi
a2l0SW5kZXhlZERCIHx8IHNlbGYubW96SW5kZXhlZERCIHx8IHNlbGYubXNJbmRleGVkREIgfHwg
c2VsZi5PSW5kZXhlZERCOwogCi1pbmRleGVkREIub3BlbigndHJhbnNhY3Rpb24tYW5kLW9iamVj
dHN0b3JlLWNhbGxzJykKLWRiID0gZXZlbnQudGFyZ2V0LnJlc3VsdAotcmVzdWx0ID0gZGIuc2V0
VmVyc2lvbigndmVyc2lvbiAxJykKLXRyYW5zID0gZXZlbnQudGFyZ2V0LnJlc3VsdAotRGVsZXRl
ZCBhbGwgb2JqZWN0IHN0b3Jlcy4KK2RibmFtZSA9IHNlbGYubG9jYXRpb24ucGF0aG5hbWUKK2lu
ZGV4ZWREQi5kZWxldGVEYXRhYmFzZShkYm5hbWUpCitpbmRleGVkREIub3BlbihkYm5hbWUpCitk
Yi5zZXRWZXJzaW9uKCcxJykKIGRiLmNyZWF0ZU9iamVjdFN0b3JlKCdhJykKIGRiLmNyZWF0ZU9i
amVjdFN0b3JlKCdiJykKIGRiLmNyZWF0ZU9iamVjdFN0b3JlKCdzdG9yZScpLmNyZWF0ZUluZGV4
KCdpbmRleCcsICdzb21lX3BhdGgnKQotdHJhbnMuYWRkRXZlbnRMaXN0ZW5lcignY29tcGxldGUn
LCBjcmVhdGVkLCB0cnVlKQotCiB0cmFucyA9IGRiLnRyYW5zYWN0aW9uKFsnYSddKQogdHJhbnMu
b2JqZWN0U3RvcmUoJ2EnKQogRXhwZWN0aW5nIGV4Y2VwdGlvbiBmcm9tIHRyYW5zLm9iamVjdFN0
b3JlKCdiJykKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL3RyYW5z
YWN0aW9uLWNvbXBsZXRlLXdpdGgtanMtcmVjdXJzaW9uLWNyb3NzLWZyYW1lLWV4cGVjdGVkLnR4
dCBiL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL3RyYW5zYWN0aW9uLWNvbXBsZXRlLXdp
dGgtanMtcmVjdXJzaW9uLWNyb3NzLWZyYW1lLWV4cGVjdGVkLnR4dAppbmRleCBiOGUyNzE1OWRi
OTFlOTQ1YTIyZGRiMWVjNDA3ODE1ODgyYjJiZDljLi5iY2YzNDc5NDM5N2Y1MzkwZTAyYzg4YzBk
MTU5NTM1NGRlYTcyMDAzIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRk
Yi90cmFuc2FjdGlvbi1jb21wbGV0ZS13aXRoLWpzLXJlY3Vyc2lvbi1jcm9zcy1mcmFtZS1leHBl
Y3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvdHJhbnNhY3Rpb24t
Y29tcGxldGUtd2l0aC1qcy1yZWN1cnNpb24tY3Jvc3MtZnJhbWUtZXhwZWN0ZWQudHh0CkBAIC01
LDEwICs1LDEwIEBAIE9uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIg
bWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFCiAKIGluZGV4ZWREQiA9IHNlbGYu
aW5kZXhlZERCIHx8IHNlbGYud2Via2l0SW5kZXhlZERCIHx8IHNlbGYubW96SW5kZXhlZERCIHx8
IHNlbGYubXNJbmRleGVkREIgfHwgc2VsZi5PSW5kZXhlZERCOwogCi1pbmRleGVkREIuZGVsZXRl
RGF0YWJhc2UoJ3RyYW5zYWN0aW9uLWNvbXBsZXRlLXdpdGgtanMtcmVjdXJzaW9uLWNyb3NzLWZy
YW1lJykKLWluZGV4ZWREQi5vcGVuKCd0cmFuc2FjdGlvbi1jb21wbGV0ZS13aXRoLWpzLXJlY3Vy
c2lvbi1jcm9zcy1mcmFtZScpCi1kYiA9IGV2ZW50LnRhcmdldC5yZXN1bHQKLWRiLnNldFZlcnNp
b24oJ25ldyB2ZXJzaW9uJykKK2RibmFtZSA9IHNlbGYubG9jYXRpb24ucGF0aG5hbWUKK2luZGV4
ZWREQi5kZWxldGVEYXRhYmFzZShkYm5hbWUpCitpbmRleGVkREIub3BlbihkYm5hbWUpCitkYi5z
ZXRWZXJzaW9uKCcxJykKIHBlbmRpbmdUcmFuc2FjdGlvbiA9IGRiLnRyYW5zYWN0aW9uKFsnb2Jq
ZWN0U3RvcmUnXSwgJ3JlYWR3cml0ZScpCiBTdGFydCByZS1lbnRyYW50IEpTCiB0cmFuc2FjdGlv
biA9IGRiLnRyYW5zYWN0aW9uKFsnb2JqZWN0U3RvcmUnXSwgJ3JlYWR3cml0ZScpCmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi90cmFuc2FjdGlvbi1jb21wbGV0ZS13
aXRoLWpzLXJlY3Vyc2lvbi1jcm9zcy1mcmFtZS5odG1sIGIvTGF5b3V0VGVzdHMvc3RvcmFnZS9p
bmRleGVkZGIvdHJhbnNhY3Rpb24tY29tcGxldGUtd2l0aC1qcy1yZWN1cnNpb24tY3Jvc3MtZnJh
bWUuaHRtbAppbmRleCBjYWVhNzM1Mjk2YmMzMzJlNWFjZWQzNTc5MjFkMGQ3MGZjZmMzMWVkLi41
ODAyMTVhYzFjYjhlZTQ5NDgzOTA0NjNkNmMzMWNjZTA0YmRlOWI1IDEwMDY0NAotLS0gYS9MYXlv
dXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi90cmFuc2FjdGlvbi1jb21wbGV0ZS13aXRoLWpzLXJl
Y3Vyc2lvbi1jcm9zcy1mcmFtZS5odG1sCisrKyBiL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhl
ZGRiL3RyYW5zYWN0aW9uLWNvbXBsZXRlLXdpdGgtanMtcmVjdXJzaW9uLWNyb3NzLWZyYW1lLmh0
bWwKQEAgLTE3LDI3ICsxNyw4IEBAIHZhciBib2R5ID0gZG9jdW1lbnQuZ2V0RWxlbWVudHNCeVRh
Z05hbWUoImlmcmFtZSIpWzBdLmNvbnRlbnREb2N1bWVudC5ib2R5OwogCiBkZXNjcmlwdGlvbigi
VGVzdCB0aGF0IHBlbmRpbmcgdHJhbnNhY3Rpb25zIGFyZSBub3QgY29tcGxldGVkIGR1cmluZyBy
ZWN1cnNpdmUgSlMgY2FsbHMgdW50aWwgYWxsIEpTIChpbiBhbGwgZnJhbWVzKSBpcyBmaW5pc2hl
ZC4iKTsKIAotZnVuY3Rpb24gc2V0dXAoKSB7Ci0gICAgcmVtb3ZlVmVuZG9yUHJlZml4ZXMoKTsK
LSAgICByZXF1ZXN0ID0gZXZhbEFuZExvZygiaW5kZXhlZERCLmRlbGV0ZURhdGFiYXNlKCd0cmFu
c2FjdGlvbi1jb21wbGV0ZS13aXRoLWpzLXJlY3Vyc2lvbi1jcm9zcy1mcmFtZScpIik7Ci0gICAg
cmVxdWVzdC5vbmVycm9yID0gdW5leHBlY3RlZEVycm9yQ2FsbGJhY2s7Ci0gICAgcmVxdWVzdC5v
bnN1Y2Nlc3MgPSBmdW5jdGlvbiAoKSB7Ci0gICAgICAgIHJlcXVlc3QgPSBldmFsQW5kTG9nKCJp
bmRleGVkREIub3BlbigndHJhbnNhY3Rpb24tY29tcGxldGUtd2l0aC1qcy1yZWN1cnNpb24tY3Jv
c3MtZnJhbWUnKSIpOwotICAgICAgICByZXF1ZXN0Lm9uc3VjY2VzcyA9IHNldFZlcnNpb247Ci0g
ICAgICAgIHJlcXVlc3Qub25lcnJvciA9IHVuZXhwZWN0ZWRFcnJvckNhbGxiYWNrOwotICAgIH07
Ci19Ci0KLWZ1bmN0aW9uIHNldFZlcnNpb24oKSB7Ci0gICAgZGIgPSBldmFsQW5kTG9nKCJkYiA9
IGV2ZW50LnRhcmdldC5yZXN1bHQiKTsKLSAgICByZXF1ZXN0ID0gZXZhbEFuZExvZygiZGIuc2V0
VmVyc2lvbignbmV3IHZlcnNpb24nKSIpOwotICAgIHJlcXVlc3Qub25zdWNjZXNzID0gc2V0VmVy
c2lvblN1Y2Nlc3M7Ci0gICAgcmVxdWVzdC5vbmVycm9yID0gdW5leHBlY3RlZEVycm9yQ2FsbGJh
Y2s7Ci19Ci0KIGZ1bmN0aW9uIHNldFZlcnNpb25TdWNjZXNzKCkgewogICAgIHN0b3JlID0gZGIu
Y3JlYXRlT2JqZWN0U3RvcmUoJ29iamVjdFN0b3JlJywgbnVsbCk7Ci0gICAgZXZlbnQudGFyZ2V0
LnJlc3VsdC5vbmNvbXBsZXRlID0gY2xpY2s7CiB9CiAKIGZ1bmN0aW9uIGNsaWNrKCkgewpAQCAt
NjgsNyArNDksNyBAQCBmdW5jdGlvbiBjb21wbGV0ZUNhbGxiYWNrKCkKICAgICBmaW5pc2hKU1Rl
c3QoKTsKIH0KIAotc2V0dXAoKTsKK2luZGV4ZWREQlRlc3Qoc2V0VmVyc2lvblN1Y2Nlc3MsIGNs
aWNrKTsKIAogPC9zY3JpcHQ+CiA8c2NyaXB0IHNyYz0iLi4vLi4vZmFzdC9qcy9yZXNvdXJjZXMv
anMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3N0b3Jh
Z2UvaW5kZXhlZGRiL3RyYW5zYWN0aW9uLWNvbXBsZXRlLXdpdGgtanMtcmVjdXJzaW9uLWV4cGVj
dGVkLnR4dCBiL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL3RyYW5zYWN0aW9uLWNvbXBs
ZXRlLXdpdGgtanMtcmVjdXJzaW9uLWV4cGVjdGVkLnR4dAppbmRleCAwMzgzMDU2YTQzYTVhZmI4
MzM3NWNlNWJlODJhY2FjZGIxY2ZiYTNmLi40MGJkMDA3YTM5Zjg3N2YzOWU5Nzk3NGQ2MzkwZDlk
YzQ4NjFlMWU2IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi90cmFu
c2FjdGlvbi1jb21wbGV0ZS13aXRoLWpzLXJlY3Vyc2lvbi1leHBlY3RlZC50eHQKKysrIGIvTGF5
b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvdHJhbnNhY3Rpb24tY29tcGxldGUtd2l0aC1qcy1y
ZWN1cnNpb24tZXhwZWN0ZWQudHh0CkBAIC01LDEwICs1LDEwIEBAIE9uIHN1Y2Nlc3MsIHlvdSB3
aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENP
TVBMRVRFCiAKIGluZGV4ZWREQiA9IHNlbGYuaW5kZXhlZERCIHx8IHNlbGYud2Via2l0SW5kZXhl
ZERCIHx8IHNlbGYubW96SW5kZXhlZERCIHx8IHNlbGYubXNJbmRleGVkREIgfHwgc2VsZi5PSW5k
ZXhlZERCOwogCi1pbmRleGVkREIuZGVsZXRlRGF0YWJhc2UoJ3RyYW5zYWN0aW9uLWNvbXBsZXRl
LXdpdGgtanMtcmVjdXJzaW9uJykKLWluZGV4ZWREQi5vcGVuKCd0cmFuc2FjdGlvbi1jb21wbGV0
ZS13aXRoLWpzLXJlY3Vyc2lvbicpCi1kYiA9IGV2ZW50LnRhcmdldC5yZXN1bHQKLWRiLnNldFZl
cnNpb24oJ25ldyB2ZXJzaW9uJykKK2RibmFtZSA9IHNlbGYubG9jYXRpb24ucGF0aG5hbWUKK2lu
ZGV4ZWREQi5kZWxldGVEYXRhYmFzZShkYm5hbWUpCitpbmRleGVkREIub3BlbihkYm5hbWUpCitk
Yi5zZXRWZXJzaW9uKCcxJykKIHBlbmRpbmdUcmFuc2FjdGlvbiA9IGRiLnRyYW5zYWN0aW9uKFsn
b2JqZWN0U3RvcmUnXSwgJ3JlYWR3cml0ZScpCiBTdGFydCByZS1lbnRyYW50IEpTCiB0cmFuc2Fj
dGlvbiA9IGRiLnRyYW5zYWN0aW9uKFsnb2JqZWN0U3RvcmUnXSwgJ3JlYWR3cml0ZScpCmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi90cmFuc2FjdGlvbi1jb21wbGV0
ZS13aXRoLWpzLXJlY3Vyc2lvbi5odG1sIGIvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIv
dHJhbnNhY3Rpb24tY29tcGxldGUtd2l0aC1qcy1yZWN1cnNpb24uaHRtbAppbmRleCA4NGIwYzM4
OTZkMWJhYjNkZjY0MDJhNTI4YWJmNjgzYTQ5NjZkZGY2Li5iMDZmMDFkYjE3NjhjNTQ3NmQ4Y2Ri
ZmFiNDkyODRjMWNkMDQ5MWNiIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4
ZWRkYi90cmFuc2FjdGlvbi1jb21wbGV0ZS13aXRoLWpzLXJlY3Vyc2lvbi5odG1sCisrKyBiL0xh
eW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL3RyYW5zYWN0aW9uLWNvbXBsZXRlLXdpdGgtanMt
cmVjdXJzaW9uLmh0bWwKQEAgLTEzLDI5ICsxMyw5IEBAIHZhciBib2R5ID0gZG9jdW1lbnQuZ2V0
RWxlbWVudHNCeVRhZ05hbWUoImJvZHkiKVswXTsKIAogZGVzY3JpcHRpb24oIlRlc3QgdGhhdCBw
ZW5kaW5nIHRyYW5zYWN0aW9ucyBhcmUgbm90IGNvbXBsZXRlZCBkdXJpbmcgcmVjdXJzaXZlIEpT
IGNhbGxzIHVudGlsIGFsbCBKUyBpcyBmaW5pc2hlZC4iKTsKIAotZnVuY3Rpb24gc2V0dXAoKSB7
Ci0gICAgcmVtb3ZlVmVuZG9yUHJlZml4ZXMoKTsKLQotICAgIHJlcXVlc3QgPSBldmFsQW5kTG9n
KCJpbmRleGVkREIuZGVsZXRlRGF0YWJhc2UoJ3RyYW5zYWN0aW9uLWNvbXBsZXRlLXdpdGgtanMt
cmVjdXJzaW9uJykiKTsKLSAgICByZXF1ZXN0Lm9uZXJyb3IgPSB1bmV4cGVjdGVkRXJyb3JDYWxs
YmFjazsKLSAgICByZXF1ZXN0Lm9uc3VjY2VzcyA9IGZ1bmN0aW9uICgpIHsKLSAgICAgICAgcmVx
dWVzdCA9IGV2YWxBbmRMb2coImluZGV4ZWREQi5vcGVuKCd0cmFuc2FjdGlvbi1jb21wbGV0ZS13
aXRoLWpzLXJlY3Vyc2lvbicpIik7Ci0gICAgICAgIHJlcXVlc3Qub25zdWNjZXNzID0gc2V0VmVy
c2lvbjsKLSAgICAgICAgcmVxdWVzdC5vbmVycm9yID0gdW5leHBlY3RlZEVycm9yQ2FsbGJhY2s7
Ci0gICAgfTsKLX0KLQotZnVuY3Rpb24gc2V0VmVyc2lvbigpIHsKLSAgICBkYiA9IGV2YWxBbmRM
b2coImRiID0gZXZlbnQudGFyZ2V0LnJlc3VsdCIpOwotICAgIHJlcXVlc3QgPSBldmFsQW5kTG9n
KCJkYi5zZXRWZXJzaW9uKCduZXcgdmVyc2lvbicpIik7Ci0gICAgcmVxdWVzdC5vbnN1Y2Nlc3Mg
PSBzZXRWZXJzaW9uU3VjY2VzczsKLSAgICByZXF1ZXN0Lm9uZXJyb3IgPSB1bmV4cGVjdGVkRXJy
b3JDYWxsYmFjazsKLX0KLQogZnVuY3Rpb24gc2V0VmVyc2lvblN1Y2Nlc3MoKQogewogICAgIHN0
b3JlID0gZGIuY3JlYXRlT2JqZWN0U3RvcmUoJ29iamVjdFN0b3JlJywgbnVsbCk7Ci0gICAgZXZl
bnQudGFyZ2V0LnJlc3VsdC5vbmNvbXBsZXRlID0gY2xpY2s7CiB9CiAKIGZ1bmN0aW9uIGNsaWNr
KCkKQEAgLTY3LDcgKzQ3LDcgQEAgZnVuY3Rpb24gY29tcGxldGVDYWxsYmFjaygpCiAgICAgZmlu
aXNoSlNUZXN0KCk7CiB9CiAKLXNldHVwKCk7CitpbmRleGVkREJUZXN0KHNldFZlcnNpb25TdWNj
ZXNzLCBjbGljayk7CiAKIDwvc2NyaXB0PgogPHNjcmlwdCBzcmM9Ii4uLy4uL2Zhc3QvanMvcmVz
b3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9zdG9yYWdlL2luZGV4ZWRkYi90cmFuc2FjdGlvbi1jb21wbGV0ZS13b3JrZXJzLWV4cGVjdGVk
LnR4dCBiL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL3RyYW5zYWN0aW9uLWNvbXBsZXRl
LXdvcmtlcnMtZXhwZWN0ZWQudHh0CmluZGV4IGY0M2Q5ZjhmNDU1MmY4NDkzYWFiZTA0NjBkZTc1
MTIwODk2OTg1YWEuLmE1M2Y3NGJlYzRkYTVmOGY4MzY4ZjE4Mzk1MWRjMjcxNTg0N2FkNGMgMTAw
NjQ0Ci0tLSBhL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL3RyYW5zYWN0aW9uLWNvbXBs
ZXRlLXdvcmtlcnMtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhl
ZGRiL3RyYW5zYWN0aW9uLWNvbXBsZXRlLXdvcmtlcnMtZXhwZWN0ZWQudHh0CkBAIC02LDExICs2
LDEwIEBAIE9uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2Fn
ZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFCiBTdGFydGluZyB3b3JrZXI6IHJlc291cmNl
cy90cmFuc2FjdGlvbi1jb21wbGV0ZS13b3JrZXJzLmpzCiBbV29ya2VyXSBpbmRleGVkREIgPSBz
ZWxmLmluZGV4ZWREQiB8fCBzZWxmLndlYmtpdEluZGV4ZWREQiB8fCBzZWxmLm1vekluZGV4ZWRE
QiB8fCBzZWxmLm1zSW5kZXhlZERCIHx8IHNlbGYuT0luZGV4ZWREQjsKIFtXb3JrZXJdIAotW1dv
cmtlcl0gcmVxdWVzdCA9IGluZGV4ZWREQi5vcGVuKCd0cmFuc2FjdGlvbi1jb21wbGV0ZS13b3Jr
ZXInKQotW1dvcmtlcl0gZGIgPSByZXF1ZXN0LnJlc3VsdAotW1dvcmtlcl0gcmVxdWVzdCA9IGRi
LnNldFZlcnNpb24oJzEnKQotW1dvcmtlcl0gRGVsZXRlZCBhbGwgb2JqZWN0IHN0b3Jlcy4KLVtX
b3JrZXJdIHRyYW5zID0gcmVxdWVzdC5yZXN1bHQKK1tXb3JrZXJdIGRibmFtZSA9IHNlbGYubG9j
YXRpb24ucGF0aG5hbWUKK1tXb3JrZXJdIGluZGV4ZWREQi5kZWxldGVEYXRhYmFzZShkYm5hbWUp
CitbV29ya2VyXSBpbmRleGVkREIub3BlbihkYm5hbWUpCitbV29ya2VyXSBkYi5zZXRWZXJzaW9u
KCcxJykKIFtXb3JrZXJdIGRiLmNyZWF0ZU9iamVjdFN0b3JlKCdzdG9yZScpCiBbV29ya2VyXSAK
IFtXb3JrZXJdIGNyZWF0ZVRyYW5zYWN0aW9uKCk6CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9z
dG9yYWdlL2luZGV4ZWRkYi90cmFuc2FjdGlvbi1jcmFzaC1vbi1hYm9ydC1leHBlY3RlZC50eHQg
Yi9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi90cmFuc2FjdGlvbi1jcmFzaC1vbi1hYm9y
dC1leHBlY3RlZC50eHQKaW5kZXggZjIxMzQ4OWE3MGJiOWE2ZDdkNzdhNzUyNDMzNjY0Y2NhZTU2
NWZjZS4uNzc2ZmNmNGRiMjMxMTI2NTlmMjI5N2EzY2NmNjExNDMyODU5NDhjZiAxMDA2NDQKLS0t
IGEvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvdHJhbnNhY3Rpb24tY3Jhc2gtb24tYWJv
cnQtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL3RyYW5z
YWN0aW9uLWNyYXNoLW9uLWFib3J0LWV4cGVjdGVkLnR4dApAQCAtNSwxMCArNSwxMCBAQCBPbiBz
dWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dl
ZCBieSAiVEVTVCBDT01QTEVURQogCiBpbmRleGVkREIgPSBzZWxmLmluZGV4ZWREQiB8fCBzZWxm
LndlYmtpdEluZGV4ZWREQiB8fCBzZWxmLm1vekluZGV4ZWREQiB8fCBzZWxmLm1zSW5kZXhlZERC
IHx8IHNlbGYuT0luZGV4ZWREQjsKIAotaW5kZXhlZERCLm9wZW4oJ3RyYW5zYWN0aW9uLWNyYXNo
LW9uLWFib3J0JykKLW9wZW5TdWNjZXNzKCk6Ci1kYiA9IGV2ZW50LnRhcmdldC5yZXN1bHQKLWRi
LnNldFZlcnNpb24oJzEuMCcpCitkYm5hbWUgPSBzZWxmLmxvY2F0aW9uLnBhdGhuYW1lCitpbmRl
eGVkREIuZGVsZXRlRGF0YWJhc2UoZGJuYW1lKQoraW5kZXhlZERCLm9wZW4oZGJuYW1lKQorZGIu
c2V0VmVyc2lvbignMScpCiBkYi5jcmVhdGVPYmplY3RTdG9yZSgnZm9vJykKIGRiLnRyYW5zYWN0
aW9uKCdmb28nKQogc2VsZi5nYygpCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9zdG9yYWdlL2lu
ZGV4ZWRkYi90cmFuc2FjdGlvbi1lcnJvci1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9zdG9y
YWdlL2luZGV4ZWRkYi90cmFuc2FjdGlvbi1lcnJvci1leHBlY3RlZC50eHQKaW5kZXggYjRmYmE5
YWRlOTQ0YzkwZmI1ZjVjOWVjZDcwMjdjNzNhOGVjZmJiMy4uNzU1NGNjYjVhZGYyOTIyYTljYTEz
M2Y5MDk1ZGVmYWU5YTdiMGYwMyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRl
eGVkZGIvdHJhbnNhY3Rpb24tZXJyb3ItZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL3N0
b3JhZ2UvaW5kZXhlZGRiL3RyYW5zYWN0aW9uLWVycm9yLWV4cGVjdGVkLnR4dApAQCAtMSw0ICsx
LDQgQEAKLUNPTlNPTEUgTUVTU0FHRTogbGluZSA5MjogVW5jYXVnaHQgRXJyb3I6IFRoaXMgc2hv
dWxkICpOT1QqIGJlIGNhdWdodCEKK0NPTlNPTEUgTUVTU0FHRTogbGluZSA3MTogVW5jYXVnaHQg
RXJyb3I6IFRoaXMgc2hvdWxkICpOT1QqIGJlIGNhdWdodCEKIFRlc3QgSURCVHJhbnNhY3Rpb24u
ZXJyb3IgY2FzZXMuCiAKIE9uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFT
UyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KQEAgLTksOSArOSw3IEBA
IGluZGV4ZWREQiA9IHNlbGYuaW5kZXhlZERCIHx8IHNlbGYud2Via2l0SW5kZXhlZERCIHx8IHNl
bGYubW96SW5kZXhlZERCIHx8IHNlbGYuCiBkYm5hbWUgPSBzZWxmLmxvY2F0aW9uLnBhdGhuYW1l
CiBpbmRleGVkREIuZGVsZXRlRGF0YWJhc2UoZGJuYW1lKQogaW5kZXhlZERCLm9wZW4oZGJuYW1l
KQotZGIgPSByZXF1ZXN0LnJlc3VsdAogZGIuc2V0VmVyc2lvbignMScpCi10cmFucyA9IGV2ZW50
LnRhcmdldC5yZXN1bHQKIHN0b3JlID0gZGIuY3JlYXRlT2JqZWN0U3RvcmUoJ3N0b3JlTmFtZScp
CiBzdG9yZS5hZGQoJ3ZhbHVlJywgJ2tleScpCiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3N0
b3JhZ2UvaW5kZXhlZGRiL3RyYW5zYWN0aW9uLWV2ZW50LXByb3BhZ2F0aW9uLWV4cGVjdGVkLnR4
dCBiL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL3RyYW5zYWN0aW9uLWV2ZW50LXByb3Bh
Z2F0aW9uLWV4cGVjdGVkLnR4dAppbmRleCBiYmJlYzFhNzVlYjEwMDY3YmIxNWQ4NjJhYzk1MzJm
MjcyOGIwNGYxLi41N2JhMzgxMGQ4OGY5YzY3ZjgxOTdiODY5NmMxNzE1NjE0YjRkNWYzIDEwMDY0
NAotLS0gYS9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi90cmFuc2FjdGlvbi1ldmVudC1w
cm9wYWdhdGlvbi1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVk
ZGIvdHJhbnNhY3Rpb24tZXZlbnQtcHJvcGFnYXRpb24tZXhwZWN0ZWQudHh0CkBAIC01LDEzICs1
LDEwIEBAIE9uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2Fn
ZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFCiAKIGluZGV4ZWREQiA9IHNlbGYuaW5kZXhl
ZERCIHx8IHNlbGYud2Via2l0SW5kZXhlZERCIHx8IHNlbGYubW96SW5kZXhlZERCIHx8IHNlbGYu
bXNJbmRleGVkREIgfHwgc2VsZi5PSW5kZXhlZERCOwogCi1pbmRleGVkREIub3BlbigndHJhbnNh
Y3Rpb24tZXZlbnQtcHJvcGFnYXRpb24nKQotZGIgPSBldmVudC50YXJnZXQucmVzdWx0Ci1kYi5z
ZXRWZXJzaW9uKCduZXcgdmVyc2lvbicpCi10cmFucyA9IGV2ZW50LnRhcmdldC5yZXN1bHQKLVBB
U1MgdHJhbnMgaXMgbm9uLW51bGwuCi10cmFucy5vbmNvbXBsZXRlID0gc3RhcnRUZXN0Ci1EZWxl
dGVkIGFsbCBvYmplY3Qgc3RvcmVzLgorZGJuYW1lID0gc2VsZi5sb2NhdGlvbi5wYXRobmFtZQor
aW5kZXhlZERCLmRlbGV0ZURhdGFiYXNlKGRibmFtZSkKK2luZGV4ZWREQi5vcGVuKGRibmFtZSkK
K2RiLnNldFZlcnNpb24oJzEnKQogc3RvcmUgPSBkYi5jcmVhdGVPYmplY3RTdG9yZSgnc3RvcmVO
YW1lJywgbnVsbCkKIHN0b3JlLmFkZCh7eDogJ3ZhbHVlJywgeTogJ3p6eid9LCAna2V5JykKIFZl
cmlmaW5nIGFib3J0CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi90
cmFuc2FjdGlvbi1yZWFkLW9ubHktZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvc3RvcmFnZS9p
bmRleGVkZGIvdHJhbnNhY3Rpb24tcmVhZC1vbmx5LWV4cGVjdGVkLnR4dAppbmRleCBjNjA0NjEy
NGE1OGM1OTQ5MWFlODQ1OGQyZGM3MThkODllMjEwNzRlLi45NDkzNmIxZWE2NzdjYzk4YmI1ZmFi
ODIwNDYxMDY1MjFlYzllMGMwIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4
ZWRkYi90cmFuc2FjdGlvbi1yZWFkLW9ubHktZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3Rz
L3N0b3JhZ2UvaW5kZXhlZGRiL3RyYW5zYWN0aW9uLXJlYWQtb25seS1leHBlY3RlZC50eHQKQEAg
LTUsMTEgKzUsMTAgQEAgT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNT
IiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUKIAogaW5kZXhlZERCID0gc2Vs
Zi5pbmRleGVkREIgfHwgc2VsZi53ZWJraXRJbmRleGVkREIgfHwgc2VsZi5tb3pJbmRleGVkREIg
fHwgc2VsZi5tc0luZGV4ZWREQiB8fCBzZWxmLk9JbmRleGVkREI7CiAKLWluZGV4ZWREQi5vcGVu
KCd0cmFuc2FjdGlvbi1yZWFkLW9ubHknKQotb3BlblN1Y2Nlc3MoKToKLWRiID0gZXZlbnQudGFy
Z2V0LnJlc3VsdAotcmVzdWx0ID0gZGIuc2V0VmVyc2lvbigndmVyc2lvbiAxJykKLURlbGV0ZWQg
YWxsIG9iamVjdCBzdG9yZXMuCitkYm5hbWUgPSBzZWxmLmxvY2F0aW9uLnBhdGhuYW1lCitpbmRl
eGVkREIuZGVsZXRlRGF0YWJhc2UoZGJuYW1lKQoraW5kZXhlZERCLm9wZW4oZGJuYW1lKQorZGIu
c2V0VmVyc2lvbignMScpCiBzdG9yZSA9IGRiLmNyZWF0ZU9iamVjdFN0b3JlKCdzdG9yZScpCiBz
dG9yZS5wdXQoJ3gnLCAneScpCiB0cmFucyA9IGRiLnRyYW5zYWN0aW9uKCdzdG9yZScpCmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi90cmFuc2FjdGlvbi1yb2xsYmFj
ay1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi90cmFuc2FjdGlv
bi1yb2xsYmFjay1leHBlY3RlZC50eHQKaW5kZXggNGFiOWRhMGY2NzAyMTc3ZTU4MDhkM2FhODAw
ODIwMzllMjViNjVjZC4uMWU0M2Y0NTI3ZDFiZDU0YzE4NDJkMmEwYmRhZDRlMTc2NTZlZmYzMCAx
MDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvdHJhbnNhY3Rpb24tcm9s
bGJhY2stZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL3Ry
YW5zYWN0aW9uLXJvbGxiYWNrLWV4cGVjdGVkLnR4dApAQCAtNSwxMyArNSwxMSBAQCBPbiBzdWNj
ZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBi
eSAiVEVTVCBDT01QTEVURQogCiBpbmRleGVkREIgPSBzZWxmLmluZGV4ZWREQiB8fCBzZWxmLndl
YmtpdEluZGV4ZWREQiB8fCBzZWxmLm1vekluZGV4ZWREQiB8fCBzZWxmLm1zSW5kZXhlZERCIHx8
IHNlbGYuT0luZGV4ZWREQjsKIAotaW5kZXhlZERCLm9wZW4oJ3RyYW5zYWN0aW9uLXJvbGxiYWNr
JykKLW9wZW5TdWNjZXNzKCk6Ci1kYiA9IGV2ZW50LnRhcmdldC5yZXN1bHQKLXJlcXVlc3QgPSBk
Yi5zZXRWZXJzaW9uKCd2ZXJzaW9uIDEnKQorZGJuYW1lID0gc2VsZi5sb2NhdGlvbi5wYXRobmFt
ZQoraW5kZXhlZERCLmRlbGV0ZURhdGFiYXNlKGRibmFtZSkKK2luZGV4ZWREQi5vcGVuKGRibmFt
ZSkKK2RiLnNldFZlcnNpb24oJzEnKQogY2xlYW5EYXRhYmFzZSgpOgotdHJhbnNhY3Rpb24gPSBl
dmVudC50YXJnZXQucmVzdWx0Ci1EZWxldGVkIGFsbCBvYmplY3Qgc3RvcmVzLgogZGIuY3JlYXRl
T2JqZWN0U3RvcmUoJ215T2JqZWN0U3RvcmUnKQogUEFTUyBkYi5vYmplY3RTdG9yZU5hbWVzLmxl
bmd0aCBpcyAxCiBzZXRWZXJzaW9uQ29tcGxldGUoKToKZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L3N0b3JhZ2UvaW5kZXhlZGRiL3RyYW5zYWN0aW9uLXN0b3JlTmFtZXMtcmVxdWlyZWQtZXhwZWN0
ZWQudHh0IGIvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvdHJhbnNhY3Rpb24tc3RvcmVO
YW1lcy1yZXF1aXJlZC1leHBlY3RlZC50eHQKaW5kZXggMmExN2M3YmM3MTEwMTVjZjZjNWQ3N2U0
Mzg0OWQ0NzI2ZDI4MWNkYy4uY2NjMjdmYzVhM2E0MTFmNGRiMDQ2NmQ0NjMxNjc4MTNlNDE0YjBi
ZiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvdHJhbnNhY3Rpb24t
c3RvcmVOYW1lcy1yZXF1aXJlZC1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvc3RvcmFn
ZS9pbmRleGVkZGIvdHJhbnNhY3Rpb24tc3RvcmVOYW1lcy1yZXF1aXJlZC1leHBlY3RlZC50eHQK
QEAgLTUsMTEgKzUsMTEgQEAgT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQ
QVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUKIAogaW5kZXhlZERCID0g
c2VsZi5pbmRleGVkREIgfHwgc2VsZi53ZWJraXRJbmRleGVkREIgfHwgc2VsZi5tb3pJbmRleGVk
REIgfHwgc2VsZi5tc0luZGV4ZWREQiB8fCBzZWxmLk9JbmRleGVkREI7CiAKLWluZGV4ZWREQi5v
cGVuKG5hbWUpCi1kYiA9IGV2ZW50LnRhcmdldC5yZXN1bHQKLXJlcXVlc3QgPSBkYi5zZXRWZXJz
aW9uKCcxJykKLURlbGV0ZWQgYWxsIG9iamVjdCBzdG9yZXMuCi1QQVNTIGRiLnRyYW5zYWN0aW9u
KCk7IHRocmV3IGV4Y2VwdGlvbiBUeXBlRXJyb3I6IFR5cGUgZXJyb3IuCitkYm5hbWUgPSBzZWxm
LmxvY2F0aW9uLnBhdGhuYW1lCitpbmRleGVkREIuZGVsZXRlRGF0YWJhc2UoZGJuYW1lKQoraW5k
ZXhlZERCLm9wZW4oZGJuYW1lKQorZGIuc2V0VmVyc2lvbignMScpCitQQVNTIGRiLnRyYW5zYWN0
aW9uKCkgdGhyZXcgZXhjZXB0aW9uIFR5cGVFcnJvcjogVHlwZSBlcnJvci4KIFBBU1Mgc3VjY2Vz
c2Z1bGx5UGFyc2VkIGlzIHRydWUKIAogVEVTVCBDT01QTEVURQpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvdmFsdWUtdW5kZWZpbmVkLWV4cGVjdGVkLnR4dCBiL0xh
eW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL3ZhbHVlLXVuZGVmaW5lZC1leHBlY3RlZC50eHQK
aW5kZXggNmViYzdiNDc0MmEwYTE5N2FlYWYzMjUyYjdiN2Q5ZjIzYjNhM2VhMS4uYjYwODM2ZTRm
ZjVjYzk4NjUzNjU2MzFiMjNlODA5MmE4MzRiZGExNiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMv
c3RvcmFnZS9pbmRleGVkZGIvdmFsdWUtdW5kZWZpbmVkLWV4cGVjdGVkLnR4dAorKysgYi9MYXlv
dXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi92YWx1ZS11bmRlZmluZWQtZXhwZWN0ZWQudHh0CkBA
IC01LDEwICs1LDEwIEBAIE9uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFT
UyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFCiAKIGluZGV4ZWREQiA9IHNl
bGYuaW5kZXhlZERCIHx8IHNlbGYud2Via2l0SW5kZXhlZERCIHx8IHNlbGYubW96SW5kZXhlZERC
IHx8IHNlbGYubXNJbmRleGVkREIgfHwgc2VsZi5PSW5kZXhlZERCOwogCi1pbmRleGVkREIub3Bl
bihuYW1lKQotZGIgPSBldmVudC50YXJnZXQucmVzdWx0Ci1yZXF1ZXN0ID0gZGIuc2V0VmVyc2lv
bignMScpCi1EZWxldGVkIGFsbCBvYmplY3Qgc3RvcmVzLgorZGJuYW1lID0gc2VsZi5sb2NhdGlv
bi5wYXRobmFtZQoraW5kZXhlZERCLmRlbGV0ZURhdGFiYXNlKGRibmFtZSkKK2luZGV4ZWREQi5v
cGVuKGRibmFtZSkKK2RiLnNldFZlcnNpb24oJzEnKQogb2JqZWN0U3RvcmUgPSBkYi5jcmVhdGVP
YmplY3RTdG9yZSgnZm9vJyk7CiByZXN1bHQgPSBvYmplY3RTdG9yZS5hZGQodW5kZWZpbmVkLCBJ
bmZpbml0eSk7CiByZXN1bHQgPSBvYmplY3RTdG9yZS5nZXQoSW5maW5pdHkpOwpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvdmFsdWVzLW9kZC10eXBlcy1leHBlY3Rl
ZC50eHQgYi9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi92YWx1ZXMtb2RkLXR5cGVzLWV4
cGVjdGVkLnR4dAppbmRleCA1NmY0NjFmMWM5NDliMGJjMDU1MTk0MmRlZjliN2M5NTEwYzIzM2Qw
Li42NmFhZmViNzM5MTZiZmUyNGJmZmIwMzBmM2JmNmE2ZWU3YWE1MzU3IDEwMDY0NAotLS0gYS9M
YXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi92YWx1ZXMtb2RkLXR5cGVzLWV4cGVjdGVkLnR4
dAorKysgYi9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi92YWx1ZXMtb2RkLXR5cGVzLWV4
cGVjdGVkLnR4dApAQCAtNSwxMCArNSwxMCBAQCBPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBz
ZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURQogCiBp
bmRleGVkREIgPSBzZWxmLmluZGV4ZWREQiB8fCBzZWxmLndlYmtpdEluZGV4ZWREQiB8fCBzZWxm
Lm1vekluZGV4ZWREQiB8fCBzZWxmLm1zSW5kZXhlZERCIHx8IHNlbGYuT0luZGV4ZWREQjsKIAot
aW5kZXhlZERCLm9wZW4obmFtZSkKLWRiID0gZXZlbnQudGFyZ2V0LnJlc3VsdAotcmVxdWVzdCA9
IGRiLnNldFZlcnNpb24oJzEnKQotRGVsZXRlZCBhbGwgb2JqZWN0IHN0b3Jlcy4KK2RibmFtZSA9
IHNlbGYubG9jYXRpb24ucGF0aG5hbWUKK2luZGV4ZWREQi5kZWxldGVEYXRhYmFzZShkYm5hbWUp
CitpbmRleGVkREIub3BlbihkYm5hbWUpCitkYi5zZXRWZXJzaW9uKCcxJykKIGRiLmNyZWF0ZU9i
amVjdFN0b3JlKCdmb28nLCB7YXV0b0luY3JlbWVudDogdHJ1ZX0pOwogYWRkaW5nIHJlZ2V4cCB2
YWx1ZQogb2JqZWN0U3RvcmUuYWRkKHZhbGlkVHlwZXNbbmV4dFRvQWRkXS52YWx1ZSkKQEAgLTE4
LDYgKzE4LDggQEAgYWRkaW5nIG9iamVjdCB2YWx1ZQogb2JqZWN0U3RvcmUuYWRkKHZhbGlkVHlw
ZXNbbmV4dFRvQWRkXS52YWx1ZSkKIGFkZGluZyBpbWFnZWRhdGEgdmFsdWUKIG9iamVjdFN0b3Jl
LmFkZCh2YWxpZFR5cGVzW25leHRUb0FkZF0udmFsdWUpCit0cmFucyA9IGRiLnRyYW5zYWN0aW9u
KCdmb28nKQorb2JqZWN0U3RvcmUgPSB0cmFucy5vYmplY3RTdG9yZSgnZm9vJykKIHJlcXVlc3Qg
PSBvYmplY3RTdG9yZS5vcGVuQ3Vyc29yKCk7CiBjdXJzb3IgPSBldmVudC50YXJnZXQucmVzdWx0
OwogUEFTUyBjdXJzb3IudmFsdWUudG9TdHJpbmcoKSBpcyB2YWxpZFR5cGVzW3ZhbHVlSW5kZXhd
LnZhbHVlLnRvU3RyaW5nKCkK
</data>

          </attachment>
      

    </bug>

</bugzilla>