<?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>176526</bug_id>
          
          <creation_ts>2017-09-07 08:43:37 -0700</creation_ts>
          <short_desc>Add support for builderNameToIDMap in BuildbotSyncer</short_desc>
          <delta_ts>2018-01-18 21:47:36 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>Tools / Tests</component>
          <version>Other</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>175969</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Aakash Jain">aakash_jain</reporter>
          <assigned_to name="Aakash Jain">aakash_jain</assigned_to>
          <cc>aakash_jain</cc>
    
    <cc>ap</cc>
    
    <cc>commit-queue</cc>
    
    <cc>dewei_zhu</cc>
    
    <cc>lforschler</cc>
    
    <cc>rniwa</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1346315</commentid>
    <comment_count>0</comment_count>
    <who name="Aakash Jain">aakash_jain</who>
    <bug_when>2017-09-07 08:43:37 -0700</bug_when>
    <thetext>As part of supporting Buildbot 0.9, we will need to fetch builderName to ID mapping. We should add support to handle this mapping in existing perf syncing scripts (without breaking any of the current functionality).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1346322</commentid>
    <comment_count>1</comment_count>
      <attachid>320117</attachid>
    <who name="Aakash Jain">aakash_jain</who>
    <bug_when>2017-09-07 08:55:38 -0700</bug_when>
    <thetext>Created attachment 320117
Proposed patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1346726</commentid>
    <comment_count>2</comment_count>
      <attachid>320117</attachid>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2017-09-07 23:12:25 -0700</bug_when>
    <thetext>Comment on attachment 320117
Proposed patch

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

&gt; Websites/perf.webkit.org/tools/js/buildbot-syncer.js:62
&gt; +        assert(builderNameToIDMap);

On my second thought, I don&apos;t think it makes much sense for BuildbotSyncer itself to have the map.
Each syncer can be associated with exactly one builder so we should instead add object.builderID or something.

&gt; Websites/perf.webkit.org/tools/js/buildbot-syncer.js:321
&gt;              if (!builderSyncer) {
&gt; -                builderSyncer = new BuildbotSyncer(remote, builderInfo, commonConfigurations);
&gt; +                builderSyncer = new BuildbotSyncer(remote, builderInfo, commonConfigurations, builderNameToIDMap);

A more important code to have here is to check that each builder we find appears in the mapping.
In fact, since one of the most common bugs we find in our configuration is that some builders in config json
are missing from buildbot, we should validate that each builder name appears in the map.

We should actually implement this validation for buildbot 0.8 using /json/builders/ for now.

&gt; Websites/perf.webkit.org/tools/js/buildbot-triggerable.js:27
&gt; +        this._builderNameToIDMap = {};

I don&apos;t think it makes sense for this map to be stored as an instance variable.
It&apos;s only used while constructing BuildbotSyncer objects.

&gt; Websites/perf.webkit.org/tools/js/buildbot-triggerable.js:33
&gt;          return new Promise((resolve, reject) =&gt; {

It should be a local variable here.
In fact, we should actually fetch /json/builders/ and verify that each builder name
that appear in the configuration file appears on buildbot.

&gt; Websites/perf.webkit.org/unit-tests/buildbot-syncer-tests.js:148
&gt; +    return {}

We need to do more testing than just returning an empty dictionary.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1347322</commentid>
    <comment_count>3</comment_count>
      <attachid>320117</attachid>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2017-09-10 17:29:34 -0700</bug_when>
    <thetext>Comment on attachment 320117
Proposed patch

r- for reasons I&apos;ve stated.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1369349</commentid>
    <comment_count>4</comment_count>
      <attachid>326308</attachid>
    <who name="Aakash Jain">aakash_jain</who>
    <bug_when>2017-11-07 23:12:54 -0800</bug_when>
    <thetext>Created attachment 326308
Updated patch

Incorporated review comments.

&gt; On my second thought, I don&apos;t think it makes much sense for BuildbotSyncer
&gt; itself to have the map.
&gt; Each syncer can be associated with exactly one builder so we should instead
&gt; add object.builderID or something.

Done. This information is now in object.builderID.


&gt; A more important code to have here is to check that each builder we find appears in the mapping.
&gt; In fact, since one of the most common bugs we find in our configuration is
&gt; that some builders in config json are missing from buildbot, we should validate that each builder name appears
&gt; in the map.
&gt; 
&gt; We should actually implement this validation for buildbot 0.8 using
&gt; /json/builders/ for now.

Implemented this validation, by fetching the builder list from buildbot 0.8 using /json/builders/ (for now) and asserting that the builder we found in config is present in Buildbot mapping.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1370553</commentid>
    <comment_count>5</comment_count>
      <attachid>326645</attachid>
    <who name="Aakash Jain">aakash_jain</who>
    <bug_when>2017-11-10 15:52:25 -0800</bug_when>
    <thetext>Created attachment 326645
Updated patch

Updated server-tests.

Added code to fetch builderNameToIDMap from both Buildbot 0.8 and 0.9. Currently using Buildbot 0.8 format. Switching to Buildbot 0.9 would be simple later on.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1372047</commentid>
    <comment_count>6</comment_count>
      <attachid>327001</attachid>
    <who name="Aakash Jain">aakash_jain</who>
    <bug_when>2017-11-15 11:29:45 -0800</bug_when>
    <thetext>Created attachment 327001
Updated patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1378268</commentid>
    <comment_count>7</comment_count>
      <attachid>327001</attachid>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2017-12-05 12:09:51 -0800</bug_when>
    <thetext>Comment on attachment 327001
Updated patch

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

&gt; Websites/perf.webkit.org/server-tests/tools-sync-buildbot-integration-tests.js:152
&gt; +        assert.equal(MockRemoteAPI.requests[0].method, &apos;GET&apos;);
&gt; +        assert.equal(MockRemoteAPI.requests[0].url, MockData.buildbotBuildersURL());
&gt; +        MockRemoteAPI.requests[0].resolve(MockData.mockBuildbotBuilders());

Use assertAndResolveRequest?

&gt; Websites/perf.webkit.org/server-tests/tools-sync-buildbot-integration-tests.js:252
&gt; +            assertAndResolveRequest(requests[1], &apos;GET&apos;, MockData.buildbotBuildersURL(), MockData.mockBuildbotBuilders());

Where did request 0 go? I need the answer to this question before I can r+ this patch.

&gt; Websites/perf.webkit.org/server-tests/tools-sync-buildbot-integration-tests.js:365
&gt; +            assertAndResolveRequest(requests[1], &apos;GET&apos;, MockData.buildbotBuildersURL(), MockData.mockBuildbotBuilders());

Again, where did request 0 go?

&gt; Websites/perf.webkit.org/server-tests/tools-sync-buildbot-integration-tests.js:636
&gt; +            assertAndResolveRequest(requests[1], &apos;GET&apos;, MockData.buildbotBuildersURL(), MockData.mockBuildbotBuilders());

Ditto.

&gt; Websites/perf.webkit.org/server-tests/tools-sync-buildbot-integration-tests.js:923
&gt; +            assertAndResolveRequest(requests[1], &apos;GET&apos;, MockData.buildbotBuildersURL(), MockData.mockBuildbotBuilders());

Ditto.

&gt; Websites/perf.webkit.org/server-tests/tools-sync-buildbot-integration-tests.js:995
&gt; +            assertAndResolveRequest(requests[1], &apos;GET&apos;, MockData.buildbotBuildersURL(), MockData.mockBuildbotBuilders());

Ditto.

&gt; Websites/perf.webkit.org/server-tests/tools-sync-buildbot-integration-tests.js:1080
&gt; +            assertAndResolveRequest(requests[1], &apos;GET&apos;, MockData.buildbotBuildersURL(), MockData.mockBuildbotBuilders());

Ditto.

&gt; Websites/perf.webkit.org/server-tests/tools-sync-buildbot-integration-tests.js:1187
&gt; +            assertAndResolveRequest(requests[1], &apos;GET&apos;, MockData.buildbotBuildersURL(), MockData.mockBuildbotBuilders());

Ditto.

&gt; Websites/perf.webkit.org/server-tests/tools-sync-buildbot-integration-tests.js:1484
&gt; +            assertAndResolveRequest(requests[1], &apos;GET&apos;, MockData.buildbotBuildersURL(), MockData.mockBuildbotBuilders());

Ditto.

&gt; Websites/perf.webkit.org/server-tests/resources/mock-data.js:21
&gt; +    buildbot09BuildersURL() {return &apos;/api/v2/builders&apos;},

This is not used anywhere. We shouldn&apos;t add it until it&apos;s actually used.

&gt; Websites/perf.webkit.org/server-tests/resources/mock-data.js:248
&gt; +    mockBuildbot09Builders: function ()

Ditto.

&gt; Websites/perf.webkit.org/tools/js/buildbot-triggerable.js:31
&gt; +    getBuilderNameToIDMap() {

Nit: { should be on a new line.

&gt; Websites/perf.webkit.org/tools/js/buildbot-triggerable.js:44
&gt; +    getBuilderNameToIDMapDeprecated() {

Nit: { should be on its own line.

&gt; Websites/perf.webkit.org/tools/js/buildbot-triggerable.js:49
&gt; +            for (let builder in content) {
&gt; +                builderNameToIDMap[builder] = builder;
&gt; +            }

Nit: No curly braces around a single line statement.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1378296</commentid>
    <comment_count>8</comment_count>
      <attachid>327001</attachid>
    <who name="Aakash Jain">aakash_jain</who>
    <bug_when>2017-12-05 12:48:38 -0800</bug_when>
    <thetext>Comment on attachment 327001
Updated patch

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

&gt;&gt; Websites/perf.webkit.org/server-tests/tools-sync-buildbot-integration-tests.js:152
&gt;&gt; +        MockRemoteAPI.requests[0].resolve(MockData.mockBuildbotBuilders());
&gt; 
&gt; Use assertAndResolveRequest?

assertAndResolveRequest is defined later on inside describe(). Not available here. 

Also, this is the reason for missing requests[0] in most of the test-cases. All the methods calling createTriggerable() have the requests[0] here.

&gt;&gt; Websites/perf.webkit.org/server-tests/tools-sync-buildbot-integration-tests.js:252
&gt;&gt; +            assertAndResolveRequest(requests[1], &apos;GET&apos;, MockData.buildbotBuildersURL(), MockData.mockBuildbotBuilders());
&gt; 
&gt; Where did request 0 go? I need the answer to this question before I can r+ this patch.

request[0] is inside createTriggerable(). I can add another assertAndResolveRequest for requests[0] here (just after createTriggerable) if that improves readability.

&gt;&gt; Websites/perf.webkit.org/server-tests/resources/mock-data.js:21
&gt;&gt; +    buildbot09BuildersURL() {return &apos;/api/v2/builders&apos;},
&gt; 
&gt; This is not used anywhere. We shouldn&apos;t add it until it&apos;s actually used.

It would be used when we do the final switch. This (and mockBuildbotBuilders below) will help in making the final patch for switch small.

I have tested that the server-tests pass with these data.

&gt;&gt; Websites/perf.webkit.org/tools/js/buildbot-triggerable.js:31
&gt;&gt; +    getBuilderNameToIDMap() {
&gt; 
&gt; Nit: { should be on a new line.

will take care of all these formatting issues.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1378350</commentid>
    <comment_count>9</comment_count>
      <attachid>327001</attachid>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2017-12-05 14:01:48 -0800</bug_when>
    <thetext>Comment on attachment 327001
Updated patch

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

&gt;&gt;&gt; Websites/perf.webkit.org/server-tests/tools-sync-buildbot-integration-tests.js:152
&gt;&gt;&gt; +        MockRemoteAPI.requests[0].resolve(MockData.mockBuildbotBuilders());
&gt;&gt; 
&gt;&gt; Use assertAndResolveRequest?
&gt; 
&gt; assertAndResolveRequest is defined later on inside describe(). Not available here. 
&gt; 
&gt; Also, this is the reason for missing requests[0] in most of the test-cases. All the methods calling createTriggerable() have the requests[0] here.

Then we should move it move it outside describe() and use it here.
Also, we should add a new method to MockRemoteAPI (inside unit-tests/resources/mock-remote-api.js) like clear()
which clears the requests so that each doesn&apos;t need to shift its expectations by 1 everywhere as seen below.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1378791</commentid>
    <comment_count>10</comment_count>
      <attachid>328622</attachid>
    <who name="Aakash Jain">aakash_jain</who>
    <bug_when>2017-12-06 13:57:06 -0800</bug_when>
    <thetext>Created attachment 328622
Updated patch

&gt; Then we should move it move it outside describe() and use it here.
Done.

&gt; Also, we should add a new method to MockRemoteAPI
MockRemoteAPI already have a method &quot;reset&quot; which does exactly this. Used MockRemoteAPI.reset(). 

Thanks for the suggestion. It simplified the server-tests changes significantly.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1378799</commentid>
    <comment_count>11</comment_count>
      <attachid>328622</attachid>
    <who name="Aakash Jain">aakash_jain</who>
    <bug_when>2017-12-06 14:02:46 -0800</bug_when>
    <thetext>Comment on attachment 328622
Updated patch

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

&gt; Websites/perf.webkit.org/server-tests/tools-buildbot-triggerable-tests.js:754
&gt;                  syncPromise = triggerable.initSyncers().then(() =&gt; triggerable.syncOnce());

This test calls initSyncers() twice. Calling MockRemoteAPI.reset() here would still affect the indexes of the subsequent asserts. Therefore indexes of subsequent requests are increased by 1 in this test.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1379030</commentid>
    <comment_count>12</comment_count>
      <attachid>328622</attachid>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2017-12-06 22:23:21 -0800</bug_when>
    <thetext>Comment on attachment 328622
Updated patch

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

r=me provided buildbot09BuildersURL and mockBuildbot09Builders are removed, and tests are added for getBuilderNameToIDMap.

&gt; Websites/perf.webkit.org/server-tests/resources/mock-data.js:21
&gt; +    buildbot09BuildersURL() {return &apos;/api/v2/builders&apos;},

Again, I don&apos;t think we should add these since we&apos;re not simultaneously supporting both 0.8 and 0.9.

&gt; Websites/perf.webkit.org/server-tests/resources/mock-data.js:248
&gt; +    mockBuildbot09Builders: function ()

Ditto.

&gt; Websites/perf.webkit.org/tools/js/buildbot-triggerable.js:31
&gt; +    getBuilderNameToIDMap()

Add a test for this function since it&apos;s not used.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1390791</commentid>
    <comment_count>13</comment_count>
      <attachid>331700</attachid>
    <who name="Aakash Jain">aakash_jain</who>
    <bug_when>2018-01-18 19:36:37 -0800</bug_when>
    <thetext>Created attachment 331700
Updated Patch

Added test for getBuilderNameToIDMap() in server-tests/tools-buildbot-triggerable-tests.js

This new test needs buildbot09BuildersURL and mockBuildbot09Builders from mock-data, so I have to keep them.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1390793</commentid>
    <comment_count>14</comment_count>
      <attachid>331700</attachid>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2018-01-18 19:46:15 -0800</bug_when>
    <thetext>Comment on attachment 331700
Updated Patch

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

&gt; Websites/perf.webkit.org/server-tests/resources/mock-data.js:21
&gt; +    buildbotBuildersURL() {return &apos;/json/builders&apos;},
&gt; +    buildbot09BuildersURL() {return &apos;/api/v2/builders&apos;},

Please rename to buildbotBuildersURLDeprecated and buildbotBuildersURL.

&gt; Websites/perf.webkit.org/server-tests/resources/mock-data.js:225
&gt; +    mockBuildbotBuilders: function ()

Let&apos;s called this mockBuildbotBuildersDeprecated.

&gt; Websites/perf.webkit.org/server-tests/resources/mock-data.js:248
&gt; +    mockBuildbot09Builders: function ()

Let&apos;s call this mockBuildbotBuilders</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1390802</commentid>
    <comment_count>15</comment_count>
      <attachid>331703</attachid>
    <who name="Aakash Jain">aakash_jain</who>
    <bug_when>2018-01-18 20:36:57 -0800</bug_when>
    <thetext>Created attachment 331703
Patch for landing

Renamed variables as suggested above.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1390823</commentid>
    <comment_count>16</comment_count>
    <who name="Aakash Jain">aakash_jain</who>
    <bug_when>2018-01-18 21:46:09 -0800</bug_when>
    <thetext>Committed r227184: &lt;https://trac.webkit.org/changeset/227184&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1390824</commentid>
    <comment_count>17</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2018-01-18 21:47:33 -0800</bug_when>
    <thetext>&lt;rdar://problem/36645842&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>320117</attachid>
            <date>2017-09-07 08:55:38 -0700</date>
            <delta_ts>2017-11-07 23:12:54 -0800</delta_ts>
            <desc>Proposed patch</desc>
            <filename>patch_buildbot_perf_builderNameToIDMap</filename>
            <type>text/plain</type>
            <size>48678</size>
            <attacher name="Aakash Jain">aakash_jain</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
V2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL0NoYW5nZUxvZwkocmV2aXNpb24gMjIxNzMyKQorKysg
V2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwz
ICsxLDIwIEBACisyMDE3LTA5LTA3ICBBYWthc2ggSmFpbiAgPGFha2FzaF9qYWluQGFwcGxlLmNv
bT4KKworICAgICAgICBBZGQgc3VwcG9ydCBmb3IgYnVpbGRlck5hbWVUb0lETWFwIGluIEJ1aWxk
Ym90U3luY2VyCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD0xNzY1MjYKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAg
ICAqIHRvb2xzL2pzL2J1aWxkYm90LXN5bmNlci5qczoKKyAgICAgICAgKEJ1aWxkYm90U3luY2Vy
KTogQWRkZWQgYnVpbGRlck5hbWVUb0lETWFwIHBhcmFtZXRlci4gSXQgd291bGQgYmUgdXNlZCBs
YXRlciBvbi4KKyAgICAgICAgKEJ1aWxkYm90U3luY2VyLl9sb2FkQ29uZmlnKTogRGl0dG8uCisg
ICAgICAgICogdG9vbHMvanMvYnVpbGRib3QtdHJpZ2dlcmFibGUuanM6CisgICAgICAgIChCdWls
ZGJvdFRyaWdnZXJhYmxlKTogQWRkZWQgX2J1aWxkZXJOYW1lVG9JRE1hcC4KKyAgICAgICAgKEJ1
aWxkYm90VHJpZ2dlcmFibGUucHJvdG90eXBlLmluaXRTeW5jZXJzKTogUGFzc2VkIF9idWlsZGVy
TmFtZVRvSURNYXAgYXJndW1lbnQgdG8gX2xvYWRDb25maWcuCisgICAgICAgICogdW5pdC10ZXN0
cy9idWlsZGJvdC1zeW5jZXItdGVzdHMuanM6CisgICAgICAgIChidWlsZGVyTmFtZVRvSURNYXAp
OiBBZGRlZCBtZXRob2QgdG8gcmV0dXJuIGJ1aWxkZXJOYW1lVG9JRE1hcC4gQ3VycmVudGx5IGl0
IHJldHVybnMge30sICBpdCB3b3VsZCBiZSAKKyAgICAgICAgdXBkYXRlZCBsYXRlciB0byByZXR1
cm4gdGhlIGFjdHVhbCBtYXBwaW5ncy4KKwogMjAxNy0wOS0wNiAgQWFrYXNoIEphaW4gIDxhYWth
c2hfamFpbkBhcHBsZS5jb20+CiAKICAgICAgICAgQWRkIGluaXRTeW5jZXJzIG1ldGhvZCBpbiBC
dWlsZGJvdFRyaWdnZXJhYmxlCkluZGV4OiBXZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvdG9vbHMv
anMvYnVpbGRib3Qtc3luY2VyLmpzCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYnNpdGVzL3BlcmYud2Via2l0
Lm9yZy90b29scy9qcy9idWlsZGJvdC1zeW5jZXIuanMJKHJldmlzaW9uIDIyMTczMikKKysrIFdl
YnNpdGVzL3BlcmYud2Via2l0Lm9yZy90b29scy9qcy9idWlsZGJvdC1zeW5jZXIuanMJKHdvcmtp
bmcgY29weSkKQEAgLTU3LDggKzU3LDkgQEAgY2xhc3MgQnVpbGRib3RCdWlsZEVudHJ5IHsKIAog
Y2xhc3MgQnVpbGRib3RTeW5jZXIgewogCi0gICAgY29uc3RydWN0b3IocmVtb3RlLCBvYmplY3Qs
IGNvbW1vbkNvbmZpZ3VyYXRpb25zKQorICAgIGNvbnN0cnVjdG9yKHJlbW90ZSwgb2JqZWN0LCBj
b21tb25Db25maWd1cmF0aW9ucywgYnVpbGRlck5hbWVUb0lETWFwKQogICAgIHsKKyAgICAgICAg
YXNzZXJ0KGJ1aWxkZXJOYW1lVG9JRE1hcCk7CiAgICAgICAgIHRoaXMuX3JlbW90ZSA9IHJlbW90
ZTsKICAgICAgICAgdGhpcy5fdHlwZSA9IG51bGw7CiAgICAgICAgIHRoaXMuX2NvbmZpZ3VyYXRp
b25zID0gW107CkBAIC0yOTMsOCArMjk0LDkgQEAgY2xhc3MgQnVpbGRib3RTeW5jZXIgewogICAg
ICAgICByZXR1cm4gcmV2aXNpb25TZXQ7CiAgICAgfQogCi0gICAgc3RhdGljIF9sb2FkQ29uZmln
KHJlbW90ZSwgY29uZmlnKQorICAgIHN0YXRpYyBfbG9hZENvbmZpZyhyZW1vdGUsIGNvbmZpZywg
YnVpbGRlck5hbWVUb0lETWFwKQogICAgIHsKKyAgICAgICAgYXNzZXJ0KGJ1aWxkZXJOYW1lVG9J
RE1hcCk7CiAgICAgICAgIGNvbnN0IHR5cGVzID0gY29uZmlnWyd0eXBlcyddIHx8IHt9OwogICAg
ICAgICBjb25zdCBidWlsZGVycyA9IGNvbmZpZ1snYnVpbGRlcnMnXSB8fCB7fTsKIApAQCAtMzE2
LDcgKzMxOCw3IEBAIGNsYXNzIEJ1aWxkYm90U3luY2VyIHsKICAgICAgICAgY29uc3QgZW5zdXJl
QnVpbGRib3RTeW5jZXIgPSAoYnVpbGRlckluZm8pID0+IHsKICAgICAgICAgICAgIGxldCBidWls
ZGVyU3luY2VyID0gc3luY2VyQnlCdWlsZGVyLmdldChidWlsZGVySW5mby5idWlsZGVyKTsKICAg
ICAgICAgICAgIGlmICghYnVpbGRlclN5bmNlcikgewotICAgICAgICAgICAgICAgIGJ1aWxkZXJT
eW5jZXIgPSBuZXcgQnVpbGRib3RTeW5jZXIocmVtb3RlLCBidWlsZGVySW5mbywgY29tbW9uQ29u
ZmlndXJhdGlvbnMpOworICAgICAgICAgICAgICAgIGJ1aWxkZXJTeW5jZXIgPSBuZXcgQnVpbGRi
b3RTeW5jZXIocmVtb3RlLCBidWlsZGVySW5mbywgY29tbW9uQ29uZmlndXJhdGlvbnMsIGJ1aWxk
ZXJOYW1lVG9JRE1hcCk7CiAgICAgICAgICAgICAgICAgc3luY2VyQnlCdWlsZGVyLnNldChidWls
ZGVySW5mby5idWlsZGVyLCBidWlsZGVyU3luY2VyKTsKICAgICAgICAgICAgIH0KICAgICAgICAg
ICAgIHJldHVybiBidWlsZGVyU3luY2VyOwpJbmRleDogV2Vic2l0ZXMvcGVyZi53ZWJraXQub3Jn
L3Rvb2xzL2pzL2J1aWxkYm90LXRyaWdnZXJhYmxlLmpzCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYnNpdGVz
L3BlcmYud2Via2l0Lm9yZy90b29scy9qcy9idWlsZGJvdC10cmlnZ2VyYWJsZS5qcwkocmV2aXNp
b24gMjIxNzMyKQorKysgV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL3Rvb2xzL2pzL2J1aWxkYm90
LXRyaWdnZXJhYmxlLmpzCSh3b3JraW5nIGNvcHkpCkBAIC0yNCwxMyArMjQsMTQgQEAgY2xhc3Mg
QnVpbGRib3RUcmlnZ2VyYWJsZSB7CiAgICAgICAgIGFzc2VydCh0eXBlb2Yoc2xhdmVJbmZvLnBh
c3N3b3JkKSA9PSAnc3RyaW5nJywgJ3NsYXZlIHBhc3N3b3JkIG11c3QgYmUgc3BlY2lmaWVkJyk7
CiAKICAgICAgICAgdGhpcy5fc3luY2VycyA9IG51bGw7CisgICAgICAgIHRoaXMuX2J1aWxkZXJO
YW1lVG9JRE1hcCA9IHt9OwogICAgICAgICB0aGlzLl9sb2dnZXIgPSBsb2dnZXIgfHwge2xvZzog
KCkgPT4geyB9LCBlcnJvcjogKCkgPT4geyB9fTsKICAgICB9CiAKICAgICBpbml0U3luY2Vycygp
CiAgICAgewogICAgICAgICByZXR1cm4gbmV3IFByb21pc2UoKHJlc29sdmUsIHJlamVjdCkgPT4g
ewotICAgICAgICAgICAgdGhpcy5fc3luY2VycyA9IEJ1aWxkYm90U3luY2VyLl9sb2FkQ29uZmln
KHRoaXMuX2J1aWxkYm90UmVtb3RlLCB0aGlzLl9jb25maWcpOworICAgICAgICAgICAgdGhpcy5f
c3luY2VycyA9IEJ1aWxkYm90U3luY2VyLl9sb2FkQ29uZmlnKHRoaXMuX2J1aWxkYm90UmVtb3Rl
LCB0aGlzLl9jb25maWcsIHRoaXMuX2J1aWxkZXJOYW1lVG9JRE1hcCk7CiAgICAgICAgICAgICBz
ZXRUaW1lb3V0KHJlc29sdmUsIDApOwogICAgICAgICB9KTsKICAgICB9CkluZGV4OiBXZWJzaXRl
cy9wZXJmLndlYmtpdC5vcmcvdW5pdC10ZXN0cy9idWlsZGJvdC1zeW5jZXItdGVzdHMuanMKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL3VuaXQtdGVzdHMvYnVpbGRib3Qt
c3luY2VyLXRlc3RzLmpzCShyZXZpc2lvbiAyMjE3MzIpCisrKyBXZWJzaXRlcy9wZXJmLndlYmtp
dC5vcmcvdW5pdC10ZXN0cy9idWlsZGJvdC1zeW5jZXItdGVzdHMuanMJKHdvcmtpbmcgY29weSkK
QEAgLTE0Myw2ICsxNDMsMTEgQEAgZnVuY3Rpb24gc21hbGxDb25maWd1cmF0aW9uKCkKICAgICB9
OwogfQogCitmdW5jdGlvbiBidWlsZGVyTmFtZVRvSURNYXAoKQoreworICAgIHJldHVybiB7fQor
fQorCiBmdW5jdGlvbiBzbWFsbFBlbmRpbmdCdWlsZCgpCiB7CiAgICAgcmV0dXJuIHsKQEAgLTQ0
MCwzOSArNDQ1LDM5IEBAIGRlc2NyaWJlKCdCdWlsZGJvdFN5bmNlcicsICgpID0+IHsKICAgICBk
ZXNjcmliZSgnX2xvYWRDb25maWcnLCAoKSA9PiB7CiAKICAgICAgICAgaXQoJ3Nob3VsZCBjcmVh
dGUgQnVpbGRib3RTeW5jZXIgb2JqZWN0cyBmb3IgYSBjb25maWd1cmF0aW9uIHRoYXQgc3BlY2lm
eSBhbGwgcmVxdWlyZWQgb3B0aW9ucycsICgpID0+IHsKLSAgICAgICAgICAgIGFzc2VydC5lcXVh
bChCdWlsZGJvdFN5bmNlci5fbG9hZENvbmZpZyhNb2NrUmVtb3RlQVBJLCBzbWFsbENvbmZpZ3Vy
YXRpb24oKSkubGVuZ3RoLCAxKTsKKyAgICAgICAgICAgIGFzc2VydC5lcXVhbChCdWlsZGJvdFN5
bmNlci5fbG9hZENvbmZpZyhNb2NrUmVtb3RlQVBJLCBzbWFsbENvbmZpZ3VyYXRpb24oKSwgYnVp
bGRlck5hbWVUb0lETWFwKCkpLmxlbmd0aCwgMSk7CiAgICAgICAgIH0pOwogCiAgICAgICAgIGl0
KCdzaG91bGQgdGhyb3cgd2hlbiBzb21lIHJlcXVpcmVkIG9wdGlvbnMgYXJlIG1pc3NpbmcnLCAo
KSA9PiB7CiAgICAgICAgICAgICBhc3NlcnQudGhyb3dzKCgpID0+IHsKICAgICAgICAgICAgICAg
ICBjb25zdCBjb25maWcgPSBzbWFsbENvbmZpZ3VyYXRpb24oKTsKICAgICAgICAgICAgICAgICBk
ZWxldGUgY29uZmlnLmJ1aWxkZXJzOwotICAgICAgICAgICAgICAgIEJ1aWxkYm90U3luY2VyLl9s
b2FkQ29uZmlnKE1vY2tSZW1vdGVBUEksIGNvbmZpZyk7CisgICAgICAgICAgICAgICAgQnVpbGRi
b3RTeW5jZXIuX2xvYWRDb25maWcoTW9ja1JlbW90ZUFQSSwgY29uZmlnLCBidWlsZGVyTmFtZVRv
SURNYXAoKSk7CiAgICAgICAgICAgICB9LCAvInNvbWUtYnVpbGRlciIgaXMgbm90IGEgdmFsaWQg
YnVpbGRlciBpbiB0aGUgY29uZmlndXJhdGlvbi8pOwogICAgICAgICAgICAgYXNzZXJ0LnRocm93
cygoKSA9PiB7CiAgICAgICAgICAgICAgICAgY29uc3QgY29uZmlnID0gc21hbGxDb25maWd1cmF0
aW9uKCk7CiAgICAgICAgICAgICAgICAgZGVsZXRlIGNvbmZpZy50eXBlczsKLSAgICAgICAgICAg
ICAgICBCdWlsZGJvdFN5bmNlci5fbG9hZENvbmZpZyhNb2NrUmVtb3RlQVBJLCBjb25maWcpOwor
ICAgICAgICAgICAgICAgIEJ1aWxkYm90U3luY2VyLl9sb2FkQ29uZmlnKE1vY2tSZW1vdGVBUEks
IGNvbmZpZywgYnVpbGRlck5hbWVUb0lETWFwKCkpOwogICAgICAgICAgICAgfSwgLyJzb21lLXRl
c3QiIGlzIG5vdCBhIHZhbGlkIHR5cGUgaW4gdGhlIGNvbmZpZ3VyYXRpb24vKTsKICAgICAgICAg
ICAgIGFzc2VydC50aHJvd3MoKCkgPT4gewogICAgICAgICAgICAgICAgIGNvbnN0IGNvbmZpZyA9
IHNtYWxsQ29uZmlndXJhdGlvbigpOwogICAgICAgICAgICAgICAgIGRlbGV0ZSBjb25maWcudGVz
dENvbmZpZ3VyYXRpb25zWzBdLmJ1aWxkZXJzOwotICAgICAgICAgICAgICAgIEJ1aWxkYm90U3lu
Y2VyLl9sb2FkQ29uZmlnKE1vY2tSZW1vdGVBUEksIGNvbmZpZyk7CisgICAgICAgICAgICAgICAg
QnVpbGRib3RTeW5jZXIuX2xvYWRDb25maWcoTW9ja1JlbW90ZUFQSSwgY29uZmlnLCBidWlsZGVy
TmFtZVRvSURNYXAoKSk7CiAgICAgICAgICAgICB9LCAvVGhlIHRlc3QgY29uZmlndXJhdGlvbiAx
IGRvZXMgbm90IHNwZWNpZnkgImJ1aWxkZXJzIiBhcyBhbiBhcnJheS8pOwogICAgICAgICAgICAg
YXNzZXJ0LnRocm93cygoKSA9PiB7CiAgICAgICAgICAgICAgICAgY29uc3QgY29uZmlnID0gc21h
bGxDb25maWd1cmF0aW9uKCk7CiAgICAgICAgICAgICAgICAgZGVsZXRlIGNvbmZpZy50ZXN0Q29u
ZmlndXJhdGlvbnNbMF0ucGxhdGZvcm1zOwotICAgICAgICAgICAgICAgIEJ1aWxkYm90U3luY2Vy
Ll9sb2FkQ29uZmlnKE1vY2tSZW1vdGVBUEksIGNvbmZpZyk7CisgICAgICAgICAgICAgICAgQnVp
bGRib3RTeW5jZXIuX2xvYWRDb25maWcoTW9ja1JlbW90ZUFQSSwgY29uZmlnLCBidWlsZGVyTmFt
ZVRvSURNYXAoKSk7CiAgICAgICAgICAgICB9LCAvVGhlIHRlc3QgY29uZmlndXJhdGlvbiAxIGRv
ZXMgbm90IHNwZWNpZnkgInBsYXRmb3JtcyIgYXMgYW4gYXJyYXkvKTsKICAgICAgICAgICAgIGFz
c2VydC50aHJvd3MoKCkgPT4gewogICAgICAgICAgICAgICAgIGNvbnN0IGNvbmZpZyA9IHNtYWxs
Q29uZmlndXJhdGlvbigpOwogICAgICAgICAgICAgICAgIGRlbGV0ZSBjb25maWcudGVzdENvbmZp
Z3VyYXRpb25zWzBdLnR5cGVzOwotICAgICAgICAgICAgICAgIEJ1aWxkYm90U3luY2VyLl9sb2Fk
Q29uZmlnKE1vY2tSZW1vdGVBUEksIGNvbmZpZyk7CisgICAgICAgICAgICAgICAgQnVpbGRib3RT
eW5jZXIuX2xvYWRDb25maWcoTW9ja1JlbW90ZUFQSSwgY29uZmlnLCBidWlsZGVyTmFtZVRvSURN
YXAoKSk7CiAgICAgICAgICAgICB9LCAvVGhlIHRlc3QgY29uZmlndXJhdGlvbiAwIGRvZXMgbm90
IHNwZWNpZnkgInR5cGVzIiBhcyBhbiBhcnJheS8pOwogICAgICAgICAgICAgYXNzZXJ0LnRocm93
cygoKSA9PiB7CiAgICAgICAgICAgICAgICAgY29uc3QgY29uZmlnID0gc21hbGxDb25maWd1cmF0
aW9uKCk7CiAgICAgICAgICAgICAgICAgZGVsZXRlIGNvbmZpZy5idWlsZFJlcXVlc3RBcmd1bWVu
dDsKLSAgICAgICAgICAgICAgICBCdWlsZGJvdFN5bmNlci5fbG9hZENvbmZpZyhNb2NrUmVtb3Rl
QVBJLCBjb25maWcpOworICAgICAgICAgICAgICAgIEJ1aWxkYm90U3luY2VyLl9sb2FkQ29uZmln
KE1vY2tSZW1vdGVBUEksIGNvbmZpZywgYnVpbGRlck5hbWVUb0lETWFwKCkpOwogICAgICAgICAg
ICAgfSwgL2J1aWxkUmVxdWVzdEFyZ3VtZW50IG11c3Qgc3BlY2lmeSB0aGUgbmFtZSBvZiB0aGUg
cHJvcGVydHkgdXNlZCB0byBzdG9yZSB0aGUgYnVpbGQgcmVxdWVzdCBJRC8pOwogICAgICAgICB9
KTsKIApAQCAtNDgwLDEyICs0ODUsMTIgQEAgZGVzY3JpYmUoJ0J1aWxkYm90U3luY2VyJywgKCkg
PT4gewogICAgICAgICAgICAgYXNzZXJ0LnRocm93cygoKSA9PiB7CiAgICAgICAgICAgICAgICAg
Y29uc3QgY29uZmlnID0gc21hbGxDb25maWd1cmF0aW9uKCk7CiAgICAgICAgICAgICAgICAgY29u
ZmlnLnRlc3RDb25maWd1cmF0aW9uc1swXS50eXBlcyA9ICdzb21lIHRlc3QnOwotICAgICAgICAg
ICAgICAgIEJ1aWxkYm90U3luY2VyLl9sb2FkQ29uZmlnKE1vY2tSZW1vdGVBUEksIGNvbmZpZyk7
CisgICAgICAgICAgICAgICAgQnVpbGRib3RTeW5jZXIuX2xvYWRDb25maWcoTW9ja1JlbW90ZUFQ
SSwgY29uZmlnLCBidWlsZGVyTmFtZVRvSURNYXAoKSk7CiAgICAgICAgICAgICB9LCAvVGhlIHRl
c3QgY29uZmlndXJhdGlvbiAwIGRvZXMgbm90IHNwZWNpZnkgInR5cGVzIiBhcyBhbiBhcnJheS8p
OwogICAgICAgICAgICAgYXNzZXJ0LnRocm93cygoKSA9PiB7CiAgICAgICAgICAgICAgICAgY29u
c3QgY29uZmlnID0gc21hbGxDb25maWd1cmF0aW9uKCk7CiAgICAgICAgICAgICAgICAgY29uZmln
LnRlc3RDb25maWd1cmF0aW9uc1swXS50eXBlcyA9IFsxXTsKLSAgICAgICAgICAgICAgICBCdWls
ZGJvdFN5bmNlci5fbG9hZENvbmZpZyhNb2NrUmVtb3RlQVBJLCBjb25maWcpOworICAgICAgICAg
ICAgICAgIEJ1aWxkYm90U3luY2VyLl9sb2FkQ29uZmlnKE1vY2tSZW1vdGVBUEksIGNvbmZpZywg
YnVpbGRlck5hbWVUb0lETWFwKCkpOwogICAgICAgICAgICAgfSwgLyIxIiBpcyBub3QgYSB2YWxp
ZCB0eXBlIGluIHRoZSBjb25maWd1cmF0aW9uLyk7CiAgICAgICAgIH0pOwogCkBAIC00OTMsMTIg
KzQ5OCwxMiBAQCBkZXNjcmliZSgnQnVpbGRib3RTeW5jZXInLCAoKSA9PiB7CiAgICAgICAgICAg
ICBhc3NlcnQudGhyb3dzKCgpID0+IHsKICAgICAgICAgICAgICAgICBjb25zdCBjb25maWcgPSBz
bWFsbENvbmZpZ3VyYXRpb24oKTsKICAgICAgICAgICAgICAgICBjb25maWcuYnVpbGRlcnNbT2Jq
ZWN0LmtleXMoY29uZmlnLmJ1aWxkZXJzKVswXV0ucHJvcGVydGllcyA9ICdoZWxsbyc7Ci0gICAg
ICAgICAgICAgICAgQnVpbGRib3RTeW5jZXIuX2xvYWRDb25maWcoTW9ja1JlbW90ZUFQSSwgY29u
ZmlnKTsKKyAgICAgICAgICAgICAgICBCdWlsZGJvdFN5bmNlci5fbG9hZENvbmZpZyhNb2NrUmVt
b3RlQVBJLCBjb25maWcsIGJ1aWxkZXJOYW1lVG9JRE1hcCgpKTsKICAgICAgICAgICAgIH0sIC9C
dWlsZCBwcm9wZXJ0aWVzIHNob3VsZCBiZSBhIGRpY3Rpb25hcnkvKTsKICAgICAgICAgICAgIGFz
c2VydC50aHJvd3MoKCkgPT4gewogICAgICAgICAgICAgICAgIGNvbnN0IGNvbmZpZyA9IHNtYWxs
Q29uZmlndXJhdGlvbigpOwogICAgICAgICAgICAgICAgIGNvbmZpZy50eXBlc1tPYmplY3Qua2V5
cyhjb25maWcudHlwZXMpWzBdXS5wcm9wZXJ0aWVzID0gJ2hlbGxvJzsKLSAgICAgICAgICAgICAg
ICBCdWlsZGJvdFN5bmNlci5fbG9hZENvbmZpZyhNb2NrUmVtb3RlQVBJLCBjb25maWcpOworICAg
ICAgICAgICAgICAgIEJ1aWxkYm90U3luY2VyLl9sb2FkQ29uZmlnKE1vY2tSZW1vdGVBUEksIGNv
bmZpZywgYnVpbGRlck5hbWVUb0lETWFwKCkpOwogICAgICAgICAgICAgfSwgL0J1aWxkIHByb3Bl
cnRpZXMgc2hvdWxkIGJlIGEgZGljdGlvbmFyeS8pOwogICAgICAgICB9KTsKIApAQCAtNTA3LDEz
ICs1MTIsMTMgQEAgZGVzY3JpYmUoJ0J1aWxkYm90U3luY2VyJywgKCkgPT4gewogICAgICAgICAg
ICAgICAgIGNvbnN0IGNvbmZpZyA9IHNtYWxsQ29uZmlndXJhdGlvbigpOwogICAgICAgICAgICAg
ICAgIGNvbnN0IGZpcnN0VHlwZSA9IE9iamVjdC5rZXlzKGNvbmZpZy50eXBlcylbMF07CiAgICAg
ICAgICAgICAgICAgY29uZmlnLnR5cGVzW2ZpcnN0VHlwZV0udGVzdFByb3BlcnRpZXMgPSB7fTsK
LSAgICAgICAgICAgICAgICBCdWlsZGJvdFN5bmNlci5fbG9hZENvbmZpZyhNb2NrUmVtb3RlQVBJ
LCBjb25maWcpOworICAgICAgICAgICAgICAgIEJ1aWxkYm90U3luY2VyLl9sb2FkQ29uZmlnKE1v
Y2tSZW1vdGVBUEksIGNvbmZpZywgYnVpbGRlck5hbWVUb0lETWFwKCkpOwogICAgICAgICAgICAg
fSwgL1VucmVjb2duaXplZCBwYXJhbWV0ZXIgInRlc3RQcm9wZXJ0aWVzIi8pOwogICAgICAgICAg
ICAgYXNzZXJ0LnRocm93cygoKSA9PiB7CiAgICAgICAgICAgICAgICAgY29uc3QgY29uZmlnID0g
c21hbGxDb25maWd1cmF0aW9uKCk7CiAgICAgICAgICAgICAgICAgY29uc3QgZmlyc3RCdWlsZGVy
ID0gT2JqZWN0LmtleXMoY29uZmlnLmJ1aWxkZXJzKVswXTsKICAgICAgICAgICAgICAgICBjb25m
aWcuYnVpbGRlcnNbZmlyc3RCdWlsZGVyXS50ZXN0UHJvcGVydGllcyA9IHt9OwotICAgICAgICAg
ICAgICAgIEJ1aWxkYm90U3luY2VyLl9sb2FkQ29uZmlnKE1vY2tSZW1vdGVBUEksIGNvbmZpZyk7
CisgICAgICAgICAgICAgICAgQnVpbGRib3RTeW5jZXIuX2xvYWRDb25maWcoTW9ja1JlbW90ZUFQ
SSwgY29uZmlnLCBidWlsZGVyTmFtZVRvSURNYXAoKSk7CiAgICAgICAgICAgICB9LCAvVW5yZWNv
Z25pemVkIHBhcmFtZXRlciAidGVzdFByb3BlcnRpZXMiLyk7CiAgICAgICAgIH0pOwogCkBAIC01
MjIsMTMgKzUyNywxMyBAQCBkZXNjcmliZSgnQnVpbGRib3RTeW5jZXInLCAoKSA9PiB7CiAgICAg
ICAgICAgICAgICAgY29uc3QgY29uZmlnID0gc21hbGxDb25maWd1cmF0aW9uKCk7CiAgICAgICAg
ICAgICAgICAgY29uc3QgZmlyc3RUeXBlID0gT2JqZWN0LmtleXMoY29uZmlnLnR5cGVzKVswXTsK
ICAgICAgICAgICAgICAgICBjb25maWcudHlwZXNbZmlyc3RUeXBlXS5idWlsZFByb3BlcnRpZXMg
PSB7fTsKLSAgICAgICAgICAgICAgICBCdWlsZGJvdFN5bmNlci5fbG9hZENvbmZpZyhNb2NrUmVt
b3RlQVBJLCBjb25maWcpOworICAgICAgICAgICAgICAgIEJ1aWxkYm90U3luY2VyLl9sb2FkQ29u
ZmlnKE1vY2tSZW1vdGVBUEksIGNvbmZpZywgYnVpbGRlck5hbWVUb0lETWFwKCkpOwogICAgICAg
ICAgICAgfSwgL1VucmVjb2duaXplZCBwYXJhbWV0ZXIgImJ1aWxkUHJvcGVydGllcyIvKTsKICAg
ICAgICAgICAgIGFzc2VydC50aHJvd3MoKCkgPT4gewogICAgICAgICAgICAgICAgIGNvbnN0IGNv
bmZpZyA9IHNtYWxsQ29uZmlndXJhdGlvbigpOwogICAgICAgICAgICAgICAgIGNvbnN0IGZpcnN0
QnVpbGRlciA9IE9iamVjdC5rZXlzKGNvbmZpZy5idWlsZGVycylbMF07CiAgICAgICAgICAgICAg
ICAgY29uZmlnLmJ1aWxkZXJzW2ZpcnN0QnVpbGRlcl0uYnVpbGRQcm9wZXJ0aWVzID0ge307Ci0g
ICAgICAgICAgICAgICAgQnVpbGRib3RTeW5jZXIuX2xvYWRDb25maWcoTW9ja1JlbW90ZUFQSSwg
Y29uZmlnKTsKKyAgICAgICAgICAgICAgICBCdWlsZGJvdFN5bmNlci5fbG9hZENvbmZpZyhNb2Nr
UmVtb3RlQVBJLCBjb25maWcsIGJ1aWxkZXJOYW1lVG9JRE1hcCgpKTsKICAgICAgICAgICAgIH0s
IC9VbnJlY29nbml6ZWQgcGFyYW1ldGVyICJidWlsZFByb3BlcnRpZXMiLyk7CiAgICAgICAgIH0p
OwogCkBAIC01MzcsMjcgKzU0MiwyNyBAQCBkZXNjcmliZSgnQnVpbGRib3RTeW5jZXInLCAoKSA9
PiB7CiAgICAgICAgICAgICBhc3NlcnQudGhyb3dzKCgpID0+IHsKICAgICAgICAgICAgICAgICBj
b25zdCBjb25maWcgPSBzbWFsbENvbmZpZ3VyYXRpb24oKTsKICAgICAgICAgICAgICAgICBjb25m
aWcudHlwZXNbZmlyc3RUeXBlXS5wcm9wZXJ0aWVzID0gJ2hlbGxvJzsKLSAgICAgICAgICAgICAg
ICBCdWlsZGJvdFN5bmNlci5fbG9hZENvbmZpZyhNb2NrUmVtb3RlQVBJLCBjb25maWcpOworICAg
ICAgICAgICAgICAgIEJ1aWxkYm90U3luY2VyLl9sb2FkQ29uZmlnKE1vY2tSZW1vdGVBUEksIGNv
bmZpZywgYnVpbGRlck5hbWVUb0lETWFwKCkpOwogICAgICAgICAgICAgfSwgL0J1aWxkIHByb3Bl
cnRpZXMgc2hvdWxkIGJlIGEgZGljdGlvbmFyeS8pOwogICAgICAgICAgICAgYXNzZXJ0LnRocm93
cygoKSA9PiB7CiAgICAgICAgICAgICAgICAgY29uc3QgY29uZmlnID0gc21hbGxDb25maWd1cmF0
aW9uKCk7CiAgICAgICAgICAgICAgICAgY29uZmlnLnR5cGVzW2ZpcnN0VHlwZV0ucHJvcGVydGll
cyA9IHsnc29tZSc6IHsnb3RoZXJLZXknOiAnc29tZSByb290J319OwotICAgICAgICAgICAgICAg
IEJ1aWxkYm90U3luY2VyLl9sb2FkQ29uZmlnKFJlbW90ZUFQSSwgY29uZmlnKTsKKyAgICAgICAg
ICAgICAgICBCdWlsZGJvdFN5bmNlci5fbG9hZENvbmZpZyhSZW1vdGVBUEksIGNvbmZpZywgYnVp
bGRlck5hbWVUb0lETWFwKCkpOwogICAgICAgICAgICAgfSwgL0J1aWxkIHByb3BlcnRpZXMgInNv
bWUiIHNwZWNpZmllcyBhIG5vbi1zdHJpbmcgdmFsdWUgb2YgdHlwZSAib2JqZWN0Ii8pOwogICAg
ICAgICAgICAgYXNzZXJ0LnRocm93cygoKSA9PiB7CiAgICAgICAgICAgICAgICAgY29uc3QgY29u
ZmlnID0gc21hbGxDb25maWd1cmF0aW9uKCk7CiAgICAgICAgICAgICAgICAgY29uZmlnLnR5cGVz
W2ZpcnN0VHlwZV0ucHJvcGVydGllcyA9IHsnc29tZSc6IHsnb3RoZXJLZXknOiAnc29tZSByb290
J319OwotICAgICAgICAgICAgICAgIEJ1aWxkYm90U3luY2VyLl9sb2FkQ29uZmlnKFJlbW90ZUFQ
SSwgY29uZmlnKTsKKyAgICAgICAgICAgICAgICBCdWlsZGJvdFN5bmNlci5fbG9hZENvbmZpZyhS
ZW1vdGVBUEksIGNvbmZpZywgYnVpbGRlck5hbWVUb0lETWFwKCkpOwogICAgICAgICAgICAgfSwg
L0J1aWxkIHByb3BlcnRpZXMgInNvbWUiIHNwZWNpZmllcyBhIG5vbi1zdHJpbmcgdmFsdWUgb2Yg
dHlwZSAib2JqZWN0Ii8pOwogICAgICAgICAgICAgYXNzZXJ0LnRocm93cygoKSA9PiB7CiAgICAg
ICAgICAgICAgICAgY29uc3QgY29uZmlnID0gc21hbGxDb25maWd1cmF0aW9uKCk7CiAgICAgICAg
ICAgICAgICAgY29uZmlnLnR5cGVzW2ZpcnN0VHlwZV0ucHJvcGVydGllcyA9IHsnc29tZSc6IHsn
cmV2aXNpb24nOiAnV2ViS2l0J319OwotICAgICAgICAgICAgICAgIEJ1aWxkYm90U3luY2VyLl9s
b2FkQ29uZmlnKFJlbW90ZUFQSSwgY29uZmlnKTsKKyAgICAgICAgICAgICAgICBCdWlsZGJvdFN5
bmNlci5fbG9hZENvbmZpZyhSZW1vdGVBUEksIGNvbmZpZywgYnVpbGRlck5hbWVUb0lETWFwKCkp
OwogICAgICAgICAgICAgfSwgL0J1aWxkIHByb3BlcnRpZXMgInNvbWUiIHNwZWNpZmllcyBhIG5v
bi1zdHJpbmcgdmFsdWUgb2YgdHlwZSAib2JqZWN0Ii8pOwogICAgICAgICAgICAgYXNzZXJ0LnRo
cm93cygoKSA9PiB7CiAgICAgICAgICAgICAgICAgY29uc3QgY29uZmlnID0gc21hbGxDb25maWd1
cmF0aW9uKCk7CiAgICAgICAgICAgICAgICAgY29uZmlnLnR5cGVzW2ZpcnN0VHlwZV0ucHJvcGVy
dGllcyA9IHsnc29tZSc6IDF9OwotICAgICAgICAgICAgICAgIEJ1aWxkYm90U3luY2VyLl9sb2Fk
Q29uZmlnKFJlbW90ZUFQSSwgY29uZmlnKTsKKyAgICAgICAgICAgICAgICBCdWlsZGJvdFN5bmNl
ci5fbG9hZENvbmZpZyhSZW1vdGVBUEksIGNvbmZpZywgYnVpbGRlck5hbWVUb0lETWFwKCkpOwog
ICAgICAgICAgICAgfSwgLyBCdWlsZCBwcm9wZXJ0aWVzICJzb21lIiBzcGVjaWZpZXMgYSBub24t
c3RyaW5nIHZhbHVlIG9mIHR5cGUgIm9iamVjdCIvKTsKICAgICAgICAgfSk7CiAKQEAgLTU2Niwz
MiArNTcxLDMyIEBAIGRlc2NyaWJlKCdCdWlsZGJvdFN5bmNlcicsICgpID0+IHsKICAgICAgICAg
ICAgIGFzc2VydC50aHJvd3MoKCkgPT4gewogICAgICAgICAgICAgICAgIGNvbnN0IGNvbmZpZyA9
IHNtYWxsQ29uZmlndXJhdGlvbigpOwogICAgICAgICAgICAgICAgIGNvbmZpZy5idWlsZGVyc1tm
aXJzdEJ1aWxkZXJdLnByb3BlcnRpZXMgPSAnaGVsbG8nOwotICAgICAgICAgICAgICAgIEJ1aWxk
Ym90U3luY2VyLl9sb2FkQ29uZmlnKE1vY2tSZW1vdGVBUEksIGNvbmZpZyk7CisgICAgICAgICAg
ICAgICAgQnVpbGRib3RTeW5jZXIuX2xvYWRDb25maWcoTW9ja1JlbW90ZUFQSSwgY29uZmlnLCBi
dWlsZGVyTmFtZVRvSURNYXAoKSk7CiAgICAgICAgICAgICB9LCAvQnVpbGQgcHJvcGVydGllcyBz
aG91bGQgYmUgYSBkaWN0aW9uYXJ5Lyk7CiAgICAgICAgICAgICBhc3NlcnQudGhyb3dzKCgpID0+
IHsKICAgICAgICAgICAgICAgICBjb25zdCBjb25maWcgPSBzbWFsbENvbmZpZ3VyYXRpb24oKTsK
ICAgICAgICAgICAgICAgICBjb25maWcuYnVpbGRlcnNbZmlyc3RCdWlsZGVyXS5wcm9wZXJ0aWVz
ID0geydzb21lJzogeydvdGhlcktleSc6ICdzb21lIHJvb3QnfX07Ci0gICAgICAgICAgICAgICAg
QnVpbGRib3RTeW5jZXIuX2xvYWRDb25maWcoUmVtb3RlQVBJLCBjb25maWcpOworICAgICAgICAg
ICAgICAgIEJ1aWxkYm90U3luY2VyLl9sb2FkQ29uZmlnKFJlbW90ZUFQSSwgY29uZmlnLCBidWls
ZGVyTmFtZVRvSURNYXAoKSk7CiAgICAgICAgICAgICB9LCAvQnVpbGQgcHJvcGVydGllcyAic29t
ZSIgc3BlY2lmaWVzIGEgbm9uLXN0cmluZyB2YWx1ZSBvZiB0eXBlICJvYmplY3QiLyk7CiAgICAg
ICAgICAgICBhc3NlcnQudGhyb3dzKCgpID0+IHsKICAgICAgICAgICAgICAgICBjb25zdCBjb25m
aWcgPSBzbWFsbENvbmZpZ3VyYXRpb24oKTsKICAgICAgICAgICAgICAgICBjb25maWcuYnVpbGRl
cnNbZmlyc3RCdWlsZGVyXS5wcm9wZXJ0aWVzID0geydzb21lJzogeydvdGhlcktleSc6ICdzb21l
IHJvb3QnfX07Ci0gICAgICAgICAgICAgICAgQnVpbGRib3RTeW5jZXIuX2xvYWRDb25maWcoUmVt
b3RlQVBJLCBjb25maWcpOworICAgICAgICAgICAgICAgIEJ1aWxkYm90U3luY2VyLl9sb2FkQ29u
ZmlnKFJlbW90ZUFQSSwgY29uZmlnLCBidWlsZGVyTmFtZVRvSURNYXAoKSk7CiAgICAgICAgICAg
ICB9LCAvQnVpbGQgcHJvcGVydGllcyAic29tZSIgc3BlY2lmaWVzIGEgbm9uLXN0cmluZyB2YWx1
ZSBvZiB0eXBlICJvYmplY3QiLyk7CiAgICAgICAgICAgICBhc3NlcnQudGhyb3dzKCgpID0+IHsK
ICAgICAgICAgICAgICAgICBjb25zdCBjb25maWcgPSBzbWFsbENvbmZpZ3VyYXRpb24oKTsKICAg
ICAgICAgICAgICAgICBjb25maWcuYnVpbGRlcnNbZmlyc3RCdWlsZGVyXS5wcm9wZXJ0aWVzID0g
eydzb21lJzogeydyZXZpc2lvbic6ICdXZWJLaXQnfX07Ci0gICAgICAgICAgICAgICAgQnVpbGRi
b3RTeW5jZXIuX2xvYWRDb25maWcoUmVtb3RlQVBJLCBjb25maWcpOworICAgICAgICAgICAgICAg
IEJ1aWxkYm90U3luY2VyLl9sb2FkQ29uZmlnKFJlbW90ZUFQSSwgY29uZmlnLCBidWlsZGVyTmFt
ZVRvSURNYXAoKSk7CiAgICAgICAgICAgICB9LCAvQnVpbGQgcHJvcGVydGllcyAic29tZSIgc3Bl
Y2lmaWVzIGEgbm9uLXN0cmluZyB2YWx1ZSBvZiB0eXBlICJvYmplY3QiLyk7CiAgICAgICAgICAg
ICBhc3NlcnQudGhyb3dzKCgpID0+IHsKICAgICAgICAgICAgICAgICBjb25zdCBjb25maWcgPSBz
bWFsbENvbmZpZ3VyYXRpb24oKTsKICAgICAgICAgICAgICAgICBjb25maWcuYnVpbGRlcnNbZmly
c3RCdWlsZGVyXS5wcm9wZXJ0aWVzID0geydzb21lJzogMX07Ci0gICAgICAgICAgICAgICAgQnVp
bGRib3RTeW5jZXIuX2xvYWRDb25maWcoUmVtb3RlQVBJLCBjb25maWcpOworICAgICAgICAgICAg
ICAgIEJ1aWxkYm90U3luY2VyLl9sb2FkQ29uZmlnKFJlbW90ZUFQSSwgY29uZmlnLCBidWlsZGVy
TmFtZVRvSURNYXAoKSk7CiAgICAgICAgICAgICB9LCAvQnVpbGQgcHJvcGVydGllcyAic29tZSIg
c3BlY2lmaWVzIGEgbm9uLXN0cmluZyB2YWx1ZSBvZiB0eXBlICJvYmplY3QiLyk7CiAgICAgICAg
IH0pOwogCiAgICAgICAgIGl0KCdzaG91bGQgY3JlYXRlIEJ1aWxkYm90U3luY2VyIG9iamVjdHMg
Zm9yIHZhbGlkIGNvbmZpZ3VyYXRpb25zJywgKCkgPT4gewotICAgICAgICAgICAgbGV0IHN5bmNl
cnMgPSBCdWlsZGJvdFN5bmNlci5fbG9hZENvbmZpZyhSZW1vdGVBUEksIHNhbXBsZWlPU0NvbmZp
ZygpKTsKKyAgICAgICAgICAgIGxldCBzeW5jZXJzID0gQnVpbGRib3RTeW5jZXIuX2xvYWRDb25m
aWcoUmVtb3RlQVBJLCBzYW1wbGVpT1NDb25maWcoKSwgYnVpbGRlck5hbWVUb0lETWFwKCkpOwog
ICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHN5bmNlcnMubGVuZ3RoLCAzKTsKICAgICAgICAgICAg
IGFzc2VydC5vayhzeW5jZXJzWzBdIGluc3RhbmNlb2YgQnVpbGRib3RTeW5jZXIpOwogICAgICAg
ICAgICAgYXNzZXJ0Lm9rKHN5bmNlcnNbMV0gaW5zdGFuY2VvZiBCdWlsZGJvdFN5bmNlcik7CkBA
IC01OTksMTQgKzYwNCwxNCBAQCBkZXNjcmliZSgnQnVpbGRib3RTeW5jZXInLCAoKSA9PiB7CiAg
ICAgICAgIH0pOwogCiAgICAgICAgIGl0KCdzaG91bGQgcGFyc2UgYnVpbGRlciBuYW1lcyBjb3Jy
ZWN0bHknLCAoKSA9PiB7Ci0gICAgICAgICAgICBsZXQgc3luY2VycyA9IEJ1aWxkYm90U3luY2Vy
Ll9sb2FkQ29uZmlnKFJlbW90ZUFQSSwgc2FtcGxlaU9TQ29uZmlnKCkpOworICAgICAgICAgICAg
bGV0IHN5bmNlcnMgPSBCdWlsZGJvdFN5bmNlci5fbG9hZENvbmZpZyhSZW1vdGVBUEksIHNhbXBs
ZWlPU0NvbmZpZygpLCBidWlsZGVyTmFtZVRvSURNYXAoKSk7CiAgICAgICAgICAgICBhc3NlcnQu
ZXF1YWwoc3luY2Vyc1swXS5idWlsZGVyTmFtZSgpLCAnQUJUZXN0LWlQaG9uZS1SdW5CZW5jaG1h
cmstVGVzdHMnKTsKICAgICAgICAgICAgIGFzc2VydC5lcXVhbChzeW5jZXJzWzFdLmJ1aWxkZXJO
YW1lKCksICdBQlRlc3QtaVBhZC1SdW5CZW5jaG1hcmstVGVzdHMnKTsKICAgICAgICAgICAgIGFz
c2VydC5lcXVhbChzeW5jZXJzWzJdLmJ1aWxkZXJOYW1lKCksICdBQlRlc3QtaU9TLUJ1aWxkZXIn
KTsKICAgICAgICAgfSk7CiAKICAgICAgICAgaXQoJ3Nob3VsZCBwYXJzZSB0ZXN0IGNvbmZpZ3Vy
YXRpb25zIHdpdGggYnVpbGQgY29uZmlndXJhdGlvbnMgY29ycmVjdGx5JywgKCkgPT4gewotICAg
ICAgICAgICAgbGV0IHN5bmNlcnMgPSBCdWlsZGJvdFN5bmNlci5fbG9hZENvbmZpZyhSZW1vdGVB
UEksIHNhbXBsZWlPU0NvbmZpZygpKTsKKyAgICAgICAgICAgIGxldCBzeW5jZXJzID0gQnVpbGRi
b3RTeW5jZXIuX2xvYWRDb25maWcoUmVtb3RlQVBJLCBzYW1wbGVpT1NDb25maWcoKSwgYnVpbGRl
ck5hbWVUb0lETWFwKCkpOwogCiAgICAgICAgICAgICBsZXQgY29uZmlndXJhdGlvbnMgPSBzeW5j
ZXJzWzBdLnRlc3RDb25maWd1cmF0aW9ucygpOwogICAgICAgICAgICAgYXNzZXJ0KHN5bmNlcnNb
MF0uaXNUZXN0ZXIoKSk7CkBAIC02NDIsMTIgKzY0NywxMiBAQCBkZXNjcmliZSgnQnVpbGRib3RT
eW5jZXInLCAoKSA9PiB7CiAgICAgICAgICAgICBhc3NlcnQudGhyb3dzKCgpID0+IHsKICAgICAg
ICAgICAgICAgICBjb25zdCBjb25maWcgPSBzYW1wbGVpT1NDb25maWcoKTsKICAgICAgICAgICAg
ICAgICBjb25maWcuYnVpbGRDb25maWd1cmF0aW9uc1swXS5idWlsZGVycyA9IGNvbmZpZy50ZXN0
Q29uZmlndXJhdGlvbnNbMF0uYnVpbGRlcnM7Ci0gICAgICAgICAgICAgICAgQnVpbGRib3RTeW5j
ZXIuX2xvYWRDb25maWcoTW9ja1JlbW90ZUFQSSwgY29uZmlnKTsKKyAgICAgICAgICAgICAgICBC
dWlsZGJvdFN5bmNlci5fbG9hZENvbmZpZyhNb2NrUmVtb3RlQVBJLCBjb25maWcsIGJ1aWxkZXJO
YW1lVG9JRE1hcCgpKTsKICAgICAgICAgICAgIH0pOwogICAgICAgICB9KTsKIAogICAgICAgICBp
dCgnc2hvdWxkIHBhcnNlIHRlc3QgY29uZmlndXJhdGlvbnMgd2l0aCB0eXBlcyBhbmQgcGxhdGZv
cm1zIGV4cGFuc2lvbnMgY29ycmVjdGx5JywgKCkgPT4gewotICAgICAgICAgICAgY29uc3Qgc3lu
Y2VycyA9IEJ1aWxkYm90U3luY2VyLl9sb2FkQ29uZmlnKFJlbW90ZUFQSSwgc2FtcGxlaU9TQ29u
ZmlnV2l0aEV4cGFuc2lvbnMoKSk7CisgICAgICAgICAgICBjb25zdCBzeW5jZXJzID0gQnVpbGRi
b3RTeW5jZXIuX2xvYWRDb25maWcoUmVtb3RlQVBJLCBzYW1wbGVpT1NDb25maWdXaXRoRXhwYW5z
aW9ucygpLCBidWlsZGVyTmFtZVRvSURNYXAoKSk7CiAKICAgICAgICAgICAgIGFzc2VydC5lcXVh
bChzeW5jZXJzLmxlbmd0aCwgMyk7CiAKQEAgLTY4OCwxMiArNjkzLDEyIEBAIGRlc2NyaWJlKCdC
dWlsZGJvdFN5bmNlcicsICgpID0+IHsKICAgICAgICAgICAgIGFzc2VydC50aHJvd3MoKCkgPT4g
ewogICAgICAgICAgICAgICAgIGNvbnN0IGNvbmZpZyA9IHNtYWxsQ29uZmlndXJhdGlvbigpOwog
ICAgICAgICAgICAgICAgIGNvbmZpZy5yZXBvc2l0b3J5R3JvdXBzID0gMTsKLSAgICAgICAgICAg
ICAgICBCdWlsZGJvdFN5bmNlci5fbG9hZENvbmZpZyhNb2NrUmVtb3RlQVBJLCBjb25maWcpOwor
ICAgICAgICAgICAgICAgIEJ1aWxkYm90U3luY2VyLl9sb2FkQ29uZmlnKE1vY2tSZW1vdGVBUEks
IGNvbmZpZywgYnVpbGRlck5hbWVUb0lETWFwKCkpOwogICAgICAgICAgICAgfSwgL3JlcG9zaXRv
cnlHcm91cHMgbXVzdCBzcGVjaWZ5IGEgZGljdGlvbmFyeSBmcm9tIHRoZSBuYW1lIHRvIGl0cyBk
ZWZpbml0aW9uLyk7CiAgICAgICAgICAgICBhc3NlcnQudGhyb3dzKCgpID0+IHsKICAgICAgICAg
ICAgICAgICBjb25zdCBjb25maWcgPSBzbWFsbENvbmZpZ3VyYXRpb24oKTsKICAgICAgICAgICAg
ICAgICBjb25maWcucmVwb3NpdG9yeUdyb3VwcyA9ICdoZWxsbyc7Ci0gICAgICAgICAgICAgICAg
QnVpbGRib3RTeW5jZXIuX2xvYWRDb25maWcoTW9ja1JlbW90ZUFQSSwgY29uZmlnKTsKKyAgICAg
ICAgICAgICAgICBCdWlsZGJvdFN5bmNlci5fbG9hZENvbmZpZyhNb2NrUmVtb3RlQVBJLCBjb25m
aWcsIGJ1aWxkZXJOYW1lVG9JRE1hcCgpKTsKICAgICAgICAgICAgIH0sIC9yZXBvc2l0b3J5R3Jv
dXBzIG11c3Qgc3BlY2lmeSBhIGRpY3Rpb25hcnkgZnJvbSB0aGUgbmFtZSB0byBpdHMgZGVmaW5p
dGlvbi8pOwogICAgICAgICB9KTsKIApAQCAtNzAxLDEyICs3MDYsMTIgQEAgZGVzY3JpYmUoJ0J1
aWxkYm90U3luY2VyJywgKCkgPT4gewogICAgICAgICAgICAgYXNzZXJ0LnRocm93cygoKSA9PiB7
CiAgICAgICAgICAgICAgICAgY29uc3QgY29uZmlnID0gc21hbGxDb25maWd1cmF0aW9uKCk7CiAg
ICAgICAgICAgICAgICAgY29uZmlnLnJlcG9zaXRvcnlHcm91cHMgPSB7J3NvbWUtZ3JvdXAnOiB7
dGVzdFByb3BlcnRpZXM6IHt9fX07Ci0gICAgICAgICAgICAgICAgQnVpbGRib3RTeW5jZXIuX2xv
YWRDb25maWcoTW9ja1JlbW90ZUFQSSwgY29uZmlnKTsKKyAgICAgICAgICAgICAgICBCdWlsZGJv
dFN5bmNlci5fbG9hZENvbmZpZyhNb2NrUmVtb3RlQVBJLCBjb25maWcsIGJ1aWxkZXJOYW1lVG9J
RE1hcCgpKTsKICAgICAgICAgICAgIH0sIC9SZXBvc2l0b3J5IGdyb3VwICJzb21lLWdyb3VwIiBk
b2VzIG5vdCBzcGVjaWZ5IGEgZGljdGlvbmFyeSBvZiByZXBvc2l0b3JpZXMvKTsKICAgICAgICAg
ICAgIGFzc2VydC50aHJvd3MoKCkgPT4gewogICAgICAgICAgICAgICAgIGNvbnN0IGNvbmZpZyA9
IHNtYWxsQ29uZmlndXJhdGlvbigpOwogICAgICAgICAgICAgICAgIGNvbmZpZy5yZXBvc2l0b3J5
R3JvdXBzID0geydzb21lLWdyb3VwJzoge3JlcG9zaXRvcmllczogMX0sIHRlc3RQcm9wZXJ0aWVz
OiB7fX07Ci0gICAgICAgICAgICAgICAgQnVpbGRib3RTeW5jZXIuX2xvYWRDb25maWcoTW9ja1Jl
bW90ZUFQSSwgY29uZmlnKTsKKyAgICAgICAgICAgICAgICBCdWlsZGJvdFN5bmNlci5fbG9hZENv
bmZpZyhNb2NrUmVtb3RlQVBJLCBjb25maWcsIGJ1aWxkZXJOYW1lVG9JRE1hcCgpKTsKICAgICAg
ICAgICAgIH0sIC9SZXBvc2l0b3J5IGdyb3VwICJzb21lLWdyb3VwIiBkb2VzIG5vdCBzcGVjaWZ5
IGEgZGljdGlvbmFyeSBvZiByZXBvc2l0b3JpZXMvKTsKICAgICAgICAgfSk7CiAKQEAgLTcxNCw3
ICs3MTksNyBAQCBkZXNjcmliZSgnQnVpbGRib3RTeW5jZXInLCAoKSA9PiB7CiAgICAgICAgICAg
ICBhc3NlcnQudGhyb3dzKCgpID0+IHsKICAgICAgICAgICAgICAgICBjb25zdCBjb25maWcgPSBz
bWFsbENvbmZpZ3VyYXRpb24oKTsKICAgICAgICAgICAgICAgICBjb25maWcucmVwb3NpdG9yeUdy
b3VwcyA9IHsnc29tZS1ncm91cCc6IHtyZXBvc2l0b3JpZXM6IHt9LCB0ZXN0UHJvcGVydGllczog
e319fTsKLSAgICAgICAgICAgICAgICBCdWlsZGJvdFN5bmNlci5fbG9hZENvbmZpZyhNb2NrUmVt
b3RlQVBJLCBjb25maWcpOworICAgICAgICAgICAgICAgIEJ1aWxkYm90U3luY2VyLl9sb2FkQ29u
ZmlnKE1vY2tSZW1vdGVBUEksIGNvbmZpZywgYnVpbGRlck5hbWVUb0lETWFwKCkpOwogICAgICAg
ICAgICAgfSwgL1JlcG9zaXRvcnkgZ3JvdXAgInNvbWUtZ3JvdXAiIGRvZXMgbm90IHNwZWNpZnkg
YW55IHJlcG9zaXRvcnkvKTsKICAgICAgICAgfSk7CiAKQEAgLTcyMiw3ICs3MjcsNyBAQCBkZXNj
cmliZSgnQnVpbGRib3RTeW5jZXInLCAoKSA9PiB7CiAgICAgICAgICAgICBhc3NlcnQudGhyb3dz
KCgpID0+IHsKICAgICAgICAgICAgICAgICBjb25zdCBjb25maWcgPSBzbWFsbENvbmZpZ3VyYXRp
b24oKTsKICAgICAgICAgICAgICAgICBjb25maWcucmVwb3NpdG9yeUdyb3VwcyA9IHsnc29tZS1n
cm91cCc6IHtyZXBvc2l0b3JpZXM6IHsnSW52YWxpZFJlcG9zaXRvcnlOYW1lJzoge319fX07Ci0g
ICAgICAgICAgICAgICAgQnVpbGRib3RTeW5jZXIuX2xvYWRDb25maWcoTW9ja1JlbW90ZUFQSSwg
Y29uZmlnKTsKKyAgICAgICAgICAgICAgICBCdWlsZGJvdFN5bmNlci5fbG9hZENvbmZpZyhNb2Nr
UmVtb3RlQVBJLCBjb25maWcsIGJ1aWxkZXJOYW1lVG9JRE1hcCgpKTsKICAgICAgICAgICAgIH0s
IC8iSW52YWxpZFJlcG9zaXRvcnlOYW1lIiBpcyBub3QgYSB2YWxpZCByZXBvc2l0b3J5IG5hbWUv
KTsKICAgICAgICAgfSk7CiAKQEAgLTczMCw3ICs3MzUsNyBAQCBkZXNjcmliZSgnQnVpbGRib3RT
eW5jZXInLCAoKSA9PiB7CiAgICAgICAgICAgICBhc3NlcnQudGhyb3dzKCgpID0+IHsKICAgICAg
ICAgICAgICAgICBjb25zdCBjb25maWcgPSBzbWFsbENvbmZpZ3VyYXRpb24oKTsKICAgICAgICAg
ICAgICAgICBjb25maWcucmVwb3NpdG9yeUdyb3VwcyA9IHsnc29tZS1ncm91cCc6IHtyZXBvc2l0
b3JpZXM6IHsnV2ViS2l0JzogMX19fTsKLSAgICAgICAgICAgICAgICBCdWlsZGJvdFN5bmNlci5f
bG9hZENvbmZpZyhNb2NrUmVtb3RlQVBJLCBjb25maWcpOworICAgICAgICAgICAgICAgIEJ1aWxk
Ym90U3luY2VyLl9sb2FkQ29uZmlnKE1vY2tSZW1vdGVBUEksIGNvbmZpZywgYnVpbGRlck5hbWVU
b0lETWFwKCkpOwogICAgICAgICAgICAgfSwgLyJXZWJLaXQiIHNwZWNpZmllcyBhIG5vbi1kaWN0
aW9uYXJ5IHZhbHVlLyk7CiAgICAgICAgIH0pOwogCkBAIC03MzgsMTIgKzc0MywxMiBAQCBkZXNj
cmliZSgnQnVpbGRib3RTeW5jZXInLCAoKSA9PiB7CiAgICAgICAgICAgICBhc3NlcnQudGhyb3dz
KCgpID0+IHsKICAgICAgICAgICAgICAgICBjb25zdCBjb25maWcgPSBzbWFsbENvbmZpZ3VyYXRp
b24oKTsKICAgICAgICAgICAgICAgICBjb25maWcucmVwb3NpdG9yeUdyb3VwcyA9IHsnc29tZS1n
cm91cCc6IHtyZXBvc2l0b3JpZXM6IHsnV2ViS2l0Jzoge319LCBkZXNjcmlwdGlvbjogMX19Owot
ICAgICAgICAgICAgICAgIEJ1aWxkYm90U3luY2VyLl9sb2FkQ29uZmlnKE1vY2tSZW1vdGVBUEks
IGNvbmZpZyk7CisgICAgICAgICAgICAgICAgQnVpbGRib3RTeW5jZXIuX2xvYWRDb25maWcoTW9j
a1JlbW90ZUFQSSwgY29uZmlnLCBidWlsZGVyTmFtZVRvSURNYXAoKSk7CiAgICAgICAgICAgICB9
LCAvUmVwb3NpdG9yeSBncm91cCAic29tZS1ncm91cCIgaGF2ZSBhbiBpbnZhbGlkIGRlc2NyaXB0
aW9uLyk7CiAgICAgICAgICAgICBhc3NlcnQudGhyb3dzKCgpID0+IHsKICAgICAgICAgICAgICAg
ICBjb25zdCBjb25maWcgPSBzbWFsbENvbmZpZ3VyYXRpb24oKTsKICAgICAgICAgICAgICAgICBj
b25maWcucmVwb3NpdG9yeUdyb3VwcyA9IHsnc29tZS1ncm91cCc6IHtyZXBvc2l0b3JpZXM6IHsn
V2ViS2l0Jzoge319LCBkZXNjcmlwdGlvbjogWzEsIDJdfX07Ci0gICAgICAgICAgICAgICAgQnVp
bGRib3RTeW5jZXIuX2xvYWRDb25maWcoTW9ja1JlbW90ZUFQSSwgY29uZmlnKTsKKyAgICAgICAg
ICAgICAgICBCdWlsZGJvdFN5bmNlci5fbG9hZENvbmZpZyhNb2NrUmVtb3RlQVBJLCBjb25maWcs
IGJ1aWxkZXJOYW1lVG9JRE1hcCgpKTsKICAgICAgICAgICAgIH0sIC9SZXBvc2l0b3J5IGdyb3Vw
ICJzb21lLWdyb3VwIiBoYXZlIGFuIGludmFsaWQgZGVzY3JpcHRpb24vKTsKICAgICAgICAgfSk7
CiAKQEAgLTc1MSwxMiArNzU2LDEyIEBAIGRlc2NyaWJlKCdCdWlsZGJvdFN5bmNlcicsICgpID0+
IHsKICAgICAgICAgICAgIGFzc2VydC50aHJvd3MoKCkgPT4gewogICAgICAgICAgICAgICAgIGNv
bnN0IGNvbmZpZyA9IHNtYWxsQ29uZmlndXJhdGlvbigpOwogICAgICAgICAgICAgICAgIGNvbmZp
Zy5yZXBvc2l0b3J5R3JvdXBzID0geydzb21lLWdyb3VwJzoge3JlcG9zaXRvcmllczogeydXZWJL
aXQnOiB7fX0sIHRlc3RQcm9wZXJ0aWVzOiAxfX07Ci0gICAgICAgICAgICAgICAgQnVpbGRib3RT
eW5jZXIuX2xvYWRDb25maWcoTW9ja1JlbW90ZUFQSSwgY29uZmlnKTsKKyAgICAgICAgICAgICAg
ICBCdWlsZGJvdFN5bmNlci5fbG9hZENvbmZpZyhNb2NrUmVtb3RlQVBJLCBjb25maWcsIGJ1aWxk
ZXJOYW1lVG9JRE1hcCgpKTsKICAgICAgICAgICAgIH0sIC9SZXBvc2l0b3J5IGdyb3VwICJzb21l
LWdyb3VwIiBzcGVjaWZpZXMgdGhlIHRlc3QgY29uZmlndXJhdGlvbnMgd2l0aCBhbiBpbnZhbGlk
IHR5cGUvKTsKICAgICAgICAgICAgIGFzc2VydC50aHJvd3MoKCkgPT4gewogICAgICAgICAgICAg
ICAgIGNvbnN0IGNvbmZpZyA9IHNtYWxsQ29uZmlndXJhdGlvbigpOwogICAgICAgICAgICAgICAg
IGNvbmZpZy5yZXBvc2l0b3J5R3JvdXBzID0geydzb21lLWdyb3VwJzoge3JlcG9zaXRvcmllczog
eydXZWJLaXQnOiB7fX0sIHRlc3RQcm9wZXJ0aWVzOiAnaGVsbG8nfX07Ci0gICAgICAgICAgICAg
ICAgQnVpbGRib3RTeW5jZXIuX2xvYWRDb25maWcoTW9ja1JlbW90ZUFQSSwgY29uZmlnKTsKKyAg
ICAgICAgICAgICAgICBCdWlsZGJvdFN5bmNlci5fbG9hZENvbmZpZyhNb2NrUmVtb3RlQVBJLCBj
b25maWcsIGJ1aWxkZXJOYW1lVG9JRE1hcCgpKTsKICAgICAgICAgICAgIH0sIC9SZXBvc2l0b3J5
IGdyb3VwICJzb21lLWdyb3VwIiBzcGVjaWZpZXMgdGhlIHRlc3QgY29uZmlndXJhdGlvbnMgd2l0
aCBhbiBpbnZhbGlkIHR5cGUvKTsKICAgICAgICAgfSk7CiAKQEAgLTc2NCw3ICs3NjksNyBAQCBk
ZXNjcmliZSgnQnVpbGRib3RTeW5jZXInLCAoKSA9PiB7CiAgICAgICAgICAgICBhc3NlcnQudGhy
b3dzKCgpID0+IHsKICAgICAgICAgICAgICAgICBjb25zdCBjb25maWcgPSBzbWFsbENvbmZpZ3Vy
YXRpb24oKTsKICAgICAgICAgICAgICAgICBjb25maWcucmVwb3NpdG9yeUdyb3VwcyA9IHsnc29t
ZS1ncm91cCc6IHtyZXBvc2l0b3JpZXM6IHsnV2ViS2l0Jzoge319LCB0ZXN0UHJvcGVydGllczog
eyd3ayc6IHtyZXZpc2lvbjogJ0ludmFsaWRSZXBvc2l0b3J5J319fX07Ci0gICAgICAgICAgICAg
ICAgQnVpbGRib3RTeW5jZXIuX2xvYWRDb25maWcoTW9ja1JlbW90ZUFQSSwgY29uZmlnKTsKKyAg
ICAgICAgICAgICAgICBCdWlsZGJvdFN5bmNlci5fbG9hZENvbmZpZyhNb2NrUmVtb3RlQVBJLCBj
b25maWcsIGJ1aWxkZXJOYW1lVG9JRE1hcCgpKTsKICAgICAgICAgICAgIH0sIC9SZXBvc2l0b3J5
IGdyb3VwICJzb21lLWdyb3VwIiBhbiBpbnZhbGlkIHJlcG9zaXRvcnkgIkludmFsaWRSZXBvc2l0
b3J5Ii8pOwogICAgICAgICB9KTsKIApAQCAtNzcyLDcgKzc3Nyw3IEBAIGRlc2NyaWJlKCdCdWls
ZGJvdFN5bmNlcicsICgpID0+IHsKICAgICAgICAgICAgIGFzc2VydC50aHJvd3MoKCkgPT4gewog
ICAgICAgICAgICAgICAgIGNvbnN0IGNvbmZpZyA9IHNtYWxsQ29uZmlndXJhdGlvbigpOwogICAg
ICAgICAgICAgICAgIGNvbmZpZy5yZXBvc2l0b3J5R3JvdXBzID0geydzb21lLWdyb3VwJzoge3Jl
cG9zaXRvcmllczogeydXZWJLaXQnOiB7fX0sIHRlc3RQcm9wZXJ0aWVzOiB7J29zJzoge3Jldmlz
aW9uOiAnaU9TJ319fX07Ci0gICAgICAgICAgICAgICAgQnVpbGRib3RTeW5jZXIuX2xvYWRDb25m
aWcoTW9ja1JlbW90ZUFQSSwgY29uZmlnKTsKKyAgICAgICAgICAgICAgICBCdWlsZGJvdFN5bmNl
ci5fbG9hZENvbmZpZyhNb2NrUmVtb3RlQVBJLCBjb25maWcsIGJ1aWxkZXJOYW1lVG9JRE1hcCgp
KTsKICAgICAgICAgICAgIH0sIC9SZXBvc2l0b3J5IGdyb3VwICJzb21lLWdyb3VwIiBhbiBpbnZh
bGlkIHJlcG9zaXRvcnkgImlPUyIvKTsKICAgICAgICAgICAgIGFzc2VydC50aHJvd3MoKCkgPT4g
ewogICAgICAgICAgICAgICAgIGNvbnN0IGNvbmZpZyA9IHNtYWxsQ29uZmlndXJhdGlvbigpOwpA
QCAtNzgxLDcgKzc4Niw3IEBAIGRlc2NyaWJlKCdCdWlsZGJvdFN5bmNlcicsICgpID0+IHsKICAg
ICAgICAgICAgICAgICAgICAgdGVzdFByb3BlcnRpZXM6IHsnd2snOiB7cmV2aXNpb246ICdXZWJL
aXQnfSwgJ2luc3RhbGwtcm9vdHMnOiB7J3Jvb3RzJzoge319fSwKICAgICAgICAgICAgICAgICAg
ICAgYnVpbGRQcm9wZXJ0aWVzOiB7J29zJzoge3JldmlzaW9uOiAnaU9TJ319LAogICAgICAgICAg
ICAgICAgICAgICBhY2NlcHRzUm9vdHM6IHRydWV9fTsKLSAgICAgICAgICAgICAgICBCdWlsZGJv
dFN5bmNlci5fbG9hZENvbmZpZyhNb2NrUmVtb3RlQVBJLCBjb25maWcpOworICAgICAgICAgICAg
ICAgIEJ1aWxkYm90U3luY2VyLl9sb2FkQ29uZmlnKE1vY2tSZW1vdGVBUEksIGNvbmZpZywgYnVp
bGRlck5hbWVUb0lETWFwKCkpOwogICAgICAgICAgICAgfSwgL1JlcG9zaXRvcnkgZ3JvdXAgInNv
bWUtZ3JvdXAiIGFuIGludmFsaWQgcmVwb3NpdG9yeSAiaU9TIi8pOwogICAgICAgICB9KTsKIApA
QCAtNzkzLDcgKzc5OCw3IEBAIGRlc2NyaWJlKCdCdWlsZGJvdFN5bmNlcicsICgpID0+IHsKICAg
ICAgICAgICAgICAgICAgICAgdGVzdFByb3BlcnRpZXM6IHsnd2snOiB7cmV2aXNpb246ICdXZWJL
aXQnfSwgJ2lvcyc6IHtyZXZpc2lvbjogJ2lPUyd9LCAnaW5zdGFsbC1yb290cyc6IHsncm9vdHMn
OiB7fX19LAogICAgICAgICAgICAgICAgICAgICBidWlsZFByb3BlcnRpZXM6IHsnd2snOiB7cmV2
aXNpb246ICdXZWJLaXQnfSwgJ2lvcyc6IHtyZXZpc2lvbjogJ2lPUyd9LCAnd2stcGF0Y2gnOiB7
cGF0Y2g6ICdpT1MnfX0sCiAgICAgICAgICAgICAgICAgICAgIGFjY2VwdHNSb290czogdHJ1ZX19
OwotICAgICAgICAgICAgICAgIEJ1aWxkYm90U3luY2VyLl9sb2FkQ29uZmlnKE1vY2tSZW1vdGVB
UEksIGNvbmZpZyk7CisgICAgICAgICAgICAgICAgQnVpbGRib3RTeW5jZXIuX2xvYWRDb25maWco
TW9ja1JlbW90ZUFQSSwgY29uZmlnLCBidWlsZGVyTmFtZVRvSURNYXAoKSk7CiAgICAgICAgICAg
ICB9LCAvUmVwb3NpdG9yeSBncm91cCAic29tZS1ncm91cCIgc3BlY2lmaWVzIGEgcGF0Y2ggZm9y
ICJpT1MiIGJ1dCBpdCBkb2VzIG5vdCBhY2NlcHQgYSBwYXRjaC8pOwogICAgICAgICB9KTsKIApA
QCAtODA1LDcgKzgxMCw3IEBAIGRlc2NyaWJlKCdCdWlsZGJvdFN5bmNlcicsICgpID0+IHsKICAg
ICAgICAgICAgICAgICAgICAgdGVzdFByb3BlcnRpZXM6IHsnd2snOiB7cmV2aXNpb246ICdXZWJL
aXQnfSwgJ2luc3RhbGwtcm9vdHMnOiB7J3Jvb3RzJzoge319fSwKICAgICAgICAgICAgICAgICAg
ICAgYnVpbGRQcm9wZXJ0aWVzOiB7J3drLXBhdGNoJzoge3BhdGNoOiAnV2ViS2l0J319LAogICAg
ICAgICAgICAgICAgICAgICBhY2NlcHRzUm9vdHM6IHRydWV9fTsKLSAgICAgICAgICAgICAgICBC
dWlsZGJvdFN5bmNlci5fbG9hZENvbmZpZyhNb2NrUmVtb3RlQVBJLCBjb25maWcpOworICAgICAg
ICAgICAgICAgIEJ1aWxkYm90U3luY2VyLl9sb2FkQ29uZmlnKE1vY2tSZW1vdGVBUEksIGNvbmZp
ZywgYnVpbGRlck5hbWVUb0lETWFwKCkpOwogICAgICAgICAgICAgfSwgL1JlcG9zaXRvcnkgZ3Jv
dXAgInNvbWUtZ3JvdXAiIHNwZWNpZmllcyBhIHBhdGNoIGZvciAiV2ViS2l0IiBidXQgZG9lcyBu
b3Qgc3BlY2lmeSBhIHJldmlzaW9uLyk7CiAgICAgICAgIH0pOwogCkBAIC04MTMsNyArODE4LDcg
QEAgZGVzY3JpYmUoJ0J1aWxkYm90U3luY2VyJywgKCkgPT4gewogICAgICAgICAgICAgYXNzZXJ0
LnRocm93cygoKSA9PiB7CiAgICAgICAgICAgICAgICAgY29uc3QgY29uZmlnID0gc21hbGxDb25m
aWd1cmF0aW9uKCk7CiAgICAgICAgICAgICAgICAgY29uZmlnLnJlcG9zaXRvcnlHcm91cHMgPSB7
J3NvbWUtZ3JvdXAnOiB7J3JlcG9zaXRvcmllcyc6IHsnV2ViS2l0Jzoge319LCB0ZXN0UHJvcGVy
dGllczoge319fTsKLSAgICAgICAgICAgICAgICBCdWlsZGJvdFN5bmNlci5fbG9hZENvbmZpZyhN
b2NrUmVtb3RlQVBJLCBjb25maWcpOworICAgICAgICAgICAgICAgIEJ1aWxkYm90U3luY2VyLl9s
b2FkQ29uZmlnKE1vY2tSZW1vdGVBUEksIGNvbmZpZywgYnVpbGRlck5hbWVUb0lETWFwKCkpOwog
ICAgICAgICAgICAgfSwgL1JlcG9zaXRvcnkgZ3JvdXAgInNvbWUtZ3JvdXAiIGRvZXMgbm90IHVz
ZSBzb21lIG9mIHRoZSByZXBvc2l0b3JpZXMgbGlzdGVkIGluIHRlc3RpbmcvKTsKICAgICAgICAg
ICAgIGFzc2VydC50aHJvd3MoKCkgPT4gewogICAgICAgICAgICAgICAgIGNvbnN0IGNvbmZpZyA9
IHNtYWxsQ29uZmlndXJhdGlvbigpOwpAQCAtODIyLDcgKzgyNyw3IEBAIGRlc2NyaWJlKCdCdWls
ZGJvdFN5bmNlcicsICgpID0+IHsKICAgICAgICAgICAgICAgICAgICAgdGVzdFByb3BlcnRpZXM6
IHsnd2snOiB7cmV2aXNpb246ICdXZWJLaXQnfSwgJ2luc3RhbGwtcm9vdHMnOiB7J3Jvb3RzJzog
e319fSwKICAgICAgICAgICAgICAgICAgICAgYnVpbGRQcm9wZXJ0aWVzOiB7fSwKICAgICAgICAg
ICAgICAgICAgICAgYWNjZXB0c1Jvb3RzOiB0cnVlfX07Ci0gICAgICAgICAgICAgICAgQnVpbGRi
b3RTeW5jZXIuX2xvYWRDb25maWcoTW9ja1JlbW90ZUFQSSwgY29uZmlnKTsKKyAgICAgICAgICAg
ICAgICBCdWlsZGJvdFN5bmNlci5fbG9hZENvbmZpZyhNb2NrUmVtb3RlQVBJLCBjb25maWcsIGJ1
aWxkZXJOYW1lVG9JRE1hcCgpKTsKICAgICAgICAgICAgIH0sIC9SZXBvc2l0b3J5IGdyb3VwICJz
b21lLWdyb3VwIiBkb2VzIG5vdCB1c2Ugc29tZSBvZiB0aGUgcmVwb3NpdG9yaWVzIGxpc3RlZCBp
biBidWlsZGluZyBhIHBhdGNoLyk7CiAgICAgICAgIH0pOwogCkBAIC04MzAsMTIgKzgzNSwxMiBA
QCBkZXNjcmliZSgnQnVpbGRib3RTeW5jZXInLCAoKSA9PiB7CiAgICAgICAgICAgICBhc3NlcnQu
dGhyb3dzKCgpID0+IHsKICAgICAgICAgICAgICAgICBjb25zdCBjb25maWcgPSBzbWFsbENvbmZp
Z3VyYXRpb24oKTsKICAgICAgICAgICAgICAgICBjb25maWcucmVwb3NpdG9yeUdyb3VwcyA9IHsn
c29tZS1ncm91cCc6IHsncmVwb3NpdG9yaWVzJzogeydXZWJLaXQnOiB7fX0sICd0ZXN0UHJvcGVy
dGllcyc6IHsnd2Via2l0JzogeydyZXZpc2lvbic6ICdXZWJLaXQnfX0sIGFjY2VwdHNSb290czog
MX19OwotICAgICAgICAgICAgICAgIEJ1aWxkYm90U3luY2VyLl9sb2FkQ29uZmlnKE1vY2tSZW1v
dGVBUEksIGNvbmZpZyk7CisgICAgICAgICAgICAgICAgQnVpbGRib3RTeW5jZXIuX2xvYWRDb25m
aWcoTW9ja1JlbW90ZUFQSSwgY29uZmlnLCBidWlsZGVyTmFtZVRvSURNYXAoKSk7CiAgICAgICAg
ICAgICB9LCAvUmVwb3NpdG9yeSBncm91cCAic29tZS1ncm91cCIgY29udGFpbnMgaW52YWxpZCBh
Y2NlcHRzUm9vdHMgdmFsdWU6Lyk7CiAgICAgICAgICAgICBhc3NlcnQudGhyb3dzKCgpID0+IHsK
ICAgICAgICAgICAgICAgICBjb25zdCBjb25maWcgPSBzbWFsbENvbmZpZ3VyYXRpb24oKTsKICAg
ICAgICAgICAgICAgICBjb25maWcucmVwb3NpdG9yeUdyb3VwcyA9IHsnc29tZS1ncm91cCc6IHsn
cmVwb3NpdG9yaWVzJzogeydXZWJLaXQnOiB7fX0sICd0ZXN0UHJvcGVydGllcyc6IHsnd2Via2l0
JzogeydyZXZpc2lvbic6ICdXZWJLaXQnfX0sIGFjY2VwdHNSb290czogW119fTsKLSAgICAgICAg
ICAgICAgICBCdWlsZGJvdFN5bmNlci5fbG9hZENvbmZpZyhNb2NrUmVtb3RlQVBJLCBjb25maWcp
OworICAgICAgICAgICAgICAgIEJ1aWxkYm90U3luY2VyLl9sb2FkQ29uZmlnKE1vY2tSZW1vdGVB
UEksIGNvbmZpZywgYnVpbGRlck5hbWVUb0lETWFwKCkpOwogICAgICAgICAgICAgfSwgL1JlcG9z
aXRvcnkgZ3JvdXAgInNvbWUtZ3JvdXAiIGNvbnRhaW5zIGludmFsaWQgYWNjZXB0c1Jvb3RzIHZh
bHVlOi8pOwogICAgICAgICB9KTsKIApAQCAtODQzLDEyICs4NDgsMTIgQEAgZGVzY3JpYmUoJ0J1
aWxkYm90U3luY2VyJywgKCkgPT4gewogICAgICAgICAgICAgYXNzZXJ0LnRocm93cygoKSA9PiB7
CiAgICAgICAgICAgICAgICAgY29uc3QgY29uZmlnID0gc21hbGxDb25maWd1cmF0aW9uKCk7CiAg
ICAgICAgICAgICAgICAgY29uZmlnLnJlcG9zaXRvcnlHcm91cHMgPSB7J3NvbWUtZ3JvdXAnOiB7
J3JlcG9zaXRvcmllcyc6IHsnV2ViS2l0Jzoge2FjY2VwdHNQYXRjaDogMX19LCAndGVzdFByb3Bl
cnRpZXMnOiB7J3dlYmtpdCc6IHsncmV2aXNpb24nOiAnV2ViS2l0J319fX07Ci0gICAgICAgICAg
ICAgICAgQnVpbGRib3RTeW5jZXIuX2xvYWRDb25maWcoTW9ja1JlbW90ZUFQSSwgY29uZmlnKTsK
KyAgICAgICAgICAgICAgICBCdWlsZGJvdFN5bmNlci5fbG9hZENvbmZpZyhNb2NrUmVtb3RlQVBJ
LCBjb25maWcsIGJ1aWxkZXJOYW1lVG9JRE1hcCgpKTsKICAgICAgICAgICAgIH0sIC8iV2ViS2l0
IiBjb250YWlucyBpbnZhbGlkIGFjY2VwdHNQYXRjaCB2YWx1ZTovKTsKICAgICAgICAgICAgIGFz
c2VydC50aHJvd3MoKCkgPT4gewogICAgICAgICAgICAgICAgIGNvbnN0IGNvbmZpZyA9IHNtYWxs
Q29uZmlndXJhdGlvbigpOwogICAgICAgICAgICAgICAgIGNvbmZpZy5yZXBvc2l0b3J5R3JvdXBz
ID0geydzb21lLWdyb3VwJzogeydyZXBvc2l0b3JpZXMnOiB7J1dlYktpdCc6IHthY2NlcHRzUGF0
Y2g6IFtdfX0sICd0ZXN0UHJvcGVydGllcyc6IHsnd2Via2l0JzogeydyZXZpc2lvbic6ICdXZWJL
aXQnfX19fTsKLSAgICAgICAgICAgICAgICBCdWlsZGJvdFN5bmNlci5fbG9hZENvbmZpZyhNb2Nr
UmVtb3RlQVBJLCBjb25maWcpOworICAgICAgICAgICAgICAgIEJ1aWxkYm90U3luY2VyLl9sb2Fk
Q29uZmlnKE1vY2tSZW1vdGVBUEksIGNvbmZpZywgYnVpbGRlck5hbWVUb0lETWFwKCkpOwogICAg
ICAgICAgICAgfSwgLyJXZWJLaXQiIGNvbnRhaW5zIGludmFsaWQgYWNjZXB0c1BhdGNoIHZhbHVl
Oi8pOwogICAgICAgICB9KTsKIApAQCAtODU3LDcgKzg2Miw3IEBAIGRlc2NyaWJlKCdCdWlsZGJv
dFN5bmNlcicsICgpID0+IHsKICAgICAgICAgICAgICAgICBjb25zdCBjb25maWcgPSBzbWFsbENv
bmZpZ3VyYXRpb24oKTsKICAgICAgICAgICAgICAgICBjb25maWcucmVwb3NpdG9yeUdyb3VwcyA9
IHsnc29tZS1ncm91cCc6IHsncmVwb3NpdG9yaWVzJzogeydXZWJLaXQnOiB7YWNjZXB0c1BhdGNo
OiB0cnVlfX0sCiAgICAgICAgICAgICAgICAgICAgICd0ZXN0UHJvcGVydGllcyc6IHsnd2Via2l0
JzogeydyZXZpc2lvbic6ICdXZWJLaXQnfSwgJ3dlYmtpdC1wYXRjaCc6IHsncGF0Y2gnOiAnV2Vi
S2l0J319fX07Ci0gICAgICAgICAgICAgICAgQnVpbGRib3RTeW5jZXIuX2xvYWRDb25maWcoTW9j
a1JlbW90ZUFQSSwgY29uZmlnKTsKKyAgICAgICAgICAgICAgICBCdWlsZGJvdFN5bmNlci5fbG9h
ZENvbmZpZyhNb2NrUmVtb3RlQVBJLCBjb25maWcsIGJ1aWxkZXJOYW1lVG9JRE1hcCgpKTsKICAg
ICAgICAgICAgIH0sIC9SZXBvc2l0b3J5IGdyb3VwICJzb21lLWdyb3VwIiBzcGVjaWZpZXMgYSBw
YXRjaCBmb3IgIldlYktpdCIgaW4gdGhlIHByb3BlcnRpZXMgZm9yIHRlc3RpbmcvKTsKICAgICAg
ICAgfSk7CiAKQEAgLTg2OSw3ICs4NzQsNyBAQCBkZXNjcmliZSgnQnVpbGRib3RTeW5jZXInLCAo
KSA9PiB7CiAgICAgICAgICAgICAgICAgICAgIHRlc3RQcm9wZXJ0aWVzOiB7J3dlYmtpdCc6IHty
ZXZpc2lvbjogJ1dlYktpdCd9LCAnaW5zdGFsbC1yb290cyc6IHsncm9vdHMnOiB7fX19LAogICAg
ICAgICAgICAgICAgICAgICBidWlsZFByb3BlcnRpZXM6IHsnd2Via2l0Jzoge3JldmlzaW9uOiAn
V2ViS2l0J30sICdwYXRjaCc6IHtwYXRjaDogJ1dlYktpdCd9LCAnaW5zdGFsbC1yb290cyc6IHty
b290czoge319fSwKICAgICAgICAgICAgICAgICAgICAgYWNjZXB0c1Jvb3RzOiB0cnVlfX07Ci0g
ICAgICAgICAgICAgICAgQnVpbGRib3RTeW5jZXIuX2xvYWRDb25maWcoTW9ja1JlbW90ZUFQSSwg
Y29uZmlnKTsKKyAgICAgICAgICAgICAgICBCdWlsZGJvdFN5bmNlci5fbG9hZENvbmZpZyhNb2Nr
UmVtb3RlQVBJLCBjb25maWcsIGJ1aWxkZXJOYW1lVG9JRE1hcCgpKTsKICAgICAgICAgICAgIH0s
IC9SZXBvc2l0b3J5IGdyb3VwICJzb21lLWdyb3VwIiBzcGVjaWZpZXMgcm9vdHMgaW4gdGhlIHBy
b3BlcnRpZXMgZm9yIGJ1aWxkaW5nLyk7CiAgICAgICAgIH0pOwogCkBAIC04NzksNyArODg0LDcg
QEAgZGVzY3JpYmUoJ0J1aWxkYm90U3luY2VyJywgKCkgPT4gewogICAgICAgICAgICAgICAgIGNv
bmZpZy5yZXBvc2l0b3J5R3JvdXBzID0geydzb21lLWdyb3VwJzogewogICAgICAgICAgICAgICAg
ICAgICByZXBvc2l0b3JpZXM6IHsnV2ViS2l0Jzoge319LAogICAgICAgICAgICAgICAgICAgICB0
ZXN0UHJvcGVydGllczogeyd3ZWJraXQnOiB7J3JldmlzaW9uJzogJ1dlYktpdCd9LCAnaW5zdGFs
bC1yb290cyc6IHsncm9vdHMnOiB7fX19fX07Ci0gICAgICAgICAgICAgICAgQnVpbGRib3RTeW5j
ZXIuX2xvYWRDb25maWcoTW9ja1JlbW90ZUFQSSwgY29uZmlnKTsKKyAgICAgICAgICAgICAgICBC
dWlsZGJvdFN5bmNlci5fbG9hZENvbmZpZyhNb2NrUmVtb3RlQVBJLCBjb25maWcsIGJ1aWxkZXJO
YW1lVG9JRE1hcCgpKTsKICAgICAgICAgICAgIH0sIC9SZXBvc2l0b3J5IGdyb3VwICJzb21lLWdy
b3VwIiBzcGVjaWZpZXMgcm9vdHMgaW4gYSBwcm9wZXJ0eSBidXQgaXQgZG9lcyBub3QgYWNjZXB0
IHJvb3RzLyk7CiAgICAgICAgIH0pOwogCkBAIC04OTAsNyArODk1LDcgQEAgZGVzY3JpYmUoJ0J1
aWxkYm90U3luY2VyJywgKCkgPT4gewogICAgICAgICAgICAgICAgICAgICByZXBvc2l0b3JpZXM6
IHsnV2ViS2l0Jzoge2FjY2VwdHNQYXRjaDogdHJ1ZX19LAogICAgICAgICAgICAgICAgICAgICB0
ZXN0UHJvcGVydGllczogeyd3ZWJraXQnOiB7cmV2aXNpb246ICdXZWJLaXQnfX0sCiAgICAgICAg
ICAgICAgICAgICAgIGJ1aWxkUHJvcGVydGllczogeyd3ZWJraXQnOiB7cmV2aXNpb246ICdXZWJL
aXQnfSwgJ3dlYmtpdC1wYXRjaCc6IHtwYXRjaDogJ1dlYktpdCd9fX19OwotICAgICAgICAgICAg
ICAgIEJ1aWxkYm90U3luY2VyLl9sb2FkQ29uZmlnKE1vY2tSZW1vdGVBUEksIGNvbmZpZyk7Cisg
ICAgICAgICAgICAgICAgQnVpbGRib3RTeW5jZXIuX2xvYWRDb25maWcoTW9ja1JlbW90ZUFQSSwg
Y29uZmlnLCBidWlsZGVyTmFtZVRvSURNYXAoKSk7CiAgICAgICAgICAgICB9LCAvUmVwb3NpdG9y
eSBncm91cCAic29tZS1ncm91cCIgc3BlY2lmaWVzIHRoZSBwcm9wZXJ0aWVzIGZvciBidWlsZGlu
ZyBidXQgZG9lcyBub3QgYWNjZXB0IHJvb3RzIGluIHRlc3RpbmcvKTsKICAgICAgICAgfSk7CiAK
QEAgLTkwMiw3ICs5MDcsNyBAQCBkZXNjcmliZSgnQnVpbGRib3RTeW5jZXInLCAoKSA9PiB7CiAg
ICAgICAgICAgICAgICAgICAgIHRlc3RQcm9wZXJ0aWVzOiB7J3dlYmtpdCc6IHsncmV2aXNpb24n
OiAnV2ViS2l0J30sICdpbnN0YWxsLXJvb3RzJzogeydyb290cyc6IHt9fX0sCiAgICAgICAgICAg
ICAgICAgICAgIGJ1aWxkUHJvcGVydGllczogeyd3ZWJraXQnOiB7J3JldmlzaW9uJzogJ1dlYktp
dCd9fSwKICAgICAgICAgICAgICAgICAgICAgYWNjZXB0c1Jvb3RzOiB0cnVlfX07Ci0gICAgICAg
ICAgICAgICAgQnVpbGRib3RTeW5jZXIuX2xvYWRDb25maWcoTW9ja1JlbW90ZUFQSSwgY29uZmln
KTsKKyAgICAgICAgICAgICAgICBCdWlsZGJvdFN5bmNlci5fbG9hZENvbmZpZyhNb2NrUmVtb3Rl
QVBJLCBjb25maWcsIGJ1aWxkZXJOYW1lVG9JRE1hcCgpKTsKICAgICAgICAgICAgIH0sIC9SZXBv
c2l0b3J5IGdyb3VwICJzb21lLWdyb3VwIiBzcGVjaWZpZXMgdGhlIHByb3BlcnRpZXMgZm9yIGJ1
aWxkaW5nIGJ1dCBkb2VzIG5vdCBhY2NlcHQgYW55IHBhdGNoZXMvKTsKICAgICAgICAgfSk7CiAK
QEAgLTkxNCwyMSArOTE5LDIxIEBAIGRlc2NyaWJlKCdCdWlsZGJvdFN5bmNlcicsICgpID0+IHsK
ICAgICAgICAgICAgICAgICAgICAgdGVzdFByb3BlcnRpZXM6IHsnd2Via2l0Jzoge3JldmlzaW9u
OiAnV2ViS2l0J319LAogICAgICAgICAgICAgICAgICAgICBidWlsZFByb3BlcnRpZXM6IHsnd2Vi
a2l0Jzoge3JldmlzaW9uOiAnV2ViS2l0J30sICd3ZWJraXQtcGF0Y2gnOiB7cGF0Y2g6ICdXZWJL
aXQnfX0sCiAgICAgICAgICAgICAgICAgICAgIGFjY2VwdHNSb290czogdHJ1ZX19OwotICAgICAg
ICAgICAgICAgIEJ1aWxkYm90U3luY2VyLl9sb2FkQ29uZmlnKE1vY2tSZW1vdGVBUEksIGNvbmZp
Zyk7CisgICAgICAgICAgICAgICAgQnVpbGRib3RTeW5jZXIuX2xvYWRDb25maWcoTW9ja1JlbW90
ZUFQSSwgY29uZmlnLCBidWlsZGVyTmFtZVRvSURNYXAoKSk7CiAgICAgICAgICAgICB9LCAvUmVw
b3NpdG9yeSBncm91cCAic29tZS1ncm91cCIgYWNjZXB0cyByb290cyBidXQgZG9lcyBub3Qgc3Bl
Y2lmeSByb290cyBpbiB0ZXN0UHJvcGVydGllcy8pOwogICAgICAgICB9KTsKICAgICB9KTsKIAog
ICAgIGRlc2NyaWJlKCdfcHJvcGVydGllc0ZvckJ1aWxkUmVxdWVzdCcsICgpID0+IHsKICAgICAg
ICAgaXQoJ3Nob3VsZCBpbmNsdWRlIGFsbCBwcm9wZXJ0aWVzIHNwZWNpZmllZCBpbiBhIGdpdmVu
IGNvbmZpZ3VyYXRpb24nLCAoKSA9PiB7Ci0gICAgICAgICAgICBjb25zdCBzeW5jZXJzID0gQnVp
bGRib3RTeW5jZXIuX2xvYWRDb25maWcoUmVtb3RlQVBJLCBzYW1wbGVpT1NDb25maWcoKSk7Cisg
ICAgICAgICAgICBjb25zdCBzeW5jZXJzID0gQnVpbGRib3RTeW5jZXIuX2xvYWRDb25maWcoUmVt
b3RlQVBJLCBzYW1wbGVpT1NDb25maWcoKSwgYnVpbGRlck5hbWVUb0lETWFwKCkpOwogICAgICAg
ICAgICAgY29uc3QgcmVxdWVzdCA9IGNyZWF0ZVNhbXBsZUJ1aWxkUmVxdWVzdChNb2NrTW9kZWxz
LmlwaG9uZSwgTW9ja01vZGVscy5zcGVlZG9tZXRlcik7CiAgICAgICAgICAgICBjb25zdCBwcm9w
ZXJ0aWVzID0gc3luY2Vyc1swXS5fcHJvcGVydGllc0ZvckJ1aWxkUmVxdWVzdChyZXF1ZXN0LCBb
cmVxdWVzdF0pOwogICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChPYmplY3Qua2V5cyhwcm9w
ZXJ0aWVzKS5zb3J0KCksIFsnYnVpbGRfcmVxdWVzdF9pZCcsICdkZXNpcmVkX2ltYWdlJywgJ2Zv
cmNlc2NoZWR1bGVyJywgJ29wZW5zb3VyY2UnLCAndGVzdF9uYW1lJ10pOwogICAgICAgICB9KTsK
IAogICAgICAgICBpdCgnc2hvdWxkIHByZXNlcnZlIG5vbi1wYXJhbWV0cmljIHByb3BlcnR5IHZh
bHVlcycsICgpID0+IHsKLSAgICAgICAgICAgIGNvbnN0IHN5bmNlcnMgPSBCdWlsZGJvdFN5bmNl
ci5fbG9hZENvbmZpZyhSZW1vdGVBUEksIHNhbXBsZWlPU0NvbmZpZygpKTsKKyAgICAgICAgICAg
IGNvbnN0IHN5bmNlcnMgPSBCdWlsZGJvdFN5bmNlci5fbG9hZENvbmZpZyhSZW1vdGVBUEksIHNh
bXBsZWlPU0NvbmZpZygpLCBidWlsZGVyTmFtZVRvSURNYXAoKSk7CiAgICAgICAgICAgICBsZXQg
cmVxdWVzdCA9IGNyZWF0ZVNhbXBsZUJ1aWxkUmVxdWVzdChNb2NrTW9kZWxzLmlwaG9uZSwgTW9j
a01vZGVscy5zcGVlZG9tZXRlcik7CiAgICAgICAgICAgICBsZXQgcHJvcGVydGllcyA9IHN5bmNl
cnNbMF0uX3Byb3BlcnRpZXNGb3JCdWlsZFJlcXVlc3QocmVxdWVzdCwgW3JlcXVlc3RdKTsKICAg
ICAgICAgICAgIGFzc2VydC5lcXVhbChwcm9wZXJ0aWVzWyd0ZXN0X25hbWUnXSwgJ3NwZWVkb21l
dGVyJyk7CkBAIC05NDEsMTQgKzk0NiwxNCBAQCBkZXNjcmliZSgnQnVpbGRib3RTeW5jZXInLCAo
KSA9PiB7CiAgICAgICAgIH0pOwogCiAgICAgICAgIGl0KCdzaG91bGQgcmVzb2x2ZSAicm9vdCIn
LCAoKSA9PiB7Ci0gICAgICAgICAgICBjb25zdCBzeW5jZXJzID0gQnVpbGRib3RTeW5jZXIuX2xv
YWRDb25maWcoUmVtb3RlQVBJLCBzYW1wbGVpT1NDb25maWcoKSk7CisgICAgICAgICAgICBjb25z
dCBzeW5jZXJzID0gQnVpbGRib3RTeW5jZXIuX2xvYWRDb25maWcoUmVtb3RlQVBJLCBzYW1wbGVp
T1NDb25maWcoKSwgYnVpbGRlck5hbWVUb0lETWFwKCkpOwogICAgICAgICAgICAgY29uc3QgcmVx
dWVzdCA9IGNyZWF0ZVNhbXBsZUJ1aWxkUmVxdWVzdChNb2NrTW9kZWxzLmlwaG9uZSwgTW9ja01v
ZGVscy5zcGVlZG9tZXRlcik7CiAgICAgICAgICAgICBjb25zdCBwcm9wZXJ0aWVzID0gc3luY2Vy
c1swXS5fcHJvcGVydGllc0ZvckJ1aWxkUmVxdWVzdChyZXF1ZXN0LCBbcmVxdWVzdF0pOwogICAg
ICAgICAgICAgYXNzZXJ0LmVxdWFsKHByb3BlcnRpZXNbJ2Rlc2lyZWRfaW1hZ2UnXSwgJzEzQTQ1
MicpOwogICAgICAgICB9KTsKIAogICAgICAgICBpdCgnc2hvdWxkIHJlc29sdmUgInJldmlzaW9u
IicsICgpID0+IHsKLSAgICAgICAgICAgIGNvbnN0IHN5bmNlcnMgPSBCdWlsZGJvdFN5bmNlci5f
bG9hZENvbmZpZyhSZW1vdGVBUEksIHNhbXBsZWlPU0NvbmZpZygpKTsKKyAgICAgICAgICAgIGNv
bnN0IHN5bmNlcnMgPSBCdWlsZGJvdFN5bmNlci5fbG9hZENvbmZpZyhSZW1vdGVBUEksIHNhbXBs
ZWlPU0NvbmZpZygpLCBidWlsZGVyTmFtZVRvSURNYXAoKSk7CiAgICAgICAgICAgICBjb25zdCBy
ZXF1ZXN0ID0gY3JlYXRlU2FtcGxlQnVpbGRSZXF1ZXN0KE1vY2tNb2RlbHMuaXBob25lLCBNb2Nr
TW9kZWxzLnNwZWVkb21ldGVyKTsKICAgICAgICAgICAgIGNvbnN0IHByb3BlcnRpZXMgPSBzeW5j
ZXJzWzBdLl9wcm9wZXJ0aWVzRm9yQnVpbGRSZXF1ZXN0KHJlcXVlc3QsIFtyZXF1ZXN0XSk7CiAg
ICAgICAgICAgICBhc3NlcnQuZXF1YWwocHJvcGVydGllc1snb3BlbnNvdXJjZSddLCAnMTk3NDYz
Jyk7CkBAIC05NzEsNyArOTc2LDcgQEAgZGVzY3JpYmUoJ0J1aWxkYm90U3luY2VyJywgKCkgPT4g
ewogICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgICAgJ2FjY2VwdHNSb290cyc6IHRy
dWUsCiAgICAgICAgICAgICB9OwotICAgICAgICAgICAgY29uc3Qgc3luY2VycyA9IEJ1aWxkYm90
U3luY2VyLl9sb2FkQ29uZmlnKFJlbW90ZUFQSSwgY29uZmlnKTsKKyAgICAgICAgICAgIGNvbnN0
IHN5bmNlcnMgPSBCdWlsZGJvdFN5bmNlci5fbG9hZENvbmZpZyhSZW1vdGVBUEksIGNvbmZpZywg
YnVpbGRlck5hbWVUb0lETWFwKCkpOwogICAgICAgICAgICAgY29uc3QgcmVxdWVzdCA9IGNyZWF0
ZVNhbXBsZUJ1aWxkUmVxdWVzdFdpdGhQYXRjaChNb2NrTW9kZWxzLmlwaG9uZSwgbnVsbCwgLTEp
OwogICAgICAgICAgICAgY29uc3QgcHJvcGVydGllcyA9IHN5bmNlcnNbMl0uX3Byb3BlcnRpZXNG
b3JCdWlsZFJlcXVlc3QocmVxdWVzdCwgW3JlcXVlc3RdKTsKICAgICAgICAgICAgIGFzc2VydC5l
cXVhbChwcm9wZXJ0aWVzWyd3ZWJraXQnXSwgJzE5NzQ2MycpOwpAQCAtOTkyLDcgKzk5Nyw3IEBA
IGRlc2NyaWJlKCdCdWlsZGJvdFN5bmNlcicsICgpID0+IHsKICAgICAgICAgICAgICAgICB9LAog
ICAgICAgICAgICAgICAgICdhY2NlcHRzUm9vdHMnOiB0cnVlLAogICAgICAgICAgICAgfTsKLSAg
ICAgICAgICAgIGNvbnN0IHN5bmNlcnMgPSBCdWlsZGJvdFN5bmNlci5fbG9hZENvbmZpZyhSZW1v
dGVBUEksIGNvbmZpZyk7CisgICAgICAgICAgICBjb25zdCBzeW5jZXJzID0gQnVpbGRib3RTeW5j
ZXIuX2xvYWRDb25maWcoUmVtb3RlQVBJLCBjb25maWcsIGJ1aWxkZXJOYW1lVG9JRE1hcCgpKTsK
ICAgICAgICAgICAgIGNvbnN0IHJlcXVlc3RUb0J1aWxkID0gY3JlYXRlU2FtcGxlQnVpbGRSZXF1
ZXN0V2l0aFBhdGNoKE1vY2tNb2RlbHMuaXBob25lLCBudWxsLCAtMSk7CiAgICAgICAgICAgICBj
b25zdCByZXF1ZXN0VG9UZXN0ID0gY3JlYXRlU2FtcGxlQnVpbGRSZXF1ZXN0V2l0aFBhdGNoKE1v
Y2tNb2RlbHMuaXBob25lLCBNb2NrTW9kZWxzLnNwZWVkb21ldGVyLCAwKTsKICAgICAgICAgICAg
IGNvbnN0IG90aGVyUmVxdWVzdFRvVGVzdCA9IGNyZWF0ZVNhbXBsZUJ1aWxkUmVxdWVzdChNb2Nr
TW9kZWxzLmlwaG9uZSwgTW9ja01vZGVscy5zcGVlZG9tZXRlcik7CkBAIC0xMDE4LDcgKzEwMjMs
NyBAQCBkZXNjcmliZSgnQnVpbGRib3RTeW5jZXInLCAoKSA9PiB7CiAgICAgICAgIH0pOwogCiAg
ICAgICAgIGl0KCdzaG91bGQgc2V0IHRoZSBwcm9wZXJ0eSBmb3IgdGhlIGJ1aWxkIHJlcXVlc3Qg
aWQnLCAoKSA9PiB7Ci0gICAgICAgICAgICBjb25zdCBzeW5jZXJzID0gQnVpbGRib3RTeW5jZXIu
X2xvYWRDb25maWcoUmVtb3RlQVBJLCBzYW1wbGVpT1NDb25maWcoKSk7CisgICAgICAgICAgICBj
b25zdCBzeW5jZXJzID0gQnVpbGRib3RTeW5jZXIuX2xvYWRDb25maWcoUmVtb3RlQVBJLCBzYW1w
bGVpT1NDb25maWcoKSwgYnVpbGRlck5hbWVUb0lETWFwKCkpOwogICAgICAgICAgICAgY29uc3Qg
cmVxdWVzdCA9IGNyZWF0ZVNhbXBsZUJ1aWxkUmVxdWVzdChNb2NrTW9kZWxzLmlwaG9uZSwgTW9j
a01vZGVscy5zcGVlZG9tZXRlcik7CiAgICAgICAgICAgICBjb25zdCBwcm9wZXJ0aWVzID0gc3lu
Y2Vyc1swXS5fcHJvcGVydGllc0ZvckJ1aWxkUmVxdWVzdChyZXF1ZXN0LCBbcmVxdWVzdF0pOwog
ICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHByb3BlcnRpZXNbJ2J1aWxkX3JlcXVlc3RfaWQnXSwg
cmVxdWVzdC5pZCgpKTsKQEAgLTEwMjcsNyArMTAzMiw3IEBAIGRlc2NyaWJlKCdCdWlsZGJvdFN5
bmNlcicsICgpID0+IHsKIAogICAgIGRlc2NyaWJlKCdwdWxsQnVpbGRib3QnLCAoKSA9PiB7CiAg
ICAgICAgIGl0KCdzaG91bGQgZmV0Y2ggcGVuZGluZyBidWlsZHMgZnJvbSB0aGUgcmlnaHQgVVJM
JywgKCkgPT4gewotICAgICAgICAgICAgbGV0IHN5bmNlciA9IEJ1aWxkYm90U3luY2VyLl9sb2Fk
Q29uZmlnKE1vY2tSZW1vdGVBUEksIHNhbXBsZWlPU0NvbmZpZygpKVsxXTsKKyAgICAgICAgICAg
IGxldCBzeW5jZXIgPSBCdWlsZGJvdFN5bmNlci5fbG9hZENvbmZpZyhNb2NrUmVtb3RlQVBJLCBz
YW1wbGVpT1NDb25maWcoKSwgYnVpbGRlck5hbWVUb0lETWFwKCkpWzFdOwogICAgICAgICAgICAg
YXNzZXJ0LmVxdWFsKHN5bmNlci5idWlsZGVyTmFtZSgpLCAnQUJUZXN0LWlQYWQtUnVuQmVuY2ht
YXJrLVRlc3RzJyk7CiAgICAgICAgICAgICBsZXQgZXhwZWN0ZWRVUkwgPSAnL2pzb24vYnVpbGRl
cnMvQUJUZXN0LWlQYWQtUnVuQmVuY2htYXJrLVRlc3RzL3BlbmRpbmdCdWlsZHMnOwogICAgICAg
ICAgICAgYXNzZXJ0LmVxdWFsKHN5bmNlci5wYXRoRm9yUGVuZGluZ0J1aWxkc0pTT04oKSwgZXhw
ZWN0ZWRVUkwpOwpAQCAtMTAzNyw3ICsxMDQyLDcgQEAgZGVzY3JpYmUoJ0J1aWxkYm90U3luY2Vy
JywgKCkgPT4gewogICAgICAgICB9KTsKIAogICAgICAgICBpdCgnc2hvdWxkIGZldGNoIHJlY2Vu
dCBidWlsZHMgb25jZSBwZW5kaW5nIGJ1aWxkcyBoYXZlIGJlZW4gZmV0Y2hlZCcsICgpID0+IHsK
LSAgICAgICAgICAgIGxldCBzeW5jZXIgPSBCdWlsZGJvdFN5bmNlci5fbG9hZENvbmZpZyhNb2Nr
UmVtb3RlQVBJLCBzYW1wbGVpT1NDb25maWcoKSlbMV07CisgICAgICAgICAgICBsZXQgc3luY2Vy
ID0gQnVpbGRib3RTeW5jZXIuX2xvYWRDb25maWcoTW9ja1JlbW90ZUFQSSwgc2FtcGxlaU9TQ29u
ZmlnKCksIGJ1aWxkZXJOYW1lVG9JRE1hcCgpKVsxXTsKICAgICAgICAgICAgIGFzc2VydC5lcXVh
bChzeW5jZXIuYnVpbGRlck5hbWUoKSwgJ0FCVGVzdC1pUGFkLVJ1bkJlbmNobWFyay1UZXN0cycp
OwogCiAgICAgICAgICAgICBzeW5jZXIucHVsbEJ1aWxkYm90KDEpOwpAQCAtMTA1MSw3ICsxMDU2
LDcgQEAgZGVzY3JpYmUoJ0J1aWxkYm90U3luY2VyJywgKCkgPT4gewogICAgICAgICB9KTsKIAog
ICAgICAgICBpdCgnc2hvdWxkIGZldGNoIHRoZSByaWdodCBudW1iZXIgb2YgcmVjZW50IGJ1aWxk
cycsICgpID0+IHsKLSAgICAgICAgICAgIGxldCBzeW5jZXIgPSBCdWlsZGJvdFN5bmNlci5fbG9h
ZENvbmZpZyhNb2NrUmVtb3RlQVBJLCBzYW1wbGVpT1NDb25maWcoKSlbMV07CisgICAgICAgICAg
ICBsZXQgc3luY2VyID0gQnVpbGRib3RTeW5jZXIuX2xvYWRDb25maWcoTW9ja1JlbW90ZUFQSSwg
c2FtcGxlaU9TQ29uZmlnKCksIGJ1aWxkZXJOYW1lVG9JRE1hcCgpKVsxXTsKIAogICAgICAgICAg
ICAgc3luY2VyLnB1bGxCdWlsZGJvdCgzKTsKICAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXF1
ZXN0cy5sZW5ndGgsIDEpOwpAQCAtMTA2NCw3ICsxMDY5LDcgQEAgZGVzY3JpYmUoJ0J1aWxkYm90
U3luY2VyJywgKCkgPT4gewogICAgICAgICB9KTsKIAogICAgICAgICBpdCgnc2hvdWxkIGNyZWF0
ZSBCdWlsZGJvdEJ1aWxkRW50cnkgZm9yIHBlbmRpbmcgYnVpbGRzJywgKCkgPT4gewotICAgICAg
ICAgICAgbGV0IHN5bmNlciA9IEJ1aWxkYm90U3luY2VyLl9sb2FkQ29uZmlnKE1vY2tSZW1vdGVB
UEksIHNhbXBsZWlPU0NvbmZpZygpKVsxXTsKKyAgICAgICAgICAgIGxldCBzeW5jZXIgPSBCdWls
ZGJvdFN5bmNlci5fbG9hZENvbmZpZyhNb2NrUmVtb3RlQVBJLCBzYW1wbGVpT1NDb25maWcoKSwg
YnVpbGRlck5hbWVUb0lETWFwKCkpWzFdOwogICAgICAgICAgICAgbGV0IHByb21pc2UgPSBzeW5j
ZXIucHVsbEJ1aWxkYm90KCk7CiAgICAgICAgICAgICByZXF1ZXN0c1swXS5yZXNvbHZlKFtzYW1w
bGVQZW5kaW5nQnVpbGQoKV0pOwogICAgICAgICAgICAgcmV0dXJuIHByb21pc2UudGhlbigoZW50
cmllcykgPT4gewpAQCAtMTA4Miw3ICsxMDg3LDcgQEAgZGVzY3JpYmUoJ0J1aWxkYm90U3luY2Vy
JywgKCkgPT4gewogICAgICAgICB9KTsKIAogICAgICAgICBpdCgnc2hvdWxkIGNyZWF0ZSBCdWls
ZGJvdEJ1aWxkRW50cnkgZm9yIGluLXByb2dyZXNzIGJ1aWxkcycsICgpID0+IHsKLSAgICAgICAg
ICAgIGxldCBzeW5jZXIgPSBCdWlsZGJvdFN5bmNlci5fbG9hZENvbmZpZyhNb2NrUmVtb3RlQVBJ
LCBzYW1wbGVpT1NDb25maWcoKSlbMV07CisgICAgICAgICAgICBsZXQgc3luY2VyID0gQnVpbGRi
b3RTeW5jZXIuX2xvYWRDb25maWcoTW9ja1JlbW90ZUFQSSwgc2FtcGxlaU9TQ29uZmlnKCksIGJ1
aWxkZXJOYW1lVG9JRE1hcCgpKVsxXTsKIAogICAgICAgICAgICAgbGV0IHByb21pc2UgPSBzeW5j
ZXIucHVsbEJ1aWxkYm90KDEpOwogICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlcXVlc3RzLmxl
bmd0aCwgMSk7CkBAIC0xMTA2LDcgKzExMTEsNyBAQCBkZXNjcmliZSgnQnVpbGRib3RTeW5jZXIn
LCAoKSA9PiB7CiAgICAgICAgIH0pOwogCiAgICAgICAgIGl0KCdzaG91bGQgY3JlYXRlIEJ1aWxk
Ym90QnVpbGRFbnRyeSBmb3IgZmluaXNoZWQgYnVpbGRzJywgKCkgPT4gewotICAgICAgICAgICAg
bGV0IHN5bmNlciA9IEJ1aWxkYm90U3luY2VyLl9sb2FkQ29uZmlnKE1vY2tSZW1vdGVBUEksIHNh
bXBsZWlPU0NvbmZpZygpKVsxXTsKKyAgICAgICAgICAgIGxldCBzeW5jZXIgPSBCdWlsZGJvdFN5
bmNlci5fbG9hZENvbmZpZyhNb2NrUmVtb3RlQVBJLCBzYW1wbGVpT1NDb25maWcoKSwgYnVpbGRl
ck5hbWVUb0lETWFwKCkpWzFdOwogCiAgICAgICAgICAgICBsZXQgcHJvbWlzZSA9IHN5bmNlci5w
dWxsQnVpbGRib3QoMSk7CiAgICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVxdWVzdHMubGVuZ3Ro
LCAxKTsKQEAgLTExMzAsNyArMTEzNSw3IEBAIGRlc2NyaWJlKCdCdWlsZGJvdFN5bmNlcicsICgp
ID0+IHsKICAgICAgICAgfSk7CiAKICAgICAgICAgaXQoJ3Nob3VsZCBjcmVhdGUgQnVpbGRib3RC
dWlsZEVudHJ5IGZvciBtaXhlZCBwZW5kaW5nLCBpbi1wcm9ncmVzcywgZmluaXNoZWQsIGFuZCBt
aXNzaW5nIGJ1aWxkcycsICgpID0+IHsKLSAgICAgICAgICAgIGxldCBzeW5jZXIgPSBCdWlsZGJv
dFN5bmNlci5fbG9hZENvbmZpZyhNb2NrUmVtb3RlQVBJLCBzYW1wbGVpT1NDb25maWcoKSlbMV07
CisgICAgICAgICAgICBsZXQgc3luY2VyID0gQnVpbGRib3RTeW5jZXIuX2xvYWRDb25maWcoTW9j
a1JlbW90ZUFQSSwgc2FtcGxlaU9TQ29uZmlnKCksIGJ1aWxkZXJOYW1lVG9JRE1hcCgpKVsxXTsK
IAogICAgICAgICAgICAgbGV0IHByb21pc2UgPSBzeW5jZXIucHVsbEJ1aWxkYm90KDUpOwogICAg
ICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlcXVlc3RzLmxlbmd0aCwgMSk7CkBAIC0xMTc3LDcgKzEx
ODIsNyBAQCBkZXNjcmliZSgnQnVpbGRib3RTeW5jZXInLCAoKSA9PiB7CiAgICAgICAgIH0pOwog
CiAgICAgICAgIGl0KCdzaG91bGQgc29ydCBCdWlsZGJvdEJ1aWxkRW50cnkgYnkgb3JkZXInLCAo
KSA9PiB7Ci0gICAgICAgICAgICBsZXQgc3luY2VyID0gQnVpbGRib3RTeW5jZXIuX2xvYWRDb25m
aWcoTW9ja1JlbW90ZUFQSSwgc2FtcGxlaU9TQ29uZmlnKCkpWzFdOworICAgICAgICAgICAgbGV0
IHN5bmNlciA9IEJ1aWxkYm90U3luY2VyLl9sb2FkQ29uZmlnKE1vY2tSZW1vdGVBUEksIHNhbXBs
ZWlPU0NvbmZpZygpLCBidWlsZGVyTmFtZVRvSURNYXAoKSlbMV07CiAKICAgICAgICAgICAgIGxl
dCBwcm9taXNlID0gc3luY2VyLnB1bGxCdWlsZGJvdCg1KTsKICAgICAgICAgICAgIGFzc2VydC5l
cXVhbChyZXF1ZXN0cy5sZW5ndGgsIDEpOwpAQCAtMTIzNCw3ICsxMjM5LDcgQEAgZGVzY3JpYmUo
J0J1aWxkYm90U3luY2VyJywgKCkgPT4gewogICAgICAgICB9KTsKIAogICAgICAgICBpdCgnc2hv
dWxkIG92ZXJyaWRlIEJ1aWxkYm90QnVpbGRFbnRyeSBmb3IgcGVuZGluZyBidWlsZHMgYnkgaW4t
cHJvZ3Jlc3MgYnVpbGRzJywgKCkgPT4gewotICAgICAgICAgICAgbGV0IHN5bmNlciA9IEJ1aWxk
Ym90U3luY2VyLl9sb2FkQ29uZmlnKE1vY2tSZW1vdGVBUEksIHNhbXBsZWlPU0NvbmZpZygpKVsx
XTsKKyAgICAgICAgICAgIGxldCBzeW5jZXIgPSBCdWlsZGJvdFN5bmNlci5fbG9hZENvbmZpZyhN
b2NrUmVtb3RlQVBJLCBzYW1wbGVpT1NDb25maWcoKSwgYnVpbGRlck5hbWVUb0lETWFwKCkpWzFd
OwogCiAgICAgICAgICAgICBsZXQgcHJvbWlzZSA9IHN5bmNlci5wdWxsQnVpbGRib3QoNSk7CiAg
ICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVxdWVzdHMubGVuZ3RoLCAxKTsKQEAgLTEyNjEsNyAr
MTI2Niw3IEBAIGRlc2NyaWJlKCdCdWlsZGJvdFN5bmNlcicsICgpID0+IHsKICAgICAgICAgfSk7
CiAKICAgICAgICAgaXQoJ3Nob3VsZCBvdmVycmlkZSBCdWlsZGJvdEJ1aWxkRW50cnkgZm9yIHBl
bmRpbmcgYnVpbGRzIGJ5IGZpbmlzaGVkIGJ1aWxkcycsICgpID0+IHsKLSAgICAgICAgICAgIGxl
dCBzeW5jZXIgPSBCdWlsZGJvdFN5bmNlci5fbG9hZENvbmZpZyhNb2NrUmVtb3RlQVBJLCBzYW1w
bGVpT1NDb25maWcoKSlbMV07CisgICAgICAgICAgICBsZXQgc3luY2VyID0gQnVpbGRib3RTeW5j
ZXIuX2xvYWRDb25maWcoTW9ja1JlbW90ZUFQSSwgc2FtcGxlaU9TQ29uZmlnKCksIGJ1aWxkZXJO
YW1lVG9JRE1hcCgpKVsxXTsKIAogICAgICAgICAgICAgbGV0IHByb21pc2UgPSBzeW5jZXIucHVs
bEJ1aWxkYm90KDUpOwogICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlcXVlc3RzLmxlbmd0aCwg
MSk7CkBAIC0xMjkwLDcgKzEyOTUsNyBAQCBkZXNjcmliZSgnQnVpbGRib3RTeW5jZXInLCAoKSA9
PiB7CiAKICAgICBkZXNjcmliZSgnc2NoZWR1bGVSZXF1ZXN0JywgKCkgPT4gewogICAgICAgICBp
dCgnc2hvdWxkIHNjaGVkdWxlIGEgYnVpbGQgcmVxdWVzdCBvbiBhIHNwZWNpZmllZCBzbGF2ZScs
ICgpID0+IHsKLSAgICAgICAgICAgIGxldCBzeW5jZXIgPSBCdWlsZGJvdFN5bmNlci5fbG9hZENv
bmZpZyhNb2NrUmVtb3RlQVBJLCBzYW1wbGVpT1NDb25maWcoKSlbMF07CisgICAgICAgICAgICBs
ZXQgc3luY2VyID0gQnVpbGRib3RTeW5jZXIuX2xvYWRDb25maWcoTW9ja1JlbW90ZUFQSSwgc2Ft
cGxlaU9TQ29uZmlnKCksIGJ1aWxkZXJOYW1lVG9JRE1hcCgpKVswXTsKIAogICAgICAgICAgICAg
Y29uc3Qgd2FpdEZvclJlcXVlc3QgPSBNb2NrUmVtb3RlQVBJLndhaXRGb3JSZXF1ZXN0KCk7CiAg
ICAgICAgICAgICBjb25zdCByZXF1ZXN0ID0gY3JlYXRlU2FtcGxlQnVpbGRSZXF1ZXN0KE1vY2tN
b2RlbHMuaXBob25lLCBNb2NrTW9kZWxzLnNwZWVkb21ldGVyKTsKQEAgLTEzMjcsNyArMTMzMiw3
IEBAIGRlc2NyaWJlKCdCdWlsZGJvdFN5bmNlcicsICgpID0+IHsKICAgICAgICAgfQogCiAgICAg
ICAgIGl0KCdzaG91bGQgc2NoZWR1bGUgYSBidWlsZCBpZiBidWlsZGVyIGhhcyBubyBidWlsZHMg
aWYgc2xhdmVMaXN0IGlzIG5vdCBzcGVjaWZpZWQnLCAoKSA9PiB7Ci0gICAgICAgICAgICBsZXQg
c3luY2VyID0gQnVpbGRib3RTeW5jZXIuX2xvYWRDb25maWcoTW9ja1JlbW90ZUFQSSwgc21hbGxD
b25maWd1cmF0aW9uKCkpWzBdOworICAgICAgICAgICAgbGV0IHN5bmNlciA9IEJ1aWxkYm90U3lu
Y2VyLl9sb2FkQ29uZmlnKE1vY2tSZW1vdGVBUEksIHNtYWxsQ29uZmlndXJhdGlvbigpLCBidWls
ZGVyTmFtZVRvSURNYXAoKSlbMF07CiAKICAgICAgICAgICAgIHJldHVybiBwdWxsQnVpbGRib3RX
aXRoQXNzZXJ0aW9uKHN5bmNlciwgW10sIHt9KS50aGVuKCgpID0+IHsKICAgICAgICAgICAgICAg
ICBjb25zdCByZXF1ZXN0ID0gY3JlYXRlU2FtcGxlQnVpbGRSZXF1ZXN0KE1vY2tNb2RlbHMuc29t
ZVBsYXRmb3JtLCBNb2NrTW9kZWxzLnNvbWVUZXN0KTsKQEAgLTEzNDAsNyArMTM0NSw3IEBAIGRl
c2NyaWJlKCdCdWlsZGJvdFN5bmNlcicsICgpID0+IHsKICAgICAgICAgfSk7CiAKICAgICAgICAg
aXQoJ3Nob3VsZCBzY2hlZHVsZSBhIGJ1aWxkIGlmIGJ1aWxkZXIgb25seSBoYXMgZmluaXNoZWQg
YnVpbGRzIGlmIHNsYXZlTGlzdCBpcyBub3Qgc3BlY2lmaWVkJywgKCkgPT4gewotICAgICAgICAg
ICAgbGV0IHN5bmNlciA9IEJ1aWxkYm90U3luY2VyLl9sb2FkQ29uZmlnKE1vY2tSZW1vdGVBUEks
IHNtYWxsQ29uZmlndXJhdGlvbigpKVswXTsKKyAgICAgICAgICAgIGxldCBzeW5jZXIgPSBCdWls
ZGJvdFN5bmNlci5fbG9hZENvbmZpZyhNb2NrUmVtb3RlQVBJLCBzbWFsbENvbmZpZ3VyYXRpb24o
KSwgYnVpbGRlck5hbWVUb0lETWFwKCkpWzBdOwogCiAgICAgICAgICAgICByZXR1cm4gcHVsbEJ1
aWxkYm90V2l0aEFzc2VydGlvbihzeW5jZXIsIFtdLCB7Wy0xXTogc21hbGxGaW5pc2hlZEJ1aWxk
KCl9KS50aGVuKCgpID0+IHsKICAgICAgICAgICAgICAgICBjb25zdCByZXF1ZXN0ID0gY3JlYXRl
U2FtcGxlQnVpbGRSZXF1ZXN0KE1vY2tNb2RlbHMuc29tZVBsYXRmb3JtLCBNb2NrTW9kZWxzLnNv
bWVUZXN0KTsKQEAgLTEzNTMsNyArMTM1OCw3IEBAIGRlc2NyaWJlKCdCdWlsZGJvdFN5bmNlcics
ICgpID0+IHsKICAgICAgICAgfSk7CiAKICAgICAgICAgaXQoJ3Nob3VsZCBub3Qgc2NoZWR1bGUg
YSBidWlsZCBpZiBidWlsZGVyIGhhcyBhIHBlbmRpbmcgYnVpbGQgaWYgc2xhdmVMaXN0IGlzIG5v
dCBzcGVjaWZpZWQnLCAoKSA9PiB7Ci0gICAgICAgICAgICBsZXQgc3luY2VyID0gQnVpbGRib3RT
eW5jZXIuX2xvYWRDb25maWcoTW9ja1JlbW90ZUFQSSwgc21hbGxDb25maWd1cmF0aW9uKCkpWzBd
OworICAgICAgICAgICAgbGV0IHN5bmNlciA9IEJ1aWxkYm90U3luY2VyLl9sb2FkQ29uZmlnKE1v
Y2tSZW1vdGVBUEksIHNtYWxsQ29uZmlndXJhdGlvbigpLCBidWlsZGVyTmFtZVRvSURNYXAoKSlb
MF07CiAKICAgICAgICAgICAgIHJldHVybiBwdWxsQnVpbGRib3RXaXRoQXNzZXJ0aW9uKHN5bmNl
ciwgW3NtYWxsUGVuZGluZ0J1aWxkKCldLCB7fSkudGhlbigoKSA9PiB7CiAgICAgICAgICAgICAg
ICAgc3luY2VyLnNjaGVkdWxlUmVxdWVzdEluR3JvdXBJZkF2YWlsYWJsZShjcmVhdGVTYW1wbGVC
dWlsZFJlcXVlc3QoTW9ja01vZGVscy5zb21lUGxhdGZvcm0sIE1vY2tNb2RlbHMuc29tZVRlc3Qp
KTsKQEAgLTEzNjIsNyArMTM2Nyw3IEBAIGRlc2NyaWJlKCdCdWlsZGJvdFN5bmNlcicsICgpID0+
IHsKICAgICAgICAgfSk7CiAKICAgICAgICAgaXQoJ3Nob3VsZCBzY2hlZHVsZSBhIGJ1aWxkIGlm
IGJ1aWxkZXIgZG9lcyBub3QgaGF2ZSBwZW5kaW5nIG9yIGNvbXBsZXRlZCBidWlsZHMgb24gdGhl
IG1hdGNoaW5nIHNsYXZlJywgKCkgPT4gewotICAgICAgICAgICAgbGV0IHN5bmNlciA9IEJ1aWxk
Ym90U3luY2VyLl9sb2FkQ29uZmlnKE1vY2tSZW1vdGVBUEksIHNhbXBsZWlPU0NvbmZpZygpKVsw
XTsKKyAgICAgICAgICAgIGxldCBzeW5jZXIgPSBCdWlsZGJvdFN5bmNlci5fbG9hZENvbmZpZyhN
b2NrUmVtb3RlQVBJLCBzYW1wbGVpT1NDb25maWcoKSwgYnVpbGRlck5hbWVUb0lETWFwKCkpWzBd
OwogCiAgICAgICAgICAgICByZXR1cm4gcHVsbEJ1aWxkYm90V2l0aEFzc2VydGlvbihzeW5jZXIs
IFtdLCB7fSkudGhlbigoKSA9PiB7CiAgICAgICAgICAgICAgICAgY29uc3QgcmVxdWVzdCA9IGNy
ZWF0ZVNhbXBsZUJ1aWxkUmVxdWVzdChNb2NrTW9kZWxzLmlwaG9uZSwgTW9ja01vZGVscy5zcGVl
ZG9tZXRlcik7CkBAIC0xMzc0LDcgKzEzNzksNyBAQCBkZXNjcmliZSgnQnVpbGRib3RTeW5jZXIn
LCAoKSA9PiB7CiAgICAgICAgIH0pOwogCiAgICAgICAgIGl0KCdzaG91bGQgc2NoZWR1bGUgYSBi
dWlsZCBpZiBidWlsZGVyIG9ubHkgaGFzIGZpbmlzaGVkIGJ1aWxkcyBvbiB0aGUgbWF0Y2hpbmcg
c2xhdmUnLCAoKSA9PiB7Ci0gICAgICAgICAgICBsZXQgc3luY2VyID0gQnVpbGRib3RTeW5jZXIu
X2xvYWRDb25maWcoTW9ja1JlbW90ZUFQSSwgc2FtcGxlaU9TQ29uZmlnKCkpWzFdOworICAgICAg
ICAgICAgbGV0IHN5bmNlciA9IEJ1aWxkYm90U3luY2VyLl9sb2FkQ29uZmlnKE1vY2tSZW1vdGVB
UEksIHNhbXBsZWlPU0NvbmZpZygpLCBidWlsZGVyTmFtZVRvSURNYXAoKSlbMV07CiAKICAgICAg
ICAgICAgIHB1bGxCdWlsZGJvdFdpdGhBc3NlcnRpb24oc3luY2VyLCBbXSwge1stMV06IHNhbXBs
ZUZpbmlzaGVkQnVpbGQoKX0pLnRoZW4oKCkgPT4gewogICAgICAgICAgICAgICAgIGNvbnN0IHJl
cXVlc3QgPSBjcmVhdGVTYW1wbGVCdWlsZFJlcXVlc3QoTW9ja01vZGVscy5pcGFkLCBNb2NrTW9k
ZWxzLnNwZWVkb21ldGVyKTsKQEAgLTEzODYsNyArMTM5MSw3IEBAIGRlc2NyaWJlKCdCdWlsZGJv
dFN5bmNlcicsICgpID0+IHsKICAgICAgICAgfSk7CiAKICAgICAgICAgaXQoJ3Nob3VsZCBub3Qg
c2NoZWR1bGUgYSBidWlsZCBpZiBidWlsZGVyIGhhcyBhIHBlbmRpbmcgYnVpbGQgb24gdGhlIG1h
Y2hpbmcgc2xhdmUnLCAoKSA9PiB7Ci0gICAgICAgICAgICBsZXQgc3luY2VyID0gQnVpbGRib3RT
eW5jZXIuX2xvYWRDb25maWcoTW9ja1JlbW90ZUFQSSwgc2FtcGxlaU9TQ29uZmlnKCkpWzFdOwor
ICAgICAgICAgICAgbGV0IHN5bmNlciA9IEJ1aWxkYm90U3luY2VyLl9sb2FkQ29uZmlnKE1vY2tS
ZW1vdGVBUEksIHNhbXBsZWlPU0NvbmZpZygpLCBidWlsZGVyTmFtZVRvSURNYXAoKSlbMV07CiAK
ICAgICAgICAgICAgIHB1bGxCdWlsZGJvdFdpdGhBc3NlcnRpb24oc3luY2VyLCBbc2FtcGxlUGVu
ZGluZ0J1aWxkKCldLCB7fSkudGhlbigoKSA9PiB7CiAgICAgICAgICAgICAgICAgY29uc3QgcmVx
dWVzdCA9IGNyZWF0ZVNhbXBsZUJ1aWxkUmVxdWVzdChNb2NrTW9kZWxzLmlwYWQsIE1vY2tNb2Rl
bHMuc3BlZWRvbWV0ZXIpOwpAQCAtMTM5Niw3ICsxNDAxLDcgQEAgZGVzY3JpYmUoJ0J1aWxkYm90
U3luY2VyJywgKCkgPT4gewogICAgICAgICB9KTsKIAogICAgICAgICBpdCgnc2hvdWxkIHNjaGVk
dWxlIGEgYnVpbGQgaWYgYnVpbGRlciBvbmx5IGhhcyBhIHBlbmRpbmcgYnVpbGQgb24gYSBub24t
bWFjaGluZyBzbGF2ZScsICgpID0+IHsKLSAgICAgICAgICAgIGxldCBzeW5jZXIgPSBCdWlsZGJv
dFN5bmNlci5fbG9hZENvbmZpZyhNb2NrUmVtb3RlQVBJLCBzYW1wbGVpT1NDb25maWcoKSlbMV07
CisgICAgICAgICAgICBsZXQgc3luY2VyID0gQnVpbGRib3RTeW5jZXIuX2xvYWRDb25maWcoTW9j
a1JlbW90ZUFQSSwgc2FtcGxlaU9TQ29uZmlnKCksIGJ1aWxkZXJOYW1lVG9JRE1hcCgpKVsxXTsK
IAogICAgICAgICAgICAgcmV0dXJuIHB1bGxCdWlsZGJvdFdpdGhBc3NlcnRpb24oc3luY2VyLCBb
c2FtcGxlUGVuZGluZ0J1aWxkKDEsIDEsICdhbm90aGVyLXNsYXZlJyldLCB7fSkudGhlbigoKSA9
PiB7CiAgICAgICAgICAgICAgICAgY29uc3QgcmVxdWVzdCA9IGNyZWF0ZVNhbXBsZUJ1aWxkUmVx
dWVzdChNb2NrTW9kZWxzLmlwYWQsIE1vY2tNb2RlbHMuc3BlZWRvbWV0ZXIpOwpAQCAtMTQwNiw3
ICsxNDExLDcgQEAgZGVzY3JpYmUoJ0J1aWxkYm90U3luY2VyJywgKCkgPT4gewogICAgICAgICB9
KTsKIAogICAgICAgICBpdCgnc2hvdWxkIHNjaGVkdWxlIGEgYnVpbGQgaWYgYnVpbGRlciBvbmx5
IGhhcyBhbiBpbi1wcm9ncmVzcyBidWlsZCBvbiB0aGUgbWF0Y2hpbmcgc2xhdmUnLCAoKSA9PiB7
Ci0gICAgICAgICAgICBsZXQgc3luY2VyID0gQnVpbGRib3RTeW5jZXIuX2xvYWRDb25maWcoTW9j
a1JlbW90ZUFQSSwgc2FtcGxlaU9TQ29uZmlnKCkpWzFdOworICAgICAgICAgICAgbGV0IHN5bmNl
ciA9IEJ1aWxkYm90U3luY2VyLl9sb2FkQ29uZmlnKE1vY2tSZW1vdGVBUEksIHNhbXBsZWlPU0Nv
bmZpZygpLCBidWlsZGVyTmFtZVRvSURNYXAoKSlbMV07CiAKICAgICAgICAgICAgIHJldHVybiBw
dWxsQnVpbGRib3RXaXRoQXNzZXJ0aW9uKHN5bmNlciwgW10sIHtbLTFdOiBzYW1wbGVJblByb2dy
ZXNzQnVpbGQoKX0pLnRoZW4oKCkgPT4gewogICAgICAgICAgICAgICAgIGNvbnN0IHJlcXVlc3Qg
PSBjcmVhdGVTYW1wbGVCdWlsZFJlcXVlc3QoTW9ja01vZGVscy5pcGFkLCBNb2NrTW9kZWxzLnNw
ZWVkb21ldGVyKTsKQEAgLTE0MTYsNyArMTQyMSw3IEBAIGRlc2NyaWJlKCdCdWlsZGJvdFN5bmNl
cicsICgpID0+IHsKICAgICAgICAgfSk7CiAKICAgICAgICAgaXQoJ3Nob3VsZCBzY2hlZHVsZSBh
IGJ1aWxkIGlmIGJ1aWxkZXIgaGFzIGFuIGluLXByb2dyZXNzIGJ1aWxkIG9uIGFub3RoZXIgc2xh
dmUnLCAoKSA9PiB7Ci0gICAgICAgICAgICBsZXQgc3luY2VyID0gQnVpbGRib3RTeW5jZXIuX2xv
YWRDb25maWcoTW9ja1JlbW90ZUFQSSwgc2FtcGxlaU9TQ29uZmlnKCkpWzFdOworICAgICAgICAg
ICAgbGV0IHN5bmNlciA9IEJ1aWxkYm90U3luY2VyLl9sb2FkQ29uZmlnKE1vY2tSZW1vdGVBUEks
IHNhbXBsZWlPU0NvbmZpZygpLCBidWlsZGVyTmFtZVRvSURNYXAoKSlbMV07CiAKICAgICAgICAg
ICAgIHJldHVybiBwdWxsQnVpbGRib3RXaXRoQXNzZXJ0aW9uKHN5bmNlciwgW10sIHtbLTFdOiBz
YW1wbGVJblByb2dyZXNzQnVpbGQoJ290aGVyLXNsYXZlJyl9KS50aGVuKCgpID0+IHsKICAgICAg
ICAgICAgICAgICBjb25zdCByZXF1ZXN0ID0gY3JlYXRlU2FtcGxlQnVpbGRSZXF1ZXN0KE1vY2tN
b2RlbHMuaXBhZCwgTW9ja01vZGVscy5zcGVlZG9tZXRlcik7CkBAIC0xNDI2LDcgKzE0MzEsNyBA
QCBkZXNjcmliZSgnQnVpbGRib3RTeW5jZXInLCAoKSA9PiB7CiAgICAgICAgIH0pOwogCiAgICAg
ICAgIGl0KCdzaG91bGQgbm90IHNjaGVkdWxlIGEgYnVpbGQgaWYgdGhlIHJlcXVlc3QgZG9lcyBu
b3QgbWF0Y2ggYW55IGNvbmZpZ3VyYXRpb24nLCAoKSA9PiB7Ci0gICAgICAgICAgICBsZXQgc3lu
Y2VyID0gQnVpbGRib3RTeW5jZXIuX2xvYWRDb25maWcoTW9ja1JlbW90ZUFQSSwgc2FtcGxlaU9T
Q29uZmlnKCkpWzBdOworICAgICAgICAgICAgbGV0IHN5bmNlciA9IEJ1aWxkYm90U3luY2VyLl9s
b2FkQ29uZmlnKE1vY2tSZW1vdGVBUEksIHNhbXBsZWlPU0NvbmZpZygpLCBidWlsZGVyTmFtZVRv
SURNYXAoKSlbMF07CiAKICAgICAgICAgICAgIHJldHVybiBwdWxsQnVpbGRib3RXaXRoQXNzZXJ0
aW9uKHN5bmNlciwgW10sIHt9KS50aGVuKCgpID0+IHsKICAgICAgICAgICAgICAgICBjb25zdCBy
ZXF1ZXN0ID0gY3JlYXRlU2FtcGxlQnVpbGRSZXF1ZXN0KE1vY2tNb2RlbHMuaXBhZCwgTW9ja01v
ZGVscy5zcGVlZG9tZXRlcik7CkBAIC0xNDM2LDcgKzE0NDEsNyBAQCBkZXNjcmliZSgnQnVpbGRi
b3RTeW5jZXInLCAoKSA9PiB7CiAgICAgICAgIH0pOwogCiAgICAgICAgIGl0KCdzaG91bGQgbm90
IHNjaGVkdWxlIGEgYnVpbGQgaWYgYSBuZXcgcmVxdWVzdCBoYWQgYmVlbiBzdWJtaXR0ZWQgdG8g
dGhlIHNhbWUgc2xhdmUnLCAoZG9uZSkgPT4gewotICAgICAgICAgICAgbGV0IHN5bmNlciA9IEJ1
aWxkYm90U3luY2VyLl9sb2FkQ29uZmlnKE1vY2tSZW1vdGVBUEksIHNhbXBsZWlPU0NvbmZpZygp
KVsxXTsKKyAgICAgICAgICAgIGxldCBzeW5jZXIgPSBCdWlsZGJvdFN5bmNlci5fbG9hZENvbmZp
ZyhNb2NrUmVtb3RlQVBJLCBzYW1wbGVpT1NDb25maWcoKSwgYnVpbGRlck5hbWVUb0lETWFwKCkp
WzFdOwogCiAgICAgICAgICAgICBwdWxsQnVpbGRib3RXaXRoQXNzZXJ0aW9uKHN5bmNlciwgW10s
IHt9KS50aGVuKCgpID0+IHsKICAgICAgICAgICAgICAgICBsZXQgcmVxdWVzdCA9IGNyZWF0ZVNh
bXBsZUJ1aWxkUmVxdWVzdChNb2NrTW9kZWxzLmlwYWQsIE1vY2tNb2RlbHMuc3BlZWRvbWV0ZXIp
OwpAQCAtMTQ1NCw3ICsxNDU5LDcgQEAgZGVzY3JpYmUoJ0J1aWxkYm90U3luY2VyJywgKCkgPT4g
ewogICAgICAgICB9KTsKIAogICAgICAgICBpdCgnc2hvdWxkIHNjaGVkdWxlIGEgYnVpbGQgaWYg
YSBuZXcgcmVxdWVzdCBoYWQgYmVlbiBzdWJtaXR0ZWQgdG8gYW5vdGhlciBzbGF2ZScsICgpID0+
IHsKLSAgICAgICAgICAgIGxldCBzeW5jZXIgPSBCdWlsZGJvdFN5bmNlci5fbG9hZENvbmZpZyhN
b2NrUmVtb3RlQVBJLCBzYW1wbGVpT1NDb25maWcoKSlbMV07CisgICAgICAgICAgICBsZXQgc3lu
Y2VyID0gQnVpbGRib3RTeW5jZXIuX2xvYWRDb25maWcoTW9ja1JlbW90ZUFQSSwgc2FtcGxlaU9T
Q29uZmlnKCksIGJ1aWxkZXJOYW1lVG9JRE1hcCgpKVsxXTsKIAogICAgICAgICAgICAgcmV0dXJu
IHB1bGxCdWlsZGJvdFdpdGhBc3NlcnRpb24oc3luY2VyLCBbXSwge30pLnRoZW4oKCkgPT4gewog
ICAgICAgICAgICAgICAgIGxldCByZXF1ZXN0ID0gY3JlYXRlU2FtcGxlQnVpbGRSZXF1ZXN0KE1v
Y2tNb2RlbHMuaXBhZCwgTW9ja01vZGVscy5zcGVlZG9tZXRlcik7CkBAIC0xNDY3LDcgKzE0NzIs
NyBAQCBkZXNjcmliZSgnQnVpbGRib3RTeW5jZXInLCAoKSA9PiB7CiAgICAgICAgIH0pOwogCiAg
ICAgICAgIGl0KCdzaG91bGQgbm90IHNjaGVkdWxlIGEgYnVpbGQgaWYgYSBuZXcgcmVxdWVzdCBo
YWQgYmVlbiBzdWJtaXR0ZWQgdG8gdGhlIHNhbWUgYnVpbGRlciB3aXRob3V0IHNsYXZlTGlzdCcs
ICgpID0+IHsKLSAgICAgICAgICAgIGxldCBzeW5jZXIgPSBCdWlsZGJvdFN5bmNlci5fbG9hZENv
bmZpZyhNb2NrUmVtb3RlQVBJLCBzbWFsbENvbmZpZ3VyYXRpb24oKSlbMF07CisgICAgICAgICAg
ICBsZXQgc3luY2VyID0gQnVpbGRib3RTeW5jZXIuX2xvYWRDb25maWcoTW9ja1JlbW90ZUFQSSwg
c21hbGxDb25maWd1cmF0aW9uKCksIGJ1aWxkZXJOYW1lVG9JRE1hcCgpKVswXTsKIAogICAgICAg
ICAgICAgcmV0dXJuIHB1bGxCdWlsZGJvdFdpdGhBc3NlcnRpb24oc3luY2VyLCBbXSwge30pLnRo
ZW4oKCkgPT4gewogICAgICAgICAgICAgICAgIGxldCByZXF1ZXN0ID0gY3JlYXRlU2FtcGxlQnVp
bGRSZXF1ZXN0KE1vY2tNb2RlbHMuc29tZVBsYXRmb3JtLCBNb2NrTW9kZWxzLnNvbWVUZXN0KTsK
</data>
<flag name="review"
          id="340265"
          type_id="1"
          status="-"
          setter="rniwa"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>326308</attachid>
            <date>2017-11-07 23:12:54 -0800</date>
            <delta_ts>2017-11-10 15:52:25 -0800</delta_ts>
            <desc>Updated patch</desc>
            <filename>patch_buildbot_perf_builderNameToIDMap_v2</filename>
            <type>text/plain</type>
            <size>53489</size>
            <attacher name="Aakash Jain">aakash_jain</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
V2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL0NoYW5nZUxvZwkocmV2aXNpb24gMjI0NTY0KQorKysg
V2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwz
ICsxLDIwIEBACisyMDE3LTExLTA3ICBBYWthc2ggSmFpbiAgPGFha2FzaF9qYWluQGFwcGxlLmNv
bT4KKworICAgICAgICBBZGQgc3VwcG9ydCBmb3IgYnVpbGRlck5hbWVUb0lETWFwIGluIEJ1aWxk
Ym90U3luY2VyCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD0xNzY1MjYKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAg
ICAqIHRvb2xzL2pzL2J1aWxkYm90LXN5bmNlci5qczoKKyAgICAgICAgKEJ1aWxkYm90U3luY2Vy
Ll9sb2FkQ29uZmlnKTogQWRkZWQgYnVpbGRlck5hbWVUb0lETWFwIHBhcmFtZXRlci4gSXQgd291
bGQgYmUgdXNlZCBsYXRlciBvbi4KKyAgICAgICAgKEJ1aWxkYm90U3luY2VyLl9yZXNvbHZlQnVp
bGRlcnNXaXRoUGxhdGZvcm1zKTogRGl0dG8uCisgICAgICAgIChCdWlsZGJvdFN5bmNlci5fdmFs
aWRhdGVBbmRNZXJnZUNvbmZpZyk6IEFkZGVkIGJ1aWxkZXJJRCBhcyBhIHZhbGlkIGNvbmZpZyBw
YXJhbWV0ZXIuCisgICAgICAgICogdG9vbHMvanMvYnVpbGRib3QtdHJpZ2dlcmFibGUuanM6Cisg
ICAgICAgIChCdWlsZGJvdFRyaWdnZXJhYmxlLnByb3RvdHlwZS5nZXRCdWlsZGVyTmFtZVRvSURN
YXApOiBNZXRob2QgdG8gZmV0Y2ggQnVpbGRlck5hbWVUb0lETWFwIGZyb20gcGVyZi1idWlsZC1z
YWZhcmkuCisgICAgICAgIChCdWlsZGJvdFRyaWdnZXJhYmxlLnByb3RvdHlwZS5pbml0U3luY2Vy
cyk6IFVwZGF0ZWQgdG8gdXNlIGdldEJ1aWxkZXJOYW1lVG9JRE1hcC4KKyAgICAgICAgKiB1bml0
LXRlc3RzL2J1aWxkYm90LXN5bmNlci10ZXN0cy5qczogVXBkYXRlZCB1bml0LXRlc3RzLgorICAg
ICAgICAoYnVpbGRlck5hbWVUb0lETWFwKTogQWRkZWQgbWV0aG9kIHRvIHJldHVybiBidWlsZGVy
TmFtZVRvSURNYXAKKwogMjAxNy0xMS0wMiAgRGV3ZWkgWmh1ICA8ZGV3ZWlfemh1QGFwcGxlLmNv
bT4KIAogICAgICAgICBBZGQgcGxhdGZvcm0gYXJndW1lbnQgZm9yIHN5bmNpbmcgc2NyaXB0LgpJ
bmRleDogV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL3Rvb2xzL2pzL2J1aWxkYm90LXN5bmNlci5q
cwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBXZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvdG9vbHMvanMvYnVpbGRi
b3Qtc3luY2VyLmpzCShyZXZpc2lvbiAyMjQ1NjQpCisrKyBXZWJzaXRlcy9wZXJmLndlYmtpdC5v
cmcvdG9vbHMvanMvYnVpbGRib3Qtc3luY2VyLmpzCSh3b3JraW5nIGNvcHkpCkBAIC0zMTcsOCAr
MzE3LDkgQEAgY2xhc3MgQnVpbGRib3RTeW5jZXIgewogICAgICAgICByZXR1cm4gcmV2aXNpb25T
ZXQ7CiAgICAgfQogCi0gICAgc3RhdGljIF9sb2FkQ29uZmlnKHJlbW90ZSwgY29uZmlnKQorICAg
IHN0YXRpYyBfbG9hZENvbmZpZyhyZW1vdGUsIGNvbmZpZywgYnVpbGRlck5hbWVUb0lETWFwKQog
ICAgIHsKKyAgICAgICAgYXNzZXJ0KGJ1aWxkZXJOYW1lVG9JRE1hcCk7CiAgICAgICAgIGNvbnN0
IHR5cGVzID0gY29uZmlnWyd0eXBlcyddIHx8IHt9OwogICAgICAgICBjb25zdCBidWlsZGVycyA9
IGNvbmZpZ1snYnVpbGRlcnMnXSB8fCB7fTsKIApAQCAtMzQ4LDcgKzM0OSw3IEBAIGNsYXNzIEJ1
aWxkYm90U3luY2VyIHsKICAgICAgICAgfQogCiAgICAgICAgIGFzc2VydChBcnJheS5pc0FycmF5
KGNvbmZpZ1sndGVzdENvbmZpZ3VyYXRpb25zJ10pLCBgVGhlIHRlc3QgY29uZmlndXJhdGlvbiBt
dXN0IGJlIGFuIGFycmF5YCk7Ci0gICAgICAgIHRoaXMuX3Jlc29sdmVCdWlsZGVyc1dpdGhQbGF0
Zm9ybXMoJ3Rlc3QnLCBjb25maWdbJ3Rlc3RDb25maWd1cmF0aW9ucyddLCBidWlsZGVycykuZm9y
RWFjaCgoZW50cnksIGNvbmZpZ3VyYXRpb25JbmRleCkgPT4geworICAgICAgICB0aGlzLl9yZXNv
bHZlQnVpbGRlcnNXaXRoUGxhdGZvcm1zKCd0ZXN0JywgY29uZmlnWyd0ZXN0Q29uZmlndXJhdGlv
bnMnXSwgYnVpbGRlcnMsIGJ1aWxkZXJOYW1lVG9JRE1hcCkuZm9yRWFjaCgoZW50cnksIGNvbmZp
Z3VyYXRpb25JbmRleCkgPT4gewogICAgICAgICAgICAgYXNzZXJ0KEFycmF5LmlzQXJyYXkoZW50
cnlbJ3R5cGVzJ10pLCBgVGhlIHRlc3QgY29uZmlndXJhdGlvbiAke2NvbmZpZ3VyYXRpb25JbmRl
eH0gZG9lcyBub3Qgc3BlY2lmeSAidHlwZXMiIGFzIGFuIGFycmF5YCk7CiAgICAgICAgICAgICBm
b3IgKGNvbnN0IHR5cGUgb2YgZW50cnlbJ3R5cGVzJ10pIHsKICAgICAgICAgICAgICAgICBjb25z
dCB0eXBlQ29uZmlnID0gdGhpcy5fdmFsaWRhdGVBbmRNZXJnZUNvbmZpZyh7fSwgZW50cnkuYnVp
bGRlckNvbmZpZyk7CkBAIC0zNjYsNyArMzY3LDcgQEAgY2xhc3MgQnVpbGRib3RTeW5jZXIgewog
ICAgICAgICBjb25zdCBidWlsZENvbmZpZ3VyYXRpb25zID0gY29uZmlnWydidWlsZENvbmZpZ3Vy
YXRpb25zJ107CiAgICAgICAgIGlmIChidWlsZENvbmZpZ3VyYXRpb25zKSB7CiAgICAgICAgICAg
ICBhc3NlcnQoQXJyYXkuaXNBcnJheShidWlsZENvbmZpZ3VyYXRpb25zKSwgYFRoZSB0ZXN0IGNv
bmZpZ3VyYXRpb24gbXVzdCBiZSBhbiBhcnJheWApOwotICAgICAgICAgICAgdGhpcy5fcmVzb2x2
ZUJ1aWxkZXJzV2l0aFBsYXRmb3JtcygndGVzdCcsIGJ1aWxkQ29uZmlndXJhdGlvbnMsIGJ1aWxk
ZXJzKS5mb3JFYWNoKChlbnRyeSwgY29uZmlndXJhdGlvbkluZGV4KSA9PiB7CisgICAgICAgICAg
ICB0aGlzLl9yZXNvbHZlQnVpbGRlcnNXaXRoUGxhdGZvcm1zKCd0ZXN0JywgYnVpbGRDb25maWd1
cmF0aW9ucywgYnVpbGRlcnMsIGJ1aWxkZXJOYW1lVG9JRE1hcCkuZm9yRWFjaCgoZW50cnksIGNv
bmZpZ3VyYXRpb25JbmRleCkgPT4gewogICAgICAgICAgICAgICAgIGNvbnN0IHN5bmNlciA9IGVu
c3VyZUJ1aWxkYm90U3luY2VyKGVudHJ5LmJ1aWxkZXJDb25maWcpOwogICAgICAgICAgICAgICAg
IGFzc2VydCghc3luY2VyLmlzVGVzdGVyKCksIGBUaGUgYnVpbGQgY29uZmlndXJhdGlvbiAke2Nv
bmZpZ3VyYXRpb25JbmRleH0gdXNlcyBhIHRlc3RlcjogJHtzeW5jZXIuYnVpbGRlck5hbWUoKX1g
KTsKICAgICAgICAgICAgICAgICBzeW5jZXIuYWRkQnVpbGRDb25maWd1cmF0aW9uKGVudHJ5LnBs
YXRmb3JtLCBlbnRyeS5idWlsZGVyQ29uZmlnLnByb3BlcnRpZXMpOwpAQCAtMzc2LDcgKzM3Nyw3
IEBAIGNsYXNzIEJ1aWxkYm90U3luY2VyIHsKICAgICAgICAgcmV0dXJuIEFycmF5LmZyb20oc3lu
Y2VyQnlCdWlsZGVyLnZhbHVlcygpKTsKICAgICB9CiAKLSAgICBzdGF0aWMgX3Jlc29sdmVCdWls
ZGVyc1dpdGhQbGF0Zm9ybXMoY29uZmlndXJhdGlvblR5cGUsIGNvbmZpZ3VyYXRpb25MaXN0LCBi
dWlsZGVycykKKyAgICBzdGF0aWMgX3Jlc29sdmVCdWlsZGVyc1dpdGhQbGF0Zm9ybXMoY29uZmln
dXJhdGlvblR5cGUsIGNvbmZpZ3VyYXRpb25MaXN0LCBidWlsZGVycywgYnVpbGRlck5hbWVUb0lE
TWFwKQogICAgIHsKICAgICAgICAgY29uc3QgcmVzb2x2ZWRDb25maWd1cmF0aW9ucyA9IFtdOwog
ICAgICAgICBsZXQgY29uZmlndXJhdGlvbkluZGV4ID0gMDsKQEAgLTM4OCw2ICszODksOCBAQCBj
bGFzcyBCdWlsZGJvdFN5bmNlciB7CiAgICAgICAgICAgICAgICAgY29uc3QgbWF0Y2hpbmdCdWls
ZGVyID0gYnVpbGRlcnNbYnVpbGRlcktleV07CiAgICAgICAgICAgICAgICAgYXNzZXJ0KG1hdGNo
aW5nQnVpbGRlciwgYCIke2J1aWxkZXJLZXl9IiBpcyBub3QgYSB2YWxpZCBidWlsZGVyIGluIHRo
ZSBjb25maWd1cmF0aW9uYCk7CiAgICAgICAgICAgICAgICAgYXNzZXJ0KCdidWlsZGVyJyBpbiBt
YXRjaGluZ0J1aWxkZXIsIGBCdWlsZGVyICR7YnVpbGRlcktleX0gZG9lcyBub3Qgc3BlY2lmeSBh
IGJ1aWxkYm90IGJ1aWxkZXIgbmFtZWApOworICAgICAgICAgICAgICAgIGFzc2VydChtYXRjaGlu
Z0J1aWxkZXIuYnVpbGRlciBpbiBidWlsZGVyTmFtZVRvSURNYXAsIGBCdWlsZGVyICR7bWF0Y2hp
bmdCdWlsZGVyLmJ1aWxkZXJ9IG5vdCBmb3VuZCBpbiBCdWlsZGJvdCBjb25maWd1cmF0aW9uLmAp
OworICAgICAgICAgICAgICAgIG1hdGNoaW5nQnVpbGRlclsnYnVpbGRlcklEJ10gPSBidWlsZGVy
TmFtZVRvSURNYXBbbWF0Y2hpbmdCdWlsZGVyLmJ1aWxkZXJdOwogICAgICAgICAgICAgICAgIGNv
bnN0IGJ1aWxkZXJDb25maWcgPSB0aGlzLl92YWxpZGF0ZUFuZE1lcmdlQ29uZmlnKHt9LCBtYXRj
aGluZ0J1aWxkZXIpOwogICAgICAgICAgICAgICAgIGZvciAoY29uc3QgcGxhdGZvcm1OYW1lIG9m
IGVudHJ5WydwbGF0Zm9ybXMnXSkgewogICAgICAgICAgICAgICAgICAgICBjb25zdCBwbGF0Zm9y
bSA9IFBsYXRmb3JtLmZpbmRCeU5hbWUocGxhdGZvcm1OYW1lKTsKQEAgLTU2NSw2ICs1NjgsMTAg
QEAgY2xhc3MgQnVpbGRib3RTeW5jZXIgewogICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbCh0
eXBlb2YodmFsdWUpLCAnc3RyaW5nJywgYCR7bmFtZX0gc2hvdWxkIGJlIG9mIHN0cmluZyB0eXBl
YCk7CiAgICAgICAgICAgICAgICAgY29uZmlnW25hbWVdID0gdmFsdWU7CiAgICAgICAgICAgICAg
ICAgYnJlYWs7CisgICAgICAgICAgICBjYXNlICdidWlsZGVySUQnOgorICAgICAgICAgICAgICAg
IGFzc2VydCh2YWx1ZSwgJ2J1aWxkZXJJRCBzaG91bGQgbm90IGJlIHVuZGVmaW5lZC4nKTsKKyAg
ICAgICAgICAgICAgICBjb25maWdbbmFtZV0gPSB2YWx1ZTsKKyAgICAgICAgICAgICAgICBicmVh
azsKICAgICAgICAgICAgIGRlZmF1bHQ6CiAgICAgICAgICAgICAgICAgYXNzZXJ0KGZhbHNlLCBg
VW5yZWNvZ25pemVkIHBhcmFtZXRlciAiJHtuYW1lfSJgKTsKICAgICAgICAgICAgIH0KSW5kZXg6
IFdlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy90b29scy9qcy9idWlsZGJvdC10cmlnZ2VyYWJsZS5q
cwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBXZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvdG9vbHMvanMvYnVpbGRi
b3QtdHJpZ2dlcmFibGUuanMJKHJldmlzaW9uIDIyNDU2NCkKKysrIFdlYnNpdGVzL3BlcmYud2Vi
a2l0Lm9yZy90b29scy9qcy9idWlsZGJvdC10cmlnZ2VyYWJsZS5qcwkod29ya2luZyBjb3B5KQpA
QCAtMjcsMTEgKzI3LDIwIEBAIGNsYXNzIEJ1aWxkYm90VHJpZ2dlcmFibGUgewogICAgICAgICB0
aGlzLl9sb2dnZXIgPSBsb2dnZXIgfHwge2xvZzogKCkgPT4geyB9LCBlcnJvcjogKCkgPT4geyB9
fTsKICAgICB9CiAKKyAgICBnZXRCdWlsZGVyTmFtZVRvSURNYXAoKSB7CisgICAgICAgIHJldHVy
biB0aGlzLl9idWlsZGJvdFJlbW90ZS5nZXRKU09OKCIvanNvbi9idWlsZGVycyIpLnRoZW4oKGNv
bnRlbnQpID0+IHsKKyAgICAgICAgICAgIGNvbnN0IGJ1aWxkZXJOYW1lVG9JRE1hcCA9IHt9Owor
ICAgICAgICAgICAgZm9yIChsZXQgYnVpbGRlciBpbiBjb250ZW50KSB7CisgICAgICAgICAgICAg
ICAgYnVpbGRlck5hbWVUb0lETWFwW2J1aWxkZXJdID0gYnVpbGRlcjsKKyAgICAgICAgICAgIH0K
KyAgICAgICAgICAgIHJldHVybiBidWlsZGVyTmFtZVRvSURNYXA7CisgICAgICAgIH0pOworICAg
IH0KKwogICAgIGluaXRTeW5jZXJzKCkKICAgICB7Ci0gICAgICAgIHJldHVybiBuZXcgUHJvbWlz
ZSgocmVzb2x2ZSwgcmVqZWN0KSA9PiB7Ci0gICAgICAgICAgICB0aGlzLl9zeW5jZXJzID0gQnVp
bGRib3RTeW5jZXIuX2xvYWRDb25maWcodGhpcy5fYnVpbGRib3RSZW1vdGUsIHRoaXMuX2NvbmZp
Zyk7Ci0gICAgICAgICAgICBzZXRUaW1lb3V0KHJlc29sdmUsIDApOworICAgICAgICByZXR1cm4g
dGhpcy5nZXRCdWlsZGVyTmFtZVRvSURNYXAoKS50aGVuKChidWlsZGVyTmFtZVRvSURNYXApID0+
IHsKKyAgICAgICAgICAgIHRoaXMuX3N5bmNlcnMgPSBCdWlsZGJvdFN5bmNlci5fbG9hZENvbmZp
Zyh0aGlzLl9idWlsZGJvdFJlbW90ZSwgdGhpcy5fY29uZmlnLCBidWlsZGVyTmFtZVRvSURNYXAp
OwogICAgICAgICB9KTsKICAgICB9CiAKSW5kZXg6IFdlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy91
bml0LXRlc3RzL2J1aWxkYm90LXN5bmNlci10ZXN0cy5qcwo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJzaXRl
cy9wZXJmLndlYmtpdC5vcmcvdW5pdC10ZXN0cy9idWlsZGJvdC1zeW5jZXItdGVzdHMuanMJKHJl
dmlzaW9uIDIyNDU2NCkKKysrIFdlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy91bml0LXRlc3RzL2J1
aWxkYm90LXN5bmNlci10ZXN0cy5qcwkod29ya2luZyBjb3B5KQpAQCAtODUsMTUgKzg1LDE1IEBA
IGZ1bmN0aW9uIHNhbXBsZWlPU0NvbmZpZ1dpdGhFeHBhbnNpb25zKCkKICAgICAgICAgfSwKICAg
ICAgICAgImJ1aWxkZXJzIjogewogICAgICAgICAgICAgImlwaG9uZSI6IHsKLSAgICAgICAgICAg
ICAgICAiYnVpbGRlciI6ICJpUGhvbmUgQUIgVGVzdHMiLAorICAgICAgICAgICAgICAgICJidWls
ZGVyIjogImlQaG9uZS1BQi1UZXN0cyIsCiAgICAgICAgICAgICAgICAgInByb3BlcnRpZXMiOiB7
ImZvcmNlc2NoZWR1bGVyIjogImZvcmNlLWlwaG9uZS1hYi10ZXN0cyJ9LAogICAgICAgICAgICAg
fSwKICAgICAgICAgICAgICJpcGhvbmUtMiI6IHsKLSAgICAgICAgICAgICAgICAiYnVpbGRlciI6
ICJpUGhvbmUgMiBBQiBUZXN0cyIsCisgICAgICAgICAgICAgICAgImJ1aWxkZXIiOiAiaVBob25l
LTItQUItVGVzdHMiLAogICAgICAgICAgICAgICAgICJwcm9wZXJ0aWVzIjogeyJmb3JjZXNjaGVk
dWxlciI6ICJmb3JjZS1pcGhvbmUtMi1hYi10ZXN0cyJ9LAogICAgICAgICAgICAgfSwKICAgICAg
ICAgICAgICJpcGFkIjogewotICAgICAgICAgICAgICAgICJidWlsZGVyIjogImlQYWQgQUIgVGVz
dHMiLAorICAgICAgICAgICAgICAgICJidWlsZGVyIjogImlQYWQtQUItVGVzdHMiLAogICAgICAg
ICAgICAgICAgICJwcm9wZXJ0aWVzIjogeyJmb3JjZXNjaGVkdWxlciI6ICJmb3JjZS1pcGFkLWFi
LXRlc3RzIn0sCiAgICAgICAgICAgICB9LAogICAgICAgICB9LApAQCAtMTQzLDYgKzE0MywxOSBA
QCBmdW5jdGlvbiBzbWFsbENvbmZpZ3VyYXRpb24oKQogICAgIH07CiB9CiAKK2Z1bmN0aW9uIGJ1
aWxkZXJOYW1lVG9JRE1hcCgpCit7CisgICAgcmV0dXJuIHsKKyAgICAgICAgJ3NvbWUgYnVpbGRl
cicgOiAnMTAwJywKKyAgICAgICAgJ0FCVGVzdC1pUGhvbmUtUnVuQmVuY2htYXJrLVRlc3RzJzog
JzEwMScsCisgICAgICAgICdBQlRlc3QtaVBhZC1SdW5CZW5jaG1hcmstVGVzdHMnOiAnMTAyJywK
KyAgICAgICAgJ0FCVGVzdC1pT1MtQnVpbGRlcic6ICcxMDMnLAorICAgICAgICAnaVBob25lLUFC
LVRlc3RzJyA6ICcxMDQnLAorICAgICAgICAnaVBob25lLTItQUItVGVzdHMnOiAnMTA1JywKKyAg
ICAgICAgJ2lQYWQtQUItVGVzdHMnOiAnMTA2JworICAgIH0gICAgCit9CisKIGZ1bmN0aW9uIHNt
YWxsUGVuZGluZ0J1aWxkKCkKIHsKICAgICByZXR1cm4gewpAQCAtNDc3LDM5ICs0OTAsMzkgQEAg
ZGVzY3JpYmUoJ0J1aWxkYm90U3luY2VyJywgKCkgPT4gewogICAgIGRlc2NyaWJlKCdfbG9hZENv
bmZpZycsICgpID0+IHsKIAogICAgICAgICBpdCgnc2hvdWxkIGNyZWF0ZSBCdWlsZGJvdFN5bmNl
ciBvYmplY3RzIGZvciBhIGNvbmZpZ3VyYXRpb24gdGhhdCBzcGVjaWZ5IGFsbCByZXF1aXJlZCBv
cHRpb25zJywgKCkgPT4gewotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKEJ1aWxkYm90U3luY2Vy
Ll9sb2FkQ29uZmlnKE1vY2tSZW1vdGVBUEksIHNtYWxsQ29uZmlndXJhdGlvbigpKS5sZW5ndGgs
IDEpOworICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKEJ1aWxkYm90U3luY2VyLl9sb2FkQ29uZmln
KE1vY2tSZW1vdGVBUEksIHNtYWxsQ29uZmlndXJhdGlvbigpLCBidWlsZGVyTmFtZVRvSURNYXAo
KSkubGVuZ3RoLCAxKTsKICAgICAgICAgfSk7CiAKICAgICAgICAgaXQoJ3Nob3VsZCB0aHJvdyB3
aGVuIHNvbWUgcmVxdWlyZWQgb3B0aW9ucyBhcmUgbWlzc2luZycsICgpID0+IHsKICAgICAgICAg
ICAgIGFzc2VydC50aHJvd3MoKCkgPT4gewogICAgICAgICAgICAgICAgIGNvbnN0IGNvbmZpZyA9
IHNtYWxsQ29uZmlndXJhdGlvbigpOwogICAgICAgICAgICAgICAgIGRlbGV0ZSBjb25maWcuYnVp
bGRlcnM7Ci0gICAgICAgICAgICAgICAgQnVpbGRib3RTeW5jZXIuX2xvYWRDb25maWcoTW9ja1Jl
bW90ZUFQSSwgY29uZmlnKTsKKyAgICAgICAgICAgICAgICBCdWlsZGJvdFN5bmNlci5fbG9hZENv
bmZpZyhNb2NrUmVtb3RlQVBJLCBjb25maWcsIGJ1aWxkZXJOYW1lVG9JRE1hcCgpKTsKICAgICAg
ICAgICAgIH0sIC8ic29tZS1idWlsZGVyIiBpcyBub3QgYSB2YWxpZCBidWlsZGVyIGluIHRoZSBj
b25maWd1cmF0aW9uLyk7CiAgICAgICAgICAgICBhc3NlcnQudGhyb3dzKCgpID0+IHsKICAgICAg
ICAgICAgICAgICBjb25zdCBjb25maWcgPSBzbWFsbENvbmZpZ3VyYXRpb24oKTsKICAgICAgICAg
ICAgICAgICBkZWxldGUgY29uZmlnLnR5cGVzOwotICAgICAgICAgICAgICAgIEJ1aWxkYm90U3lu
Y2VyLl9sb2FkQ29uZmlnKE1vY2tSZW1vdGVBUEksIGNvbmZpZyk7CisgICAgICAgICAgICAgICAg
QnVpbGRib3RTeW5jZXIuX2xvYWRDb25maWcoTW9ja1JlbW90ZUFQSSwgY29uZmlnLCBidWlsZGVy
TmFtZVRvSURNYXAoKSk7CiAgICAgICAgICAgICB9LCAvInNvbWUtdGVzdCIgaXMgbm90IGEgdmFs
aWQgdHlwZSBpbiB0aGUgY29uZmlndXJhdGlvbi8pOwogICAgICAgICAgICAgYXNzZXJ0LnRocm93
cygoKSA9PiB7CiAgICAgICAgICAgICAgICAgY29uc3QgY29uZmlnID0gc21hbGxDb25maWd1cmF0
aW9uKCk7CiAgICAgICAgICAgICAgICAgZGVsZXRlIGNvbmZpZy50ZXN0Q29uZmlndXJhdGlvbnNb
MF0uYnVpbGRlcnM7Ci0gICAgICAgICAgICAgICAgQnVpbGRib3RTeW5jZXIuX2xvYWRDb25maWco
TW9ja1JlbW90ZUFQSSwgY29uZmlnKTsKKyAgICAgICAgICAgICAgICBCdWlsZGJvdFN5bmNlci5f
bG9hZENvbmZpZyhNb2NrUmVtb3RlQVBJLCBjb25maWcsIGJ1aWxkZXJOYW1lVG9JRE1hcCgpKTsK
ICAgICAgICAgICAgIH0sIC9UaGUgdGVzdCBjb25maWd1cmF0aW9uIDEgZG9lcyBub3Qgc3BlY2lm
eSAiYnVpbGRlcnMiIGFzIGFuIGFycmF5Lyk7CiAgICAgICAgICAgICBhc3NlcnQudGhyb3dzKCgp
ID0+IHsKICAgICAgICAgICAgICAgICBjb25zdCBjb25maWcgPSBzbWFsbENvbmZpZ3VyYXRpb24o
KTsKICAgICAgICAgICAgICAgICBkZWxldGUgY29uZmlnLnRlc3RDb25maWd1cmF0aW9uc1swXS5w
bGF0Zm9ybXM7Ci0gICAgICAgICAgICAgICAgQnVpbGRib3RTeW5jZXIuX2xvYWRDb25maWcoTW9j
a1JlbW90ZUFQSSwgY29uZmlnKTsKKyAgICAgICAgICAgICAgICBCdWlsZGJvdFN5bmNlci5fbG9h
ZENvbmZpZyhNb2NrUmVtb3RlQVBJLCBjb25maWcsIGJ1aWxkZXJOYW1lVG9JRE1hcCgpKTsKICAg
ICAgICAgICAgIH0sIC9UaGUgdGVzdCBjb25maWd1cmF0aW9uIDEgZG9lcyBub3Qgc3BlY2lmeSAi
cGxhdGZvcm1zIiBhcyBhbiBhcnJheS8pOwogICAgICAgICAgICAgYXNzZXJ0LnRocm93cygoKSA9
PiB7CiAgICAgICAgICAgICAgICAgY29uc3QgY29uZmlnID0gc21hbGxDb25maWd1cmF0aW9uKCk7
CiAgICAgICAgICAgICAgICAgZGVsZXRlIGNvbmZpZy50ZXN0Q29uZmlndXJhdGlvbnNbMF0udHlw
ZXM7Ci0gICAgICAgICAgICAgICAgQnVpbGRib3RTeW5jZXIuX2xvYWRDb25maWcoTW9ja1JlbW90
ZUFQSSwgY29uZmlnKTsKKyAgICAgICAgICAgICAgICBCdWlsZGJvdFN5bmNlci5fbG9hZENvbmZp
ZyhNb2NrUmVtb3RlQVBJLCBjb25maWcsIGJ1aWxkZXJOYW1lVG9JRE1hcCgpKTsKICAgICAgICAg
ICAgIH0sIC9UaGUgdGVzdCBjb25maWd1cmF0aW9uIDAgZG9lcyBub3Qgc3BlY2lmeSAidHlwZXMi
IGFzIGFuIGFycmF5Lyk7CiAgICAgICAgICAgICBhc3NlcnQudGhyb3dzKCgpID0+IHsKICAgICAg
ICAgICAgICAgICBjb25zdCBjb25maWcgPSBzbWFsbENvbmZpZ3VyYXRpb24oKTsKICAgICAgICAg
ICAgICAgICBkZWxldGUgY29uZmlnLmJ1aWxkUmVxdWVzdEFyZ3VtZW50OwotICAgICAgICAgICAg
ICAgIEJ1aWxkYm90U3luY2VyLl9sb2FkQ29uZmlnKE1vY2tSZW1vdGVBUEksIGNvbmZpZyk7Cisg
ICAgICAgICAgICAgICAgQnVpbGRib3RTeW5jZXIuX2xvYWRDb25maWcoTW9ja1JlbW90ZUFQSSwg
Y29uZmlnLCBidWlsZGVyTmFtZVRvSURNYXAoKSk7CiAgICAgICAgICAgICB9LCAvYnVpbGRSZXF1
ZXN0QXJndW1lbnQgbXVzdCBzcGVjaWZ5IHRoZSBuYW1lIG9mIHRoZSBwcm9wZXJ0eSB1c2VkIHRv
IHN0b3JlIHRoZSBidWlsZCByZXF1ZXN0IElELyk7CiAgICAgICAgIH0pOwogCkBAIC01MTcsMTIg
KzUzMCwxMiBAQCBkZXNjcmliZSgnQnVpbGRib3RTeW5jZXInLCAoKSA9PiB7CiAgICAgICAgICAg
ICBhc3NlcnQudGhyb3dzKCgpID0+IHsKICAgICAgICAgICAgICAgICBjb25zdCBjb25maWcgPSBz
bWFsbENvbmZpZ3VyYXRpb24oKTsKICAgICAgICAgICAgICAgICBjb25maWcudGVzdENvbmZpZ3Vy
YXRpb25zWzBdLnR5cGVzID0gJ3NvbWUgdGVzdCc7Ci0gICAgICAgICAgICAgICAgQnVpbGRib3RT
eW5jZXIuX2xvYWRDb25maWcoTW9ja1JlbW90ZUFQSSwgY29uZmlnKTsKKyAgICAgICAgICAgICAg
ICBCdWlsZGJvdFN5bmNlci5fbG9hZENvbmZpZyhNb2NrUmVtb3RlQVBJLCBjb25maWcsIGJ1aWxk
ZXJOYW1lVG9JRE1hcCgpKTsKICAgICAgICAgICAgIH0sIC9UaGUgdGVzdCBjb25maWd1cmF0aW9u
IDAgZG9lcyBub3Qgc3BlY2lmeSAidHlwZXMiIGFzIGFuIGFycmF5Lyk7CiAgICAgICAgICAgICBh
c3NlcnQudGhyb3dzKCgpID0+IHsKICAgICAgICAgICAgICAgICBjb25zdCBjb25maWcgPSBzbWFs
bENvbmZpZ3VyYXRpb24oKTsKICAgICAgICAgICAgICAgICBjb25maWcudGVzdENvbmZpZ3VyYXRp
b25zWzBdLnR5cGVzID0gWzFdOwotICAgICAgICAgICAgICAgIEJ1aWxkYm90U3luY2VyLl9sb2Fk
Q29uZmlnKE1vY2tSZW1vdGVBUEksIGNvbmZpZyk7CisgICAgICAgICAgICAgICAgQnVpbGRib3RT
eW5jZXIuX2xvYWRDb25maWcoTW9ja1JlbW90ZUFQSSwgY29uZmlnLCBidWlsZGVyTmFtZVRvSURN
YXAoKSk7CiAgICAgICAgICAgICB9LCAvIjEiIGlzIG5vdCBhIHZhbGlkIHR5cGUgaW4gdGhlIGNv
bmZpZ3VyYXRpb24vKTsKICAgICAgICAgfSk7CiAKQEAgLTUzMCwxMiArNTQzLDEyIEBAIGRlc2Ny
aWJlKCdCdWlsZGJvdFN5bmNlcicsICgpID0+IHsKICAgICAgICAgICAgIGFzc2VydC50aHJvd3Mo
KCkgPT4gewogICAgICAgICAgICAgICAgIGNvbnN0IGNvbmZpZyA9IHNtYWxsQ29uZmlndXJhdGlv
bigpOwogICAgICAgICAgICAgICAgIGNvbmZpZy5idWlsZGVyc1tPYmplY3Qua2V5cyhjb25maWcu
YnVpbGRlcnMpWzBdXS5wcm9wZXJ0aWVzID0gJ2hlbGxvJzsKLSAgICAgICAgICAgICAgICBCdWls
ZGJvdFN5bmNlci5fbG9hZENvbmZpZyhNb2NrUmVtb3RlQVBJLCBjb25maWcpOworICAgICAgICAg
ICAgICAgIEJ1aWxkYm90U3luY2VyLl9sb2FkQ29uZmlnKE1vY2tSZW1vdGVBUEksIGNvbmZpZywg
YnVpbGRlck5hbWVUb0lETWFwKCkpOwogICAgICAgICAgICAgfSwgL0J1aWxkIHByb3BlcnRpZXMg
c2hvdWxkIGJlIGEgZGljdGlvbmFyeS8pOwogICAgICAgICAgICAgYXNzZXJ0LnRocm93cygoKSA9
PiB7CiAgICAgICAgICAgICAgICAgY29uc3QgY29uZmlnID0gc21hbGxDb25maWd1cmF0aW9uKCk7
CiAgICAgICAgICAgICAgICAgY29uZmlnLnR5cGVzW09iamVjdC5rZXlzKGNvbmZpZy50eXBlcylb
MF1dLnByb3BlcnRpZXMgPSAnaGVsbG8nOwotICAgICAgICAgICAgICAgIEJ1aWxkYm90U3luY2Vy
Ll9sb2FkQ29uZmlnKE1vY2tSZW1vdGVBUEksIGNvbmZpZyk7CisgICAgICAgICAgICAgICAgQnVp
bGRib3RTeW5jZXIuX2xvYWRDb25maWcoTW9ja1JlbW90ZUFQSSwgY29uZmlnLCBidWlsZGVyTmFt
ZVRvSURNYXAoKSk7CiAgICAgICAgICAgICB9LCAvQnVpbGQgcHJvcGVydGllcyBzaG91bGQgYmUg
YSBkaWN0aW9uYXJ5Lyk7CiAgICAgICAgIH0pOwogCkBAIC01NDQsMTMgKzU1NywxMyBAQCBkZXNj
cmliZSgnQnVpbGRib3RTeW5jZXInLCAoKSA9PiB7CiAgICAgICAgICAgICAgICAgY29uc3QgY29u
ZmlnID0gc21hbGxDb25maWd1cmF0aW9uKCk7CiAgICAgICAgICAgICAgICAgY29uc3QgZmlyc3RU
eXBlID0gT2JqZWN0LmtleXMoY29uZmlnLnR5cGVzKVswXTsKICAgICAgICAgICAgICAgICBjb25m
aWcudHlwZXNbZmlyc3RUeXBlXS50ZXN0UHJvcGVydGllcyA9IHt9OwotICAgICAgICAgICAgICAg
IEJ1aWxkYm90U3luY2VyLl9sb2FkQ29uZmlnKE1vY2tSZW1vdGVBUEksIGNvbmZpZyk7CisgICAg
ICAgICAgICAgICAgQnVpbGRib3RTeW5jZXIuX2xvYWRDb25maWcoTW9ja1JlbW90ZUFQSSwgY29u
ZmlnLCBidWlsZGVyTmFtZVRvSURNYXAoKSk7CiAgICAgICAgICAgICB9LCAvVW5yZWNvZ25pemVk
IHBhcmFtZXRlciAidGVzdFByb3BlcnRpZXMiLyk7CiAgICAgICAgICAgICBhc3NlcnQudGhyb3dz
KCgpID0+IHsKICAgICAgICAgICAgICAgICBjb25zdCBjb25maWcgPSBzbWFsbENvbmZpZ3VyYXRp
b24oKTsKICAgICAgICAgICAgICAgICBjb25zdCBmaXJzdEJ1aWxkZXIgPSBPYmplY3Qua2V5cyhj
b25maWcuYnVpbGRlcnMpWzBdOwogICAgICAgICAgICAgICAgIGNvbmZpZy5idWlsZGVyc1tmaXJz
dEJ1aWxkZXJdLnRlc3RQcm9wZXJ0aWVzID0ge307Ci0gICAgICAgICAgICAgICAgQnVpbGRib3RT
eW5jZXIuX2xvYWRDb25maWcoTW9ja1JlbW90ZUFQSSwgY29uZmlnKTsKKyAgICAgICAgICAgICAg
ICBCdWlsZGJvdFN5bmNlci5fbG9hZENvbmZpZyhNb2NrUmVtb3RlQVBJLCBjb25maWcsIGJ1aWxk
ZXJOYW1lVG9JRE1hcCgpKTsKICAgICAgICAgICAgIH0sIC9VbnJlY29nbml6ZWQgcGFyYW1ldGVy
ICJ0ZXN0UHJvcGVydGllcyIvKTsKICAgICAgICAgfSk7CiAKQEAgLTU1OSwxMyArNTcyLDEzIEBA
IGRlc2NyaWJlKCdCdWlsZGJvdFN5bmNlcicsICgpID0+IHsKICAgICAgICAgICAgICAgICBjb25z
dCBjb25maWcgPSBzbWFsbENvbmZpZ3VyYXRpb24oKTsKICAgICAgICAgICAgICAgICBjb25zdCBm
aXJzdFR5cGUgPSBPYmplY3Qua2V5cyhjb25maWcudHlwZXMpWzBdOwogICAgICAgICAgICAgICAg
IGNvbmZpZy50eXBlc1tmaXJzdFR5cGVdLmJ1aWxkUHJvcGVydGllcyA9IHt9OwotICAgICAgICAg
ICAgICAgIEJ1aWxkYm90U3luY2VyLl9sb2FkQ29uZmlnKE1vY2tSZW1vdGVBUEksIGNvbmZpZyk7
CisgICAgICAgICAgICAgICAgQnVpbGRib3RTeW5jZXIuX2xvYWRDb25maWcoTW9ja1JlbW90ZUFQ
SSwgY29uZmlnLCBidWlsZGVyTmFtZVRvSURNYXAoKSk7CiAgICAgICAgICAgICB9LCAvVW5yZWNv
Z25pemVkIHBhcmFtZXRlciAiYnVpbGRQcm9wZXJ0aWVzIi8pOwogICAgICAgICAgICAgYXNzZXJ0
LnRocm93cygoKSA9PiB7CiAgICAgICAgICAgICAgICAgY29uc3QgY29uZmlnID0gc21hbGxDb25m
aWd1cmF0aW9uKCk7CiAgICAgICAgICAgICAgICAgY29uc3QgZmlyc3RCdWlsZGVyID0gT2JqZWN0
LmtleXMoY29uZmlnLmJ1aWxkZXJzKVswXTsKICAgICAgICAgICAgICAgICBjb25maWcuYnVpbGRl
cnNbZmlyc3RCdWlsZGVyXS5idWlsZFByb3BlcnRpZXMgPSB7fTsKLSAgICAgICAgICAgICAgICBC
dWlsZGJvdFN5bmNlci5fbG9hZENvbmZpZyhNb2NrUmVtb3RlQVBJLCBjb25maWcpOworICAgICAg
ICAgICAgICAgIEJ1aWxkYm90U3luY2VyLl9sb2FkQ29uZmlnKE1vY2tSZW1vdGVBUEksIGNvbmZp
ZywgYnVpbGRlck5hbWVUb0lETWFwKCkpOwogICAgICAgICAgICAgfSwgL1VucmVjb2duaXplZCBw
YXJhbWV0ZXIgImJ1aWxkUHJvcGVydGllcyIvKTsKICAgICAgICAgfSk7CiAKQEAgLTU3NCwyNyAr
NTg3LDI3IEBAIGRlc2NyaWJlKCdCdWlsZGJvdFN5bmNlcicsICgpID0+IHsKICAgICAgICAgICAg
IGFzc2VydC50aHJvd3MoKCkgPT4gewogICAgICAgICAgICAgICAgIGNvbnN0IGNvbmZpZyA9IHNt
YWxsQ29uZmlndXJhdGlvbigpOwogICAgICAgICAgICAgICAgIGNvbmZpZy50eXBlc1tmaXJzdFR5
cGVdLnByb3BlcnRpZXMgPSAnaGVsbG8nOwotICAgICAgICAgICAgICAgIEJ1aWxkYm90U3luY2Vy
Ll9sb2FkQ29uZmlnKE1vY2tSZW1vdGVBUEksIGNvbmZpZyk7CisgICAgICAgICAgICAgICAgQnVp
bGRib3RTeW5jZXIuX2xvYWRDb25maWcoTW9ja1JlbW90ZUFQSSwgY29uZmlnLCBidWlsZGVyTmFt
ZVRvSURNYXAoKSk7CiAgICAgICAgICAgICB9LCAvQnVpbGQgcHJvcGVydGllcyBzaG91bGQgYmUg
YSBkaWN0aW9uYXJ5Lyk7CiAgICAgICAgICAgICBhc3NlcnQudGhyb3dzKCgpID0+IHsKICAgICAg
ICAgICAgICAgICBjb25zdCBjb25maWcgPSBzbWFsbENvbmZpZ3VyYXRpb24oKTsKICAgICAgICAg
ICAgICAgICBjb25maWcudHlwZXNbZmlyc3RUeXBlXS5wcm9wZXJ0aWVzID0geydzb21lJzogeydv
dGhlcktleSc6ICdzb21lIHJvb3QnfX07Ci0gICAgICAgICAgICAgICAgQnVpbGRib3RTeW5jZXIu
X2xvYWRDb25maWcoUmVtb3RlQVBJLCBjb25maWcpOworICAgICAgICAgICAgICAgIEJ1aWxkYm90
U3luY2VyLl9sb2FkQ29uZmlnKFJlbW90ZUFQSSwgY29uZmlnLCBidWlsZGVyTmFtZVRvSURNYXAo
KSk7CiAgICAgICAgICAgICB9LCAvQnVpbGQgcHJvcGVydGllcyAic29tZSIgc3BlY2lmaWVzIGEg
bm9uLXN0cmluZyB2YWx1ZSBvZiB0eXBlICJvYmplY3QiLyk7CiAgICAgICAgICAgICBhc3NlcnQu
dGhyb3dzKCgpID0+IHsKICAgICAgICAgICAgICAgICBjb25zdCBjb25maWcgPSBzbWFsbENvbmZp
Z3VyYXRpb24oKTsKICAgICAgICAgICAgICAgICBjb25maWcudHlwZXNbZmlyc3RUeXBlXS5wcm9w
ZXJ0aWVzID0geydzb21lJzogeydvdGhlcktleSc6ICdzb21lIHJvb3QnfX07Ci0gICAgICAgICAg
ICAgICAgQnVpbGRib3RTeW5jZXIuX2xvYWRDb25maWcoUmVtb3RlQVBJLCBjb25maWcpOworICAg
ICAgICAgICAgICAgIEJ1aWxkYm90U3luY2VyLl9sb2FkQ29uZmlnKFJlbW90ZUFQSSwgY29uZmln
LCBidWlsZGVyTmFtZVRvSURNYXAoKSk7CiAgICAgICAgICAgICB9LCAvQnVpbGQgcHJvcGVydGll
cyAic29tZSIgc3BlY2lmaWVzIGEgbm9uLXN0cmluZyB2YWx1ZSBvZiB0eXBlICJvYmplY3QiLyk7
CiAgICAgICAgICAgICBhc3NlcnQudGhyb3dzKCgpID0+IHsKICAgICAgICAgICAgICAgICBjb25z
dCBjb25maWcgPSBzbWFsbENvbmZpZ3VyYXRpb24oKTsKICAgICAgICAgICAgICAgICBjb25maWcu
dHlwZXNbZmlyc3RUeXBlXS5wcm9wZXJ0aWVzID0geydzb21lJzogeydyZXZpc2lvbic6ICdXZWJL
aXQnfX07Ci0gICAgICAgICAgICAgICAgQnVpbGRib3RTeW5jZXIuX2xvYWRDb25maWcoUmVtb3Rl
QVBJLCBjb25maWcpOworICAgICAgICAgICAgICAgIEJ1aWxkYm90U3luY2VyLl9sb2FkQ29uZmln
KFJlbW90ZUFQSSwgY29uZmlnLCBidWlsZGVyTmFtZVRvSURNYXAoKSk7CiAgICAgICAgICAgICB9
LCAvQnVpbGQgcHJvcGVydGllcyAic29tZSIgc3BlY2lmaWVzIGEgbm9uLXN0cmluZyB2YWx1ZSBv
ZiB0eXBlICJvYmplY3QiLyk7CiAgICAgICAgICAgICBhc3NlcnQudGhyb3dzKCgpID0+IHsKICAg
ICAgICAgICAgICAgICBjb25zdCBjb25maWcgPSBzbWFsbENvbmZpZ3VyYXRpb24oKTsKICAgICAg
ICAgICAgICAgICBjb25maWcudHlwZXNbZmlyc3RUeXBlXS5wcm9wZXJ0aWVzID0geydzb21lJzog
MX07Ci0gICAgICAgICAgICAgICAgQnVpbGRib3RTeW5jZXIuX2xvYWRDb25maWcoUmVtb3RlQVBJ
LCBjb25maWcpOworICAgICAgICAgICAgICAgIEJ1aWxkYm90U3luY2VyLl9sb2FkQ29uZmlnKFJl
bW90ZUFQSSwgY29uZmlnLCBidWlsZGVyTmFtZVRvSURNYXAoKSk7CiAgICAgICAgICAgICB9LCAv
IEJ1aWxkIHByb3BlcnRpZXMgInNvbWUiIHNwZWNpZmllcyBhIG5vbi1zdHJpbmcgdmFsdWUgb2Yg
dHlwZSAib2JqZWN0Ii8pOwogICAgICAgICB9KTsKIApAQCAtNjAzLDMyICs2MTYsMzIgQEAgZGVz
Y3JpYmUoJ0J1aWxkYm90U3luY2VyJywgKCkgPT4gewogICAgICAgICAgICAgYXNzZXJ0LnRocm93
cygoKSA9PiB7CiAgICAgICAgICAgICAgICAgY29uc3QgY29uZmlnID0gc21hbGxDb25maWd1cmF0
aW9uKCk7CiAgICAgICAgICAgICAgICAgY29uZmlnLmJ1aWxkZXJzW2ZpcnN0QnVpbGRlcl0ucHJv
cGVydGllcyA9ICdoZWxsbyc7Ci0gICAgICAgICAgICAgICAgQnVpbGRib3RTeW5jZXIuX2xvYWRD
b25maWcoTW9ja1JlbW90ZUFQSSwgY29uZmlnKTsKKyAgICAgICAgICAgICAgICBCdWlsZGJvdFN5
bmNlci5fbG9hZENvbmZpZyhNb2NrUmVtb3RlQVBJLCBjb25maWcsIGJ1aWxkZXJOYW1lVG9JRE1h
cCgpKTsKICAgICAgICAgICAgIH0sIC9CdWlsZCBwcm9wZXJ0aWVzIHNob3VsZCBiZSBhIGRpY3Rp
b25hcnkvKTsKICAgICAgICAgICAgIGFzc2VydC50aHJvd3MoKCkgPT4gewogICAgICAgICAgICAg
ICAgIGNvbnN0IGNvbmZpZyA9IHNtYWxsQ29uZmlndXJhdGlvbigpOwogICAgICAgICAgICAgICAg
IGNvbmZpZy5idWlsZGVyc1tmaXJzdEJ1aWxkZXJdLnByb3BlcnRpZXMgPSB7J3NvbWUnOiB7J290
aGVyS2V5JzogJ3NvbWUgcm9vdCd9fTsKLSAgICAgICAgICAgICAgICBCdWlsZGJvdFN5bmNlci5f
bG9hZENvbmZpZyhSZW1vdGVBUEksIGNvbmZpZyk7CisgICAgICAgICAgICAgICAgQnVpbGRib3RT
eW5jZXIuX2xvYWRDb25maWcoUmVtb3RlQVBJLCBjb25maWcsIGJ1aWxkZXJOYW1lVG9JRE1hcCgp
KTsKICAgICAgICAgICAgIH0sIC9CdWlsZCBwcm9wZXJ0aWVzICJzb21lIiBzcGVjaWZpZXMgYSBu
b24tc3RyaW5nIHZhbHVlIG9mIHR5cGUgIm9iamVjdCIvKTsKICAgICAgICAgICAgIGFzc2VydC50
aHJvd3MoKCkgPT4gewogICAgICAgICAgICAgICAgIGNvbnN0IGNvbmZpZyA9IHNtYWxsQ29uZmln
dXJhdGlvbigpOwogICAgICAgICAgICAgICAgIGNvbmZpZy5idWlsZGVyc1tmaXJzdEJ1aWxkZXJd
LnByb3BlcnRpZXMgPSB7J3NvbWUnOiB7J290aGVyS2V5JzogJ3NvbWUgcm9vdCd9fTsKLSAgICAg
ICAgICAgICAgICBCdWlsZGJvdFN5bmNlci5fbG9hZENvbmZpZyhSZW1vdGVBUEksIGNvbmZpZyk7
CisgICAgICAgICAgICAgICAgQnVpbGRib3RTeW5jZXIuX2xvYWRDb25maWcoUmVtb3RlQVBJLCBj
b25maWcsIGJ1aWxkZXJOYW1lVG9JRE1hcCgpKTsKICAgICAgICAgICAgIH0sIC9CdWlsZCBwcm9w
ZXJ0aWVzICJzb21lIiBzcGVjaWZpZXMgYSBub24tc3RyaW5nIHZhbHVlIG9mIHR5cGUgIm9iamVj
dCIvKTsKICAgICAgICAgICAgIGFzc2VydC50aHJvd3MoKCkgPT4gewogICAgICAgICAgICAgICAg
IGNvbnN0IGNvbmZpZyA9IHNtYWxsQ29uZmlndXJhdGlvbigpOwogICAgICAgICAgICAgICAgIGNv
bmZpZy5idWlsZGVyc1tmaXJzdEJ1aWxkZXJdLnByb3BlcnRpZXMgPSB7J3NvbWUnOiB7J3Jldmlz
aW9uJzogJ1dlYktpdCd9fTsKLSAgICAgICAgICAgICAgICBCdWlsZGJvdFN5bmNlci5fbG9hZENv
bmZpZyhSZW1vdGVBUEksIGNvbmZpZyk7CisgICAgICAgICAgICAgICAgQnVpbGRib3RTeW5jZXIu
X2xvYWRDb25maWcoUmVtb3RlQVBJLCBjb25maWcsIGJ1aWxkZXJOYW1lVG9JRE1hcCgpKTsKICAg
ICAgICAgICAgIH0sIC9CdWlsZCBwcm9wZXJ0aWVzICJzb21lIiBzcGVjaWZpZXMgYSBub24tc3Ry
aW5nIHZhbHVlIG9mIHR5cGUgIm9iamVjdCIvKTsKICAgICAgICAgICAgIGFzc2VydC50aHJvd3Mo
KCkgPT4gewogICAgICAgICAgICAgICAgIGNvbnN0IGNvbmZpZyA9IHNtYWxsQ29uZmlndXJhdGlv
bigpOwogICAgICAgICAgICAgICAgIGNvbmZpZy5idWlsZGVyc1tmaXJzdEJ1aWxkZXJdLnByb3Bl
cnRpZXMgPSB7J3NvbWUnOiAxfTsKLSAgICAgICAgICAgICAgICBCdWlsZGJvdFN5bmNlci5fbG9h
ZENvbmZpZyhSZW1vdGVBUEksIGNvbmZpZyk7CisgICAgICAgICAgICAgICAgQnVpbGRib3RTeW5j
ZXIuX2xvYWRDb25maWcoUmVtb3RlQVBJLCBjb25maWcsIGJ1aWxkZXJOYW1lVG9JRE1hcCgpKTsK
ICAgICAgICAgICAgIH0sIC9CdWlsZCBwcm9wZXJ0aWVzICJzb21lIiBzcGVjaWZpZXMgYSBub24t
c3RyaW5nIHZhbHVlIG9mIHR5cGUgIm9iamVjdCIvKTsKICAgICAgICAgfSk7CiAKICAgICAgICAg
aXQoJ3Nob3VsZCBjcmVhdGUgQnVpbGRib3RTeW5jZXIgb2JqZWN0cyBmb3IgdmFsaWQgY29uZmln
dXJhdGlvbnMnLCAoKSA9PiB7Ci0gICAgICAgICAgICBsZXQgc3luY2VycyA9IEJ1aWxkYm90U3lu
Y2VyLl9sb2FkQ29uZmlnKFJlbW90ZUFQSSwgc2FtcGxlaU9TQ29uZmlnKCkpOworICAgICAgICAg
ICAgbGV0IHN5bmNlcnMgPSBCdWlsZGJvdFN5bmNlci5fbG9hZENvbmZpZyhSZW1vdGVBUEksIHNh
bXBsZWlPU0NvbmZpZygpLCBidWlsZGVyTmFtZVRvSURNYXAoKSk7CiAgICAgICAgICAgICBhc3Nl
cnQuZXF1YWwoc3luY2Vycy5sZW5ndGgsIDMpOwogICAgICAgICAgICAgYXNzZXJ0Lm9rKHN5bmNl
cnNbMF0gaW5zdGFuY2VvZiBCdWlsZGJvdFN5bmNlcik7CiAgICAgICAgICAgICBhc3NlcnQub2so
c3luY2Vyc1sxXSBpbnN0YW5jZW9mIEJ1aWxkYm90U3luY2VyKTsKQEAgLTYzNiwxNCArNjQ5LDE0
IEBAIGRlc2NyaWJlKCdCdWlsZGJvdFN5bmNlcicsICgpID0+IHsKICAgICAgICAgfSk7CiAKICAg
ICAgICAgaXQoJ3Nob3VsZCBwYXJzZSBidWlsZGVyIG5hbWVzIGNvcnJlY3RseScsICgpID0+IHsK
LSAgICAgICAgICAgIGxldCBzeW5jZXJzID0gQnVpbGRib3RTeW5jZXIuX2xvYWRDb25maWcoUmVt
b3RlQVBJLCBzYW1wbGVpT1NDb25maWcoKSk7CisgICAgICAgICAgICBsZXQgc3luY2VycyA9IEJ1
aWxkYm90U3luY2VyLl9sb2FkQ29uZmlnKFJlbW90ZUFQSSwgc2FtcGxlaU9TQ29uZmlnKCksIGJ1
aWxkZXJOYW1lVG9JRE1hcCgpKTsKICAgICAgICAgICAgIGFzc2VydC5lcXVhbChzeW5jZXJzWzBd
LmJ1aWxkZXJOYW1lKCksICdBQlRlc3QtaVBob25lLVJ1bkJlbmNobWFyay1UZXN0cycpOwogICAg
ICAgICAgICAgYXNzZXJ0LmVxdWFsKHN5bmNlcnNbMV0uYnVpbGRlck5hbWUoKSwgJ0FCVGVzdC1p
UGFkLVJ1bkJlbmNobWFyay1UZXN0cycpOwogICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHN5bmNl
cnNbMl0uYnVpbGRlck5hbWUoKSwgJ0FCVGVzdC1pT1MtQnVpbGRlcicpOwogICAgICAgICB9KTsK
IAogICAgICAgICBpdCgnc2hvdWxkIHBhcnNlIHRlc3QgY29uZmlndXJhdGlvbnMgd2l0aCBidWls
ZCBjb25maWd1cmF0aW9ucyBjb3JyZWN0bHknLCAoKSA9PiB7Ci0gICAgICAgICAgICBsZXQgc3lu
Y2VycyA9IEJ1aWxkYm90U3luY2VyLl9sb2FkQ29uZmlnKFJlbW90ZUFQSSwgc2FtcGxlaU9TQ29u
ZmlnKCkpOworICAgICAgICAgICAgbGV0IHN5bmNlcnMgPSBCdWlsZGJvdFN5bmNlci5fbG9hZENv
bmZpZyhSZW1vdGVBUEksIHNhbXBsZWlPU0NvbmZpZygpLCBidWlsZGVyTmFtZVRvSURNYXAoKSk7
CiAKICAgICAgICAgICAgIGxldCBjb25maWd1cmF0aW9ucyA9IHN5bmNlcnNbMF0udGVzdENvbmZp
Z3VyYXRpb25zKCk7CiAgICAgICAgICAgICBhc3NlcnQoc3luY2Vyc1swXS5pc1Rlc3RlcigpKTsK
QEAgLTY3OSwxMiArNjkyLDEyIEBAIGRlc2NyaWJlKCdCdWlsZGJvdFN5bmNlcicsICgpID0+IHsK
ICAgICAgICAgICAgIGFzc2VydC50aHJvd3MoKCkgPT4gewogICAgICAgICAgICAgICAgIGNvbnN0
IGNvbmZpZyA9IHNhbXBsZWlPU0NvbmZpZygpOwogICAgICAgICAgICAgICAgIGNvbmZpZy5idWls
ZENvbmZpZ3VyYXRpb25zWzBdLmJ1aWxkZXJzID0gY29uZmlnLnRlc3RDb25maWd1cmF0aW9uc1sw
XS5idWlsZGVyczsKLSAgICAgICAgICAgICAgICBCdWlsZGJvdFN5bmNlci5fbG9hZENvbmZpZyhN
b2NrUmVtb3RlQVBJLCBjb25maWcpOworICAgICAgICAgICAgICAgIEJ1aWxkYm90U3luY2VyLl9s
b2FkQ29uZmlnKE1vY2tSZW1vdGVBUEksIGNvbmZpZywgYnVpbGRlck5hbWVUb0lETWFwKCkpOwog
ICAgICAgICAgICAgfSk7CiAgICAgICAgIH0pOwogCiAgICAgICAgIGl0KCdzaG91bGQgcGFyc2Ug
dGVzdCBjb25maWd1cmF0aW9ucyB3aXRoIHR5cGVzIGFuZCBwbGF0Zm9ybXMgZXhwYW5zaW9ucyBj
b3JyZWN0bHknLCAoKSA9PiB7Ci0gICAgICAgICAgICBjb25zdCBzeW5jZXJzID0gQnVpbGRib3RT
eW5jZXIuX2xvYWRDb25maWcoUmVtb3RlQVBJLCBzYW1wbGVpT1NDb25maWdXaXRoRXhwYW5zaW9u
cygpKTsKKyAgICAgICAgICAgIGNvbnN0IHN5bmNlcnMgPSBCdWlsZGJvdFN5bmNlci5fbG9hZENv
bmZpZyhSZW1vdGVBUEksIHNhbXBsZWlPU0NvbmZpZ1dpdGhFeHBhbnNpb25zKCksIGJ1aWxkZXJO
YW1lVG9JRE1hcCgpKTsKIAogICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHN5bmNlcnMubGVuZ3Ro
LCAzKTsKIApAQCAtNzI1LDEyICs3MzgsMTIgQEAgZGVzY3JpYmUoJ0J1aWxkYm90U3luY2VyJywg
KCkgPT4gewogICAgICAgICAgICAgYXNzZXJ0LnRocm93cygoKSA9PiB7CiAgICAgICAgICAgICAg
ICAgY29uc3QgY29uZmlnID0gc21hbGxDb25maWd1cmF0aW9uKCk7CiAgICAgICAgICAgICAgICAg
Y29uZmlnLnJlcG9zaXRvcnlHcm91cHMgPSAxOwotICAgICAgICAgICAgICAgIEJ1aWxkYm90U3lu
Y2VyLl9sb2FkQ29uZmlnKE1vY2tSZW1vdGVBUEksIGNvbmZpZyk7CisgICAgICAgICAgICAgICAg
QnVpbGRib3RTeW5jZXIuX2xvYWRDb25maWcoTW9ja1JlbW90ZUFQSSwgY29uZmlnLCBidWlsZGVy
TmFtZVRvSURNYXAoKSk7CiAgICAgICAgICAgICB9LCAvcmVwb3NpdG9yeUdyb3VwcyBtdXN0IHNw
ZWNpZnkgYSBkaWN0aW9uYXJ5IGZyb20gdGhlIG5hbWUgdG8gaXRzIGRlZmluaXRpb24vKTsKICAg
ICAgICAgICAgIGFzc2VydC50aHJvd3MoKCkgPT4gewogICAgICAgICAgICAgICAgIGNvbnN0IGNv
bmZpZyA9IHNtYWxsQ29uZmlndXJhdGlvbigpOwogICAgICAgICAgICAgICAgIGNvbmZpZy5yZXBv
c2l0b3J5R3JvdXBzID0gJ2hlbGxvJzsKLSAgICAgICAgICAgICAgICBCdWlsZGJvdFN5bmNlci5f
bG9hZENvbmZpZyhNb2NrUmVtb3RlQVBJLCBjb25maWcpOworICAgICAgICAgICAgICAgIEJ1aWxk
Ym90U3luY2VyLl9sb2FkQ29uZmlnKE1vY2tSZW1vdGVBUEksIGNvbmZpZywgYnVpbGRlck5hbWVU
b0lETWFwKCkpOwogICAgICAgICAgICAgfSwgL3JlcG9zaXRvcnlHcm91cHMgbXVzdCBzcGVjaWZ5
IGEgZGljdGlvbmFyeSBmcm9tIHRoZSBuYW1lIHRvIGl0cyBkZWZpbml0aW9uLyk7CiAgICAgICAg
IH0pOwogCkBAIC03MzgsMTIgKzc1MSwxMiBAQCBkZXNjcmliZSgnQnVpbGRib3RTeW5jZXInLCAo
KSA9PiB7CiAgICAgICAgICAgICBhc3NlcnQudGhyb3dzKCgpID0+IHsKICAgICAgICAgICAgICAg
ICBjb25zdCBjb25maWcgPSBzbWFsbENvbmZpZ3VyYXRpb24oKTsKICAgICAgICAgICAgICAgICBj
b25maWcucmVwb3NpdG9yeUdyb3VwcyA9IHsnc29tZS1ncm91cCc6IHt0ZXN0UHJvcGVydGllczog
e319fTsKLSAgICAgICAgICAgICAgICBCdWlsZGJvdFN5bmNlci5fbG9hZENvbmZpZyhNb2NrUmVt
b3RlQVBJLCBjb25maWcpOworICAgICAgICAgICAgICAgIEJ1aWxkYm90U3luY2VyLl9sb2FkQ29u
ZmlnKE1vY2tSZW1vdGVBUEksIGNvbmZpZywgYnVpbGRlck5hbWVUb0lETWFwKCkpOwogICAgICAg
ICAgICAgfSwgL1JlcG9zaXRvcnkgZ3JvdXAgInNvbWUtZ3JvdXAiIGRvZXMgbm90IHNwZWNpZnkg
YSBkaWN0aW9uYXJ5IG9mIHJlcG9zaXRvcmllcy8pOwogICAgICAgICAgICAgYXNzZXJ0LnRocm93
cygoKSA9PiB7CiAgICAgICAgICAgICAgICAgY29uc3QgY29uZmlnID0gc21hbGxDb25maWd1cmF0
aW9uKCk7CiAgICAgICAgICAgICAgICAgY29uZmlnLnJlcG9zaXRvcnlHcm91cHMgPSB7J3NvbWUt
Z3JvdXAnOiB7cmVwb3NpdG9yaWVzOiAxfSwgdGVzdFByb3BlcnRpZXM6IHt9fTsKLSAgICAgICAg
ICAgICAgICBCdWlsZGJvdFN5bmNlci5fbG9hZENvbmZpZyhNb2NrUmVtb3RlQVBJLCBjb25maWcp
OworICAgICAgICAgICAgICAgIEJ1aWxkYm90U3luY2VyLl9sb2FkQ29uZmlnKE1vY2tSZW1vdGVB
UEksIGNvbmZpZywgYnVpbGRlck5hbWVUb0lETWFwKCkpOwogICAgICAgICAgICAgfSwgL1JlcG9z
aXRvcnkgZ3JvdXAgInNvbWUtZ3JvdXAiIGRvZXMgbm90IHNwZWNpZnkgYSBkaWN0aW9uYXJ5IG9m
IHJlcG9zaXRvcmllcy8pOwogICAgICAgICB9KTsKIApAQCAtNzUxLDcgKzc2NCw3IEBAIGRlc2Ny
aWJlKCdCdWlsZGJvdFN5bmNlcicsICgpID0+IHsKICAgICAgICAgICAgIGFzc2VydC50aHJvd3Mo
KCkgPT4gewogICAgICAgICAgICAgICAgIGNvbnN0IGNvbmZpZyA9IHNtYWxsQ29uZmlndXJhdGlv
bigpOwogICAgICAgICAgICAgICAgIGNvbmZpZy5yZXBvc2l0b3J5R3JvdXBzID0geydzb21lLWdy
b3VwJzoge3JlcG9zaXRvcmllczoge30sIHRlc3RQcm9wZXJ0aWVzOiB7fX19OwotICAgICAgICAg
ICAgICAgIEJ1aWxkYm90U3luY2VyLl9sb2FkQ29uZmlnKE1vY2tSZW1vdGVBUEksIGNvbmZpZyk7
CisgICAgICAgICAgICAgICAgQnVpbGRib3RTeW5jZXIuX2xvYWRDb25maWcoTW9ja1JlbW90ZUFQ
SSwgY29uZmlnLCBidWlsZGVyTmFtZVRvSURNYXAoKSk7CiAgICAgICAgICAgICB9LCAvUmVwb3Np
dG9yeSBncm91cCAic29tZS1ncm91cCIgZG9lcyBub3Qgc3BlY2lmeSBhbnkgcmVwb3NpdG9yeS8p
OwogICAgICAgICB9KTsKIApAQCAtNzU5LDcgKzc3Miw3IEBAIGRlc2NyaWJlKCdCdWlsZGJvdFN5
bmNlcicsICgpID0+IHsKICAgICAgICAgICAgIGFzc2VydC50aHJvd3MoKCkgPT4gewogICAgICAg
ICAgICAgICAgIGNvbnN0IGNvbmZpZyA9IHNtYWxsQ29uZmlndXJhdGlvbigpOwogICAgICAgICAg
ICAgICAgIGNvbmZpZy5yZXBvc2l0b3J5R3JvdXBzID0geydzb21lLWdyb3VwJzoge3JlcG9zaXRv
cmllczogeydJbnZhbGlkUmVwb3NpdG9yeU5hbWUnOiB7fX19fTsKLSAgICAgICAgICAgICAgICBC
dWlsZGJvdFN5bmNlci5fbG9hZENvbmZpZyhNb2NrUmVtb3RlQVBJLCBjb25maWcpOworICAgICAg
ICAgICAgICAgIEJ1aWxkYm90U3luY2VyLl9sb2FkQ29uZmlnKE1vY2tSZW1vdGVBUEksIGNvbmZp
ZywgYnVpbGRlck5hbWVUb0lETWFwKCkpOwogICAgICAgICAgICAgfSwgLyJJbnZhbGlkUmVwb3Np
dG9yeU5hbWUiIGlzIG5vdCBhIHZhbGlkIHJlcG9zaXRvcnkgbmFtZS8pOwogICAgICAgICB9KTsK
IApAQCAtNzY3LDcgKzc4MCw3IEBAIGRlc2NyaWJlKCdCdWlsZGJvdFN5bmNlcicsICgpID0+IHsK
ICAgICAgICAgICAgIGFzc2VydC50aHJvd3MoKCkgPT4gewogICAgICAgICAgICAgICAgIGNvbnN0
IGNvbmZpZyA9IHNtYWxsQ29uZmlndXJhdGlvbigpOwogICAgICAgICAgICAgICAgIGNvbmZpZy5y
ZXBvc2l0b3J5R3JvdXBzID0geydzb21lLWdyb3VwJzoge3JlcG9zaXRvcmllczogeydXZWJLaXQn
OiAxfX19OwotICAgICAgICAgICAgICAgIEJ1aWxkYm90U3luY2VyLl9sb2FkQ29uZmlnKE1vY2tS
ZW1vdGVBUEksIGNvbmZpZyk7CisgICAgICAgICAgICAgICAgQnVpbGRib3RTeW5jZXIuX2xvYWRD
b25maWcoTW9ja1JlbW90ZUFQSSwgY29uZmlnLCBidWlsZGVyTmFtZVRvSURNYXAoKSk7CiAgICAg
ICAgICAgICB9LCAvIldlYktpdCIgc3BlY2lmaWVzIGEgbm9uLWRpY3Rpb25hcnkgdmFsdWUvKTsK
ICAgICAgICAgfSk7CiAKQEAgLTc3NSwxMiArNzg4LDEyIEBAIGRlc2NyaWJlKCdCdWlsZGJvdFN5
bmNlcicsICgpID0+IHsKICAgICAgICAgICAgIGFzc2VydC50aHJvd3MoKCkgPT4gewogICAgICAg
ICAgICAgICAgIGNvbnN0IGNvbmZpZyA9IHNtYWxsQ29uZmlndXJhdGlvbigpOwogICAgICAgICAg
ICAgICAgIGNvbmZpZy5yZXBvc2l0b3J5R3JvdXBzID0geydzb21lLWdyb3VwJzoge3JlcG9zaXRv
cmllczogeydXZWJLaXQnOiB7fX0sIGRlc2NyaXB0aW9uOiAxfX07Ci0gICAgICAgICAgICAgICAg
QnVpbGRib3RTeW5jZXIuX2xvYWRDb25maWcoTW9ja1JlbW90ZUFQSSwgY29uZmlnKTsKKyAgICAg
ICAgICAgICAgICBCdWlsZGJvdFN5bmNlci5fbG9hZENvbmZpZyhNb2NrUmVtb3RlQVBJLCBjb25m
aWcsIGJ1aWxkZXJOYW1lVG9JRE1hcCgpKTsKICAgICAgICAgICAgIH0sIC9SZXBvc2l0b3J5IGdy
b3VwICJzb21lLWdyb3VwIiBoYXZlIGFuIGludmFsaWQgZGVzY3JpcHRpb24vKTsKICAgICAgICAg
ICAgIGFzc2VydC50aHJvd3MoKCkgPT4gewogICAgICAgICAgICAgICAgIGNvbnN0IGNvbmZpZyA9
IHNtYWxsQ29uZmlndXJhdGlvbigpOwogICAgICAgICAgICAgICAgIGNvbmZpZy5yZXBvc2l0b3J5
R3JvdXBzID0geydzb21lLWdyb3VwJzoge3JlcG9zaXRvcmllczogeydXZWJLaXQnOiB7fX0sIGRl
c2NyaXB0aW9uOiBbMSwgMl19fTsKLSAgICAgICAgICAgICAgICBCdWlsZGJvdFN5bmNlci5fbG9h
ZENvbmZpZyhNb2NrUmVtb3RlQVBJLCBjb25maWcpOworICAgICAgICAgICAgICAgIEJ1aWxkYm90
U3luY2VyLl9sb2FkQ29uZmlnKE1vY2tSZW1vdGVBUEksIGNvbmZpZywgYnVpbGRlck5hbWVUb0lE
TWFwKCkpOwogICAgICAgICAgICAgfSwgL1JlcG9zaXRvcnkgZ3JvdXAgInNvbWUtZ3JvdXAiIGhh
dmUgYW4gaW52YWxpZCBkZXNjcmlwdGlvbi8pOwogICAgICAgICB9KTsKIApAQCAtNzg4LDEyICs4
MDEsMTIgQEAgZGVzY3JpYmUoJ0J1aWxkYm90U3luY2VyJywgKCkgPT4gewogICAgICAgICAgICAg
YXNzZXJ0LnRocm93cygoKSA9PiB7CiAgICAgICAgICAgICAgICAgY29uc3QgY29uZmlnID0gc21h
bGxDb25maWd1cmF0aW9uKCk7CiAgICAgICAgICAgICAgICAgY29uZmlnLnJlcG9zaXRvcnlHcm91
cHMgPSB7J3NvbWUtZ3JvdXAnOiB7cmVwb3NpdG9yaWVzOiB7J1dlYktpdCc6IHt9fSwgdGVzdFBy
b3BlcnRpZXM6IDF9fTsKLSAgICAgICAgICAgICAgICBCdWlsZGJvdFN5bmNlci5fbG9hZENvbmZp
ZyhNb2NrUmVtb3RlQVBJLCBjb25maWcpOworICAgICAgICAgICAgICAgIEJ1aWxkYm90U3luY2Vy
Ll9sb2FkQ29uZmlnKE1vY2tSZW1vdGVBUEksIGNvbmZpZywgYnVpbGRlck5hbWVUb0lETWFwKCkp
OwogICAgICAgICAgICAgfSwgL1JlcG9zaXRvcnkgZ3JvdXAgInNvbWUtZ3JvdXAiIHNwZWNpZmll
cyB0aGUgdGVzdCBjb25maWd1cmF0aW9ucyB3aXRoIGFuIGludmFsaWQgdHlwZS8pOwogICAgICAg
ICAgICAgYXNzZXJ0LnRocm93cygoKSA9PiB7CiAgICAgICAgICAgICAgICAgY29uc3QgY29uZmln
ID0gc21hbGxDb25maWd1cmF0aW9uKCk7CiAgICAgICAgICAgICAgICAgY29uZmlnLnJlcG9zaXRv
cnlHcm91cHMgPSB7J3NvbWUtZ3JvdXAnOiB7cmVwb3NpdG9yaWVzOiB7J1dlYktpdCc6IHt9fSwg
dGVzdFByb3BlcnRpZXM6ICdoZWxsbyd9fTsKLSAgICAgICAgICAgICAgICBCdWlsZGJvdFN5bmNl
ci5fbG9hZENvbmZpZyhNb2NrUmVtb3RlQVBJLCBjb25maWcpOworICAgICAgICAgICAgICAgIEJ1
aWxkYm90U3luY2VyLl9sb2FkQ29uZmlnKE1vY2tSZW1vdGVBUEksIGNvbmZpZywgYnVpbGRlck5h
bWVUb0lETWFwKCkpOwogICAgICAgICAgICAgfSwgL1JlcG9zaXRvcnkgZ3JvdXAgInNvbWUtZ3Jv
dXAiIHNwZWNpZmllcyB0aGUgdGVzdCBjb25maWd1cmF0aW9ucyB3aXRoIGFuIGludmFsaWQgdHlw
ZS8pOwogICAgICAgICB9KTsKIApAQCAtODAxLDcgKzgxNCw3IEBAIGRlc2NyaWJlKCdCdWlsZGJv
dFN5bmNlcicsICgpID0+IHsKICAgICAgICAgICAgIGFzc2VydC50aHJvd3MoKCkgPT4gewogICAg
ICAgICAgICAgICAgIGNvbnN0IGNvbmZpZyA9IHNtYWxsQ29uZmlndXJhdGlvbigpOwogICAgICAg
ICAgICAgICAgIGNvbmZpZy5yZXBvc2l0b3J5R3JvdXBzID0geydzb21lLWdyb3VwJzoge3JlcG9z
aXRvcmllczogeydXZWJLaXQnOiB7fX0sIHRlc3RQcm9wZXJ0aWVzOiB7J3drJzoge3JldmlzaW9u
OiAnSW52YWxpZFJlcG9zaXRvcnknfX19fTsKLSAgICAgICAgICAgICAgICBCdWlsZGJvdFN5bmNl
ci5fbG9hZENvbmZpZyhNb2NrUmVtb3RlQVBJLCBjb25maWcpOworICAgICAgICAgICAgICAgIEJ1
aWxkYm90U3luY2VyLl9sb2FkQ29uZmlnKE1vY2tSZW1vdGVBUEksIGNvbmZpZywgYnVpbGRlck5h
bWVUb0lETWFwKCkpOwogICAgICAgICAgICAgfSwgL1JlcG9zaXRvcnkgZ3JvdXAgInNvbWUtZ3Jv
dXAiIGFuIGludmFsaWQgcmVwb3NpdG9yeSAiSW52YWxpZFJlcG9zaXRvcnkiLyk7CiAgICAgICAg
IH0pOwogCkBAIC04MDksNyArODIyLDcgQEAgZGVzY3JpYmUoJ0J1aWxkYm90U3luY2VyJywgKCkg
PT4gewogICAgICAgICAgICAgYXNzZXJ0LnRocm93cygoKSA9PiB7CiAgICAgICAgICAgICAgICAg
Y29uc3QgY29uZmlnID0gc21hbGxDb25maWd1cmF0aW9uKCk7CiAgICAgICAgICAgICAgICAgY29u
ZmlnLnJlcG9zaXRvcnlHcm91cHMgPSB7J3NvbWUtZ3JvdXAnOiB7cmVwb3NpdG9yaWVzOiB7J1dl
YktpdCc6IHt9fSwgdGVzdFByb3BlcnRpZXM6IHsnb3MnOiB7cmV2aXNpb246ICdpT1MnfX19fTsK
LSAgICAgICAgICAgICAgICBCdWlsZGJvdFN5bmNlci5fbG9hZENvbmZpZyhNb2NrUmVtb3RlQVBJ
LCBjb25maWcpOworICAgICAgICAgICAgICAgIEJ1aWxkYm90U3luY2VyLl9sb2FkQ29uZmlnKE1v
Y2tSZW1vdGVBUEksIGNvbmZpZywgYnVpbGRlck5hbWVUb0lETWFwKCkpOwogICAgICAgICAgICAg
fSwgL1JlcG9zaXRvcnkgZ3JvdXAgInNvbWUtZ3JvdXAiIGFuIGludmFsaWQgcmVwb3NpdG9yeSAi
aU9TIi8pOwogICAgICAgICAgICAgYXNzZXJ0LnRocm93cygoKSA9PiB7CiAgICAgICAgICAgICAg
ICAgY29uc3QgY29uZmlnID0gc21hbGxDb25maWd1cmF0aW9uKCk7CkBAIC04MTgsNyArODMxLDcg
QEAgZGVzY3JpYmUoJ0J1aWxkYm90U3luY2VyJywgKCkgPT4gewogICAgICAgICAgICAgICAgICAg
ICB0ZXN0UHJvcGVydGllczogeyd3ayc6IHtyZXZpc2lvbjogJ1dlYktpdCd9LCAnaW5zdGFsbC1y
b290cyc6IHsncm9vdHMnOiB7fX19LAogICAgICAgICAgICAgICAgICAgICBidWlsZFByb3BlcnRp
ZXM6IHsnb3MnOiB7cmV2aXNpb246ICdpT1MnfX0sCiAgICAgICAgICAgICAgICAgICAgIGFjY2Vw
dHNSb290czogdHJ1ZX19OwotICAgICAgICAgICAgICAgIEJ1aWxkYm90U3luY2VyLl9sb2FkQ29u
ZmlnKE1vY2tSZW1vdGVBUEksIGNvbmZpZyk7CisgICAgICAgICAgICAgICAgQnVpbGRib3RTeW5j
ZXIuX2xvYWRDb25maWcoTW9ja1JlbW90ZUFQSSwgY29uZmlnLCBidWlsZGVyTmFtZVRvSURNYXAo
KSk7CiAgICAgICAgICAgICB9LCAvUmVwb3NpdG9yeSBncm91cCAic29tZS1ncm91cCIgYW4gaW52
YWxpZCByZXBvc2l0b3J5ICJpT1MiLyk7CiAgICAgICAgIH0pOwogCkBAIC04MzAsNyArODQzLDcg
QEAgZGVzY3JpYmUoJ0J1aWxkYm90U3luY2VyJywgKCkgPT4gewogICAgICAgICAgICAgICAgICAg
ICB0ZXN0UHJvcGVydGllczogeyd3ayc6IHtyZXZpc2lvbjogJ1dlYktpdCd9LCAnaW9zJzoge3Jl
dmlzaW9uOiAnaU9TJ30sICdpbnN0YWxsLXJvb3RzJzogeydyb290cyc6IHt9fX0sCiAgICAgICAg
ICAgICAgICAgICAgIGJ1aWxkUHJvcGVydGllczogeyd3ayc6IHtyZXZpc2lvbjogJ1dlYktpdCd9
LCAnaW9zJzoge3JldmlzaW9uOiAnaU9TJ30sICd3ay1wYXRjaCc6IHtwYXRjaDogJ2lPUyd9fSwK
ICAgICAgICAgICAgICAgICAgICAgYWNjZXB0c1Jvb3RzOiB0cnVlfX07Ci0gICAgICAgICAgICAg
ICAgQnVpbGRib3RTeW5jZXIuX2xvYWRDb25maWcoTW9ja1JlbW90ZUFQSSwgY29uZmlnKTsKKyAg
ICAgICAgICAgICAgICBCdWlsZGJvdFN5bmNlci5fbG9hZENvbmZpZyhNb2NrUmVtb3RlQVBJLCBj
b25maWcsIGJ1aWxkZXJOYW1lVG9JRE1hcCgpKTsKICAgICAgICAgICAgIH0sIC9SZXBvc2l0b3J5
IGdyb3VwICJzb21lLWdyb3VwIiBzcGVjaWZpZXMgYSBwYXRjaCBmb3IgImlPUyIgYnV0IGl0IGRv
ZXMgbm90IGFjY2VwdCBhIHBhdGNoLyk7CiAgICAgICAgIH0pOwogCkBAIC04NDIsNyArODU1LDcg
QEAgZGVzY3JpYmUoJ0J1aWxkYm90U3luY2VyJywgKCkgPT4gewogICAgICAgICAgICAgICAgICAg
ICB0ZXN0UHJvcGVydGllczogeyd3ayc6IHtyZXZpc2lvbjogJ1dlYktpdCd9LCAnaW5zdGFsbC1y
b290cyc6IHsncm9vdHMnOiB7fX19LAogICAgICAgICAgICAgICAgICAgICBidWlsZFByb3BlcnRp
ZXM6IHsnd2stcGF0Y2gnOiB7cGF0Y2g6ICdXZWJLaXQnfX0sCiAgICAgICAgICAgICAgICAgICAg
IGFjY2VwdHNSb290czogdHJ1ZX19OwotICAgICAgICAgICAgICAgIEJ1aWxkYm90U3luY2VyLl9s
b2FkQ29uZmlnKE1vY2tSZW1vdGVBUEksIGNvbmZpZyk7CisgICAgICAgICAgICAgICAgQnVpbGRi
b3RTeW5jZXIuX2xvYWRDb25maWcoTW9ja1JlbW90ZUFQSSwgY29uZmlnLCBidWlsZGVyTmFtZVRv
SURNYXAoKSk7CiAgICAgICAgICAgICB9LCAvUmVwb3NpdG9yeSBncm91cCAic29tZS1ncm91cCIg
c3BlY2lmaWVzIGEgcGF0Y2ggZm9yICJXZWJLaXQiIGJ1dCBkb2VzIG5vdCBzcGVjaWZ5IGEgcmV2
aXNpb24vKTsKICAgICAgICAgfSk7CiAKQEAgLTg1MCw3ICs4NjMsNyBAQCBkZXNjcmliZSgnQnVp
bGRib3RTeW5jZXInLCAoKSA9PiB7CiAgICAgICAgICAgICBhc3NlcnQudGhyb3dzKCgpID0+IHsK
ICAgICAgICAgICAgICAgICBjb25zdCBjb25maWcgPSBzbWFsbENvbmZpZ3VyYXRpb24oKTsKICAg
ICAgICAgICAgICAgICBjb25maWcucmVwb3NpdG9yeUdyb3VwcyA9IHsnc29tZS1ncm91cCc6IHsn
cmVwb3NpdG9yaWVzJzogeydXZWJLaXQnOiB7fX0sIHRlc3RQcm9wZXJ0aWVzOiB7fX19OwotICAg
ICAgICAgICAgICAgIEJ1aWxkYm90U3luY2VyLl9sb2FkQ29uZmlnKE1vY2tSZW1vdGVBUEksIGNv
bmZpZyk7CisgICAgICAgICAgICAgICAgQnVpbGRib3RTeW5jZXIuX2xvYWRDb25maWcoTW9ja1Jl
bW90ZUFQSSwgY29uZmlnLCBidWlsZGVyTmFtZVRvSURNYXAoKSk7CiAgICAgICAgICAgICB9LCAv
UmVwb3NpdG9yeSBncm91cCAic29tZS1ncm91cCIgZG9lcyBub3QgdXNlIHNvbWUgb2YgdGhlIHJl
cG9zaXRvcmllcyBsaXN0ZWQgaW4gdGVzdGluZy8pOwogICAgICAgICAgICAgYXNzZXJ0LnRocm93
cygoKSA9PiB7CiAgICAgICAgICAgICAgICAgY29uc3QgY29uZmlnID0gc21hbGxDb25maWd1cmF0
aW9uKCk7CkBAIC04NTksNyArODcyLDcgQEAgZGVzY3JpYmUoJ0J1aWxkYm90U3luY2VyJywgKCkg
PT4gewogICAgICAgICAgICAgICAgICAgICB0ZXN0UHJvcGVydGllczogeyd3ayc6IHtyZXZpc2lv
bjogJ1dlYktpdCd9LCAnaW5zdGFsbC1yb290cyc6IHsncm9vdHMnOiB7fX19LAogICAgICAgICAg
ICAgICAgICAgICBidWlsZFByb3BlcnRpZXM6IHt9LAogICAgICAgICAgICAgICAgICAgICBhY2Nl
cHRzUm9vdHM6IHRydWV9fTsKLSAgICAgICAgICAgICAgICBCdWlsZGJvdFN5bmNlci5fbG9hZENv
bmZpZyhNb2NrUmVtb3RlQVBJLCBjb25maWcpOworICAgICAgICAgICAgICAgIEJ1aWxkYm90U3lu
Y2VyLl9sb2FkQ29uZmlnKE1vY2tSZW1vdGVBUEksIGNvbmZpZywgYnVpbGRlck5hbWVUb0lETWFw
KCkpOwogICAgICAgICAgICAgfSwgL1JlcG9zaXRvcnkgZ3JvdXAgInNvbWUtZ3JvdXAiIGRvZXMg
bm90IHVzZSBzb21lIG9mIHRoZSByZXBvc2l0b3JpZXMgbGlzdGVkIGluIGJ1aWxkaW5nIGEgcGF0
Y2gvKTsKICAgICAgICAgfSk7CiAKQEAgLTg2NywxMiArODgwLDEyIEBAIGRlc2NyaWJlKCdCdWls
ZGJvdFN5bmNlcicsICgpID0+IHsKICAgICAgICAgICAgIGFzc2VydC50aHJvd3MoKCkgPT4gewog
ICAgICAgICAgICAgICAgIGNvbnN0IGNvbmZpZyA9IHNtYWxsQ29uZmlndXJhdGlvbigpOwogICAg
ICAgICAgICAgICAgIGNvbmZpZy5yZXBvc2l0b3J5R3JvdXBzID0geydzb21lLWdyb3VwJzogeydy
ZXBvc2l0b3JpZXMnOiB7J1dlYktpdCc6IHt9fSwgJ3Rlc3RQcm9wZXJ0aWVzJzogeyd3ZWJraXQn
OiB7J3JldmlzaW9uJzogJ1dlYktpdCd9fSwgYWNjZXB0c1Jvb3RzOiAxfX07Ci0gICAgICAgICAg
ICAgICAgQnVpbGRib3RTeW5jZXIuX2xvYWRDb25maWcoTW9ja1JlbW90ZUFQSSwgY29uZmlnKTsK
KyAgICAgICAgICAgICAgICBCdWlsZGJvdFN5bmNlci5fbG9hZENvbmZpZyhNb2NrUmVtb3RlQVBJ
LCBjb25maWcsIGJ1aWxkZXJOYW1lVG9JRE1hcCgpKTsKICAgICAgICAgICAgIH0sIC9SZXBvc2l0
b3J5IGdyb3VwICJzb21lLWdyb3VwIiBjb250YWlucyBpbnZhbGlkIGFjY2VwdHNSb290cyB2YWx1
ZTovKTsKICAgICAgICAgICAgIGFzc2VydC50aHJvd3MoKCkgPT4gewogICAgICAgICAgICAgICAg
IGNvbnN0IGNvbmZpZyA9IHNtYWxsQ29uZmlndXJhdGlvbigpOwogICAgICAgICAgICAgICAgIGNv
bmZpZy5yZXBvc2l0b3J5R3JvdXBzID0geydzb21lLWdyb3VwJzogeydyZXBvc2l0b3JpZXMnOiB7
J1dlYktpdCc6IHt9fSwgJ3Rlc3RQcm9wZXJ0aWVzJzogeyd3ZWJraXQnOiB7J3JldmlzaW9uJzog
J1dlYktpdCd9fSwgYWNjZXB0c1Jvb3RzOiBbXX19OwotICAgICAgICAgICAgICAgIEJ1aWxkYm90
U3luY2VyLl9sb2FkQ29uZmlnKE1vY2tSZW1vdGVBUEksIGNvbmZpZyk7CisgICAgICAgICAgICAg
ICAgQnVpbGRib3RTeW5jZXIuX2xvYWRDb25maWcoTW9ja1JlbW90ZUFQSSwgY29uZmlnLCBidWls
ZGVyTmFtZVRvSURNYXAoKSk7CiAgICAgICAgICAgICB9LCAvUmVwb3NpdG9yeSBncm91cCAic29t
ZS1ncm91cCIgY29udGFpbnMgaW52YWxpZCBhY2NlcHRzUm9vdHMgdmFsdWU6Lyk7CiAgICAgICAg
IH0pOwogCkBAIC04ODAsMTIgKzg5MywxMiBAQCBkZXNjcmliZSgnQnVpbGRib3RTeW5jZXInLCAo
KSA9PiB7CiAgICAgICAgICAgICBhc3NlcnQudGhyb3dzKCgpID0+IHsKICAgICAgICAgICAgICAg
ICBjb25zdCBjb25maWcgPSBzbWFsbENvbmZpZ3VyYXRpb24oKTsKICAgICAgICAgICAgICAgICBj
b25maWcucmVwb3NpdG9yeUdyb3VwcyA9IHsnc29tZS1ncm91cCc6IHsncmVwb3NpdG9yaWVzJzog
eydXZWJLaXQnOiB7YWNjZXB0c1BhdGNoOiAxfX0sICd0ZXN0UHJvcGVydGllcyc6IHsnd2Via2l0
JzogeydyZXZpc2lvbic6ICdXZWJLaXQnfX19fTsKLSAgICAgICAgICAgICAgICBCdWlsZGJvdFN5
bmNlci5fbG9hZENvbmZpZyhNb2NrUmVtb3RlQVBJLCBjb25maWcpOworICAgICAgICAgICAgICAg
IEJ1aWxkYm90U3luY2VyLl9sb2FkQ29uZmlnKE1vY2tSZW1vdGVBUEksIGNvbmZpZywgYnVpbGRl
ck5hbWVUb0lETWFwKCkpOwogICAgICAgICAgICAgfSwgLyJXZWJLaXQiIGNvbnRhaW5zIGludmFs
aWQgYWNjZXB0c1BhdGNoIHZhbHVlOi8pOwogICAgICAgICAgICAgYXNzZXJ0LnRocm93cygoKSA9
PiB7CiAgICAgICAgICAgICAgICAgY29uc3QgY29uZmlnID0gc21hbGxDb25maWd1cmF0aW9uKCk7
CiAgICAgICAgICAgICAgICAgY29uZmlnLnJlcG9zaXRvcnlHcm91cHMgPSB7J3NvbWUtZ3JvdXAn
OiB7J3JlcG9zaXRvcmllcyc6IHsnV2ViS2l0Jzoge2FjY2VwdHNQYXRjaDogW119fSwgJ3Rlc3RQ
cm9wZXJ0aWVzJzogeyd3ZWJraXQnOiB7J3JldmlzaW9uJzogJ1dlYktpdCd9fX19OwotICAgICAg
ICAgICAgICAgIEJ1aWxkYm90U3luY2VyLl9sb2FkQ29uZmlnKE1vY2tSZW1vdGVBUEksIGNvbmZp
Zyk7CisgICAgICAgICAgICAgICAgQnVpbGRib3RTeW5jZXIuX2xvYWRDb25maWcoTW9ja1JlbW90
ZUFQSSwgY29uZmlnLCBidWlsZGVyTmFtZVRvSURNYXAoKSk7CiAgICAgICAgICAgICB9LCAvIldl
YktpdCIgY29udGFpbnMgaW52YWxpZCBhY2NlcHRzUGF0Y2ggdmFsdWU6Lyk7CiAgICAgICAgIH0p
OwogCkBAIC04OTQsNyArOTA3LDcgQEAgZGVzY3JpYmUoJ0J1aWxkYm90U3luY2VyJywgKCkgPT4g
ewogICAgICAgICAgICAgICAgIGNvbnN0IGNvbmZpZyA9IHNtYWxsQ29uZmlndXJhdGlvbigpOwog
ICAgICAgICAgICAgICAgIGNvbmZpZy5yZXBvc2l0b3J5R3JvdXBzID0geydzb21lLWdyb3VwJzog
eydyZXBvc2l0b3JpZXMnOiB7J1dlYktpdCc6IHthY2NlcHRzUGF0Y2g6IHRydWV9fSwKICAgICAg
ICAgICAgICAgICAgICAgJ3Rlc3RQcm9wZXJ0aWVzJzogeyd3ZWJraXQnOiB7J3JldmlzaW9uJzog
J1dlYktpdCd9LCAnd2Via2l0LXBhdGNoJzogeydwYXRjaCc6ICdXZWJLaXQnfX19fTsKLSAgICAg
ICAgICAgICAgICBCdWlsZGJvdFN5bmNlci5fbG9hZENvbmZpZyhNb2NrUmVtb3RlQVBJLCBjb25m
aWcpOworICAgICAgICAgICAgICAgIEJ1aWxkYm90U3luY2VyLl9sb2FkQ29uZmlnKE1vY2tSZW1v
dGVBUEksIGNvbmZpZywgYnVpbGRlck5hbWVUb0lETWFwKCkpOwogICAgICAgICAgICAgfSwgL1Jl
cG9zaXRvcnkgZ3JvdXAgInNvbWUtZ3JvdXAiIHNwZWNpZmllcyBhIHBhdGNoIGZvciAiV2ViS2l0
IiBpbiB0aGUgcHJvcGVydGllcyBmb3IgdGVzdGluZy8pOwogICAgICAgICB9KTsKIApAQCAtOTA2
LDcgKzkxOSw3IEBAIGRlc2NyaWJlKCdCdWlsZGJvdFN5bmNlcicsICgpID0+IHsKICAgICAgICAg
ICAgICAgICAgICAgdGVzdFByb3BlcnRpZXM6IHsnd2Via2l0Jzoge3JldmlzaW9uOiAnV2ViS2l0
J30sICdpbnN0YWxsLXJvb3RzJzogeydyb290cyc6IHt9fX0sCiAgICAgICAgICAgICAgICAgICAg
IGJ1aWxkUHJvcGVydGllczogeyd3ZWJraXQnOiB7cmV2aXNpb246ICdXZWJLaXQnfSwgJ3BhdGNo
Jzoge3BhdGNoOiAnV2ViS2l0J30sICdpbnN0YWxsLXJvb3RzJzoge3Jvb3RzOiB7fX19LAogICAg
ICAgICAgICAgICAgICAgICBhY2NlcHRzUm9vdHM6IHRydWV9fTsKLSAgICAgICAgICAgICAgICBC
dWlsZGJvdFN5bmNlci5fbG9hZENvbmZpZyhNb2NrUmVtb3RlQVBJLCBjb25maWcpOworICAgICAg
ICAgICAgICAgIEJ1aWxkYm90U3luY2VyLl9sb2FkQ29uZmlnKE1vY2tSZW1vdGVBUEksIGNvbmZp
ZywgYnVpbGRlck5hbWVUb0lETWFwKCkpOwogICAgICAgICAgICAgfSwgL1JlcG9zaXRvcnkgZ3Jv
dXAgInNvbWUtZ3JvdXAiIHNwZWNpZmllcyByb290cyBpbiB0aGUgcHJvcGVydGllcyBmb3IgYnVp
bGRpbmcvKTsKICAgICAgICAgfSk7CiAKQEAgLTkxNiw3ICs5MjksNyBAQCBkZXNjcmliZSgnQnVp
bGRib3RTeW5jZXInLCAoKSA9PiB7CiAgICAgICAgICAgICAgICAgY29uZmlnLnJlcG9zaXRvcnlH
cm91cHMgPSB7J3NvbWUtZ3JvdXAnOiB7CiAgICAgICAgICAgICAgICAgICAgIHJlcG9zaXRvcmll
czogeydXZWJLaXQnOiB7fX0sCiAgICAgICAgICAgICAgICAgICAgIHRlc3RQcm9wZXJ0aWVzOiB7
J3dlYmtpdCc6IHsncmV2aXNpb24nOiAnV2ViS2l0J30sICdpbnN0YWxsLXJvb3RzJzogeydyb290
cyc6IHt9fX19fTsKLSAgICAgICAgICAgICAgICBCdWlsZGJvdFN5bmNlci5fbG9hZENvbmZpZyhN
b2NrUmVtb3RlQVBJLCBjb25maWcpOworICAgICAgICAgICAgICAgIEJ1aWxkYm90U3luY2VyLl9s
b2FkQ29uZmlnKE1vY2tSZW1vdGVBUEksIGNvbmZpZywgYnVpbGRlck5hbWVUb0lETWFwKCkpOwog
ICAgICAgICAgICAgfSwgL1JlcG9zaXRvcnkgZ3JvdXAgInNvbWUtZ3JvdXAiIHNwZWNpZmllcyBy
b290cyBpbiBhIHByb3BlcnR5IGJ1dCBpdCBkb2VzIG5vdCBhY2NlcHQgcm9vdHMvKTsKICAgICAg
ICAgfSk7CiAKQEAgLTkyNyw3ICs5NDAsNyBAQCBkZXNjcmliZSgnQnVpbGRib3RTeW5jZXInLCAo
KSA9PiB7CiAgICAgICAgICAgICAgICAgICAgIHJlcG9zaXRvcmllczogeydXZWJLaXQnOiB7YWNj
ZXB0c1BhdGNoOiB0cnVlfX0sCiAgICAgICAgICAgICAgICAgICAgIHRlc3RQcm9wZXJ0aWVzOiB7
J3dlYmtpdCc6IHtyZXZpc2lvbjogJ1dlYktpdCd9fSwKICAgICAgICAgICAgICAgICAgICAgYnVp
bGRQcm9wZXJ0aWVzOiB7J3dlYmtpdCc6IHtyZXZpc2lvbjogJ1dlYktpdCd9LCAnd2Via2l0LXBh
dGNoJzoge3BhdGNoOiAnV2ViS2l0J319fX07Ci0gICAgICAgICAgICAgICAgQnVpbGRib3RTeW5j
ZXIuX2xvYWRDb25maWcoTW9ja1JlbW90ZUFQSSwgY29uZmlnKTsKKyAgICAgICAgICAgICAgICBC
dWlsZGJvdFN5bmNlci5fbG9hZENvbmZpZyhNb2NrUmVtb3RlQVBJLCBjb25maWcsIGJ1aWxkZXJO
YW1lVG9JRE1hcCgpKTsKICAgICAgICAgICAgIH0sIC9SZXBvc2l0b3J5IGdyb3VwICJzb21lLWdy
b3VwIiBzcGVjaWZpZXMgdGhlIHByb3BlcnRpZXMgZm9yIGJ1aWxkaW5nIGJ1dCBkb2VzIG5vdCBh
Y2NlcHQgcm9vdHMgaW4gdGVzdGluZy8pOwogICAgICAgICB9KTsKIApAQCAtOTM5LDcgKzk1Miw3
IEBAIGRlc2NyaWJlKCdCdWlsZGJvdFN5bmNlcicsICgpID0+IHsKICAgICAgICAgICAgICAgICAg
ICAgdGVzdFByb3BlcnRpZXM6IHsnd2Via2l0JzogeydyZXZpc2lvbic6ICdXZWJLaXQnfSwgJ2lu
c3RhbGwtcm9vdHMnOiB7J3Jvb3RzJzoge319fSwKICAgICAgICAgICAgICAgICAgICAgYnVpbGRQ
cm9wZXJ0aWVzOiB7J3dlYmtpdCc6IHsncmV2aXNpb24nOiAnV2ViS2l0J319LAogICAgICAgICAg
ICAgICAgICAgICBhY2NlcHRzUm9vdHM6IHRydWV9fTsKLSAgICAgICAgICAgICAgICBCdWlsZGJv
dFN5bmNlci5fbG9hZENvbmZpZyhNb2NrUmVtb3RlQVBJLCBjb25maWcpOworICAgICAgICAgICAg
ICAgIEJ1aWxkYm90U3luY2VyLl9sb2FkQ29uZmlnKE1vY2tSZW1vdGVBUEksIGNvbmZpZywgYnVp
bGRlck5hbWVUb0lETWFwKCkpOwogICAgICAgICAgICAgfSwgL1JlcG9zaXRvcnkgZ3JvdXAgInNv
bWUtZ3JvdXAiIHNwZWNpZmllcyB0aGUgcHJvcGVydGllcyBmb3IgYnVpbGRpbmcgYnV0IGRvZXMg
bm90IGFjY2VwdCBhbnkgcGF0Y2hlcy8pOwogICAgICAgICB9KTsKIApAQCAtOTUxLDIxICs5NjQs
MjEgQEAgZGVzY3JpYmUoJ0J1aWxkYm90U3luY2VyJywgKCkgPT4gewogICAgICAgICAgICAgICAg
ICAgICB0ZXN0UHJvcGVydGllczogeyd3ZWJraXQnOiB7cmV2aXNpb246ICdXZWJLaXQnfX0sCiAg
ICAgICAgICAgICAgICAgICAgIGJ1aWxkUHJvcGVydGllczogeyd3ZWJraXQnOiB7cmV2aXNpb246
ICdXZWJLaXQnfSwgJ3dlYmtpdC1wYXRjaCc6IHtwYXRjaDogJ1dlYktpdCd9fSwKICAgICAgICAg
ICAgICAgICAgICAgYWNjZXB0c1Jvb3RzOiB0cnVlfX07Ci0gICAgICAgICAgICAgICAgQnVpbGRi
b3RTeW5jZXIuX2xvYWRDb25maWcoTW9ja1JlbW90ZUFQSSwgY29uZmlnKTsKKyAgICAgICAgICAg
ICAgICBCdWlsZGJvdFN5bmNlci5fbG9hZENvbmZpZyhNb2NrUmVtb3RlQVBJLCBjb25maWcsIGJ1
aWxkZXJOYW1lVG9JRE1hcCgpKTsKICAgICAgICAgICAgIH0sIC9SZXBvc2l0b3J5IGdyb3VwICJz
b21lLWdyb3VwIiBhY2NlcHRzIHJvb3RzIGJ1dCBkb2VzIG5vdCBzcGVjaWZ5IHJvb3RzIGluIHRl
c3RQcm9wZXJ0aWVzLyk7CiAgICAgICAgIH0pOwogICAgIH0pOwogCiAgICAgZGVzY3JpYmUoJ19w
cm9wZXJ0aWVzRm9yQnVpbGRSZXF1ZXN0JywgKCkgPT4gewogICAgICAgICBpdCgnc2hvdWxkIGlu
Y2x1ZGUgYWxsIHByb3BlcnRpZXMgc3BlY2lmaWVkIGluIGEgZ2l2ZW4gY29uZmlndXJhdGlvbics
ICgpID0+IHsKLSAgICAgICAgICAgIGNvbnN0IHN5bmNlcnMgPSBCdWlsZGJvdFN5bmNlci5fbG9h
ZENvbmZpZyhSZW1vdGVBUEksIHNhbXBsZWlPU0NvbmZpZygpKTsKKyAgICAgICAgICAgIGNvbnN0
IHN5bmNlcnMgPSBCdWlsZGJvdFN5bmNlci5fbG9hZENvbmZpZyhSZW1vdGVBUEksIHNhbXBsZWlP
U0NvbmZpZygpLCBidWlsZGVyTmFtZVRvSURNYXAoKSk7CiAgICAgICAgICAgICBjb25zdCByZXF1
ZXN0ID0gY3JlYXRlU2FtcGxlQnVpbGRSZXF1ZXN0KE1vY2tNb2RlbHMuaXBob25lLCBNb2NrTW9k
ZWxzLnNwZWVkb21ldGVyKTsKICAgICAgICAgICAgIGNvbnN0IHByb3BlcnRpZXMgPSBzeW5jZXJz
WzBdLl9wcm9wZXJ0aWVzRm9yQnVpbGRSZXF1ZXN0KHJlcXVlc3QsIFtyZXF1ZXN0XSk7CiAgICAg
ICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKE9iamVjdC5rZXlzKHByb3BlcnRpZXMpLnNvcnQoKSwg
WydidWlsZF9yZXF1ZXN0X2lkJywgJ2Rlc2lyZWRfaW1hZ2UnLCAnZm9yY2VzY2hlZHVsZXInLCAn
b3BlbnNvdXJjZScsICd0ZXN0X25hbWUnXSk7CiAgICAgICAgIH0pOwogCiAgICAgICAgIGl0KCdz
aG91bGQgcHJlc2VydmUgbm9uLXBhcmFtZXRyaWMgcHJvcGVydHkgdmFsdWVzJywgKCkgPT4gewot
ICAgICAgICAgICAgY29uc3Qgc3luY2VycyA9IEJ1aWxkYm90U3luY2VyLl9sb2FkQ29uZmlnKFJl
bW90ZUFQSSwgc2FtcGxlaU9TQ29uZmlnKCkpOworICAgICAgICAgICAgY29uc3Qgc3luY2VycyA9
IEJ1aWxkYm90U3luY2VyLl9sb2FkQ29uZmlnKFJlbW90ZUFQSSwgc2FtcGxlaU9TQ29uZmlnKCks
IGJ1aWxkZXJOYW1lVG9JRE1hcCgpKTsKICAgICAgICAgICAgIGxldCByZXF1ZXN0ID0gY3JlYXRl
U2FtcGxlQnVpbGRSZXF1ZXN0KE1vY2tNb2RlbHMuaXBob25lLCBNb2NrTW9kZWxzLnNwZWVkb21l
dGVyKTsKICAgICAgICAgICAgIGxldCBwcm9wZXJ0aWVzID0gc3luY2Vyc1swXS5fcHJvcGVydGll
c0ZvckJ1aWxkUmVxdWVzdChyZXF1ZXN0LCBbcmVxdWVzdF0pOwogICAgICAgICAgICAgYXNzZXJ0
LmVxdWFsKHByb3BlcnRpZXNbJ3Rlc3RfbmFtZSddLCAnc3BlZWRvbWV0ZXInKTsKQEAgLTk3OCwx
NCArOTkxLDE0IEBAIGRlc2NyaWJlKCdCdWlsZGJvdFN5bmNlcicsICgpID0+IHsKICAgICAgICAg
fSk7CiAKICAgICAgICAgaXQoJ3Nob3VsZCByZXNvbHZlICJyb290IicsICgpID0+IHsKLSAgICAg
ICAgICAgIGNvbnN0IHN5bmNlcnMgPSBCdWlsZGJvdFN5bmNlci5fbG9hZENvbmZpZyhSZW1vdGVB
UEksIHNhbXBsZWlPU0NvbmZpZygpKTsKKyAgICAgICAgICAgIGNvbnN0IHN5bmNlcnMgPSBCdWls
ZGJvdFN5bmNlci5fbG9hZENvbmZpZyhSZW1vdGVBUEksIHNhbXBsZWlPU0NvbmZpZygpLCBidWls
ZGVyTmFtZVRvSURNYXAoKSk7CiAgICAgICAgICAgICBjb25zdCByZXF1ZXN0ID0gY3JlYXRlU2Ft
cGxlQnVpbGRSZXF1ZXN0KE1vY2tNb2RlbHMuaXBob25lLCBNb2NrTW9kZWxzLnNwZWVkb21ldGVy
KTsKICAgICAgICAgICAgIGNvbnN0IHByb3BlcnRpZXMgPSBzeW5jZXJzWzBdLl9wcm9wZXJ0aWVz
Rm9yQnVpbGRSZXF1ZXN0KHJlcXVlc3QsIFtyZXF1ZXN0XSk7CiAgICAgICAgICAgICBhc3NlcnQu
ZXF1YWwocHJvcGVydGllc1snZGVzaXJlZF9pbWFnZSddLCAnMTNBNDUyJyk7CiAgICAgICAgIH0p
OwogCiAgICAgICAgIGl0KCdzaG91bGQgcmVzb2x2ZSAicmV2aXNpb24iJywgKCkgPT4gewotICAg
ICAgICAgICAgY29uc3Qgc3luY2VycyA9IEJ1aWxkYm90U3luY2VyLl9sb2FkQ29uZmlnKFJlbW90
ZUFQSSwgc2FtcGxlaU9TQ29uZmlnKCkpOworICAgICAgICAgICAgY29uc3Qgc3luY2VycyA9IEJ1
aWxkYm90U3luY2VyLl9sb2FkQ29uZmlnKFJlbW90ZUFQSSwgc2FtcGxlaU9TQ29uZmlnKCksIGJ1
aWxkZXJOYW1lVG9JRE1hcCgpKTsKICAgICAgICAgICAgIGNvbnN0IHJlcXVlc3QgPSBjcmVhdGVT
YW1wbGVCdWlsZFJlcXVlc3QoTW9ja01vZGVscy5pcGhvbmUsIE1vY2tNb2RlbHMuc3BlZWRvbWV0
ZXIpOwogICAgICAgICAgICAgY29uc3QgcHJvcGVydGllcyA9IHN5bmNlcnNbMF0uX3Byb3BlcnRp
ZXNGb3JCdWlsZFJlcXVlc3QocmVxdWVzdCwgW3JlcXVlc3RdKTsKICAgICAgICAgICAgIGFzc2Vy
dC5lcXVhbChwcm9wZXJ0aWVzWydvcGVuc291cmNlJ10sICcxOTc0NjMnKTsKQEAgLTEwMDksNyAr
MTAyMiw3IEBAIGRlc2NyaWJlKCdCdWlsZGJvdFN5bmNlcicsICgpID0+IHsKICAgICAgICAgICAg
ICAgICB9LAogICAgICAgICAgICAgICAgICdhY2NlcHRzUm9vdHMnOiB0cnVlLAogICAgICAgICAg
ICAgfTsKLSAgICAgICAgICAgIGNvbnN0IHN5bmNlcnMgPSBCdWlsZGJvdFN5bmNlci5fbG9hZENv
bmZpZyhSZW1vdGVBUEksIGNvbmZpZyk7CisgICAgICAgICAgICBjb25zdCBzeW5jZXJzID0gQnVp
bGRib3RTeW5jZXIuX2xvYWRDb25maWcoUmVtb3RlQVBJLCBjb25maWcsIGJ1aWxkZXJOYW1lVG9J
RE1hcCgpKTsKICAgICAgICAgICAgIGNvbnN0IHJlcXVlc3QgPSBjcmVhdGVTYW1wbGVCdWlsZFJl
cXVlc3RXaXRoUGF0Y2goTW9ja01vZGVscy5pcGhvbmUsIG51bGwsIC0xKTsKICAgICAgICAgICAg
IGNvbnN0IHByb3BlcnRpZXMgPSBzeW5jZXJzWzJdLl9wcm9wZXJ0aWVzRm9yQnVpbGRSZXF1ZXN0
KHJlcXVlc3QsIFtyZXF1ZXN0XSk7CiAgICAgICAgICAgICBhc3NlcnQuZXF1YWwocHJvcGVydGll
c1snd2Via2l0J10sICcxOTc0NjMnKTsKQEAgLTEwMzEsNyArMTA0NCw3IEBAIGRlc2NyaWJlKCdC
dWlsZGJvdFN5bmNlcicsICgpID0+IHsKICAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICAg
ICAgICdhY2NlcHRzUm9vdHMnOiB0cnVlLAogICAgICAgICAgICAgfTsKLSAgICAgICAgICAgIGNv
bnN0IHN5bmNlcnMgPSBCdWlsZGJvdFN5bmNlci5fbG9hZENvbmZpZyhSZW1vdGVBUEksIGNvbmZp
Zyk7CisgICAgICAgICAgICBjb25zdCBzeW5jZXJzID0gQnVpbGRib3RTeW5jZXIuX2xvYWRDb25m
aWcoUmVtb3RlQVBJLCBjb25maWcsIGJ1aWxkZXJOYW1lVG9JRE1hcCgpKTsKICAgICAgICAgICAg
IGNvbnN0IHJlcXVlc3RUb0J1aWxkID0gY3JlYXRlU2FtcGxlQnVpbGRSZXF1ZXN0V2l0aFBhdGNo
KE1vY2tNb2RlbHMuaXBob25lLCBudWxsLCAtMSk7CiAgICAgICAgICAgICBjb25zdCByZXF1ZXN0
VG9UZXN0ID0gY3JlYXRlU2FtcGxlQnVpbGRSZXF1ZXN0V2l0aFBhdGNoKE1vY2tNb2RlbHMuaXBo
b25lLCBNb2NrTW9kZWxzLnNwZWVkb21ldGVyLCAwKTsKICAgICAgICAgICAgIGNvbnN0IG90aGVy
UmVxdWVzdFRvVGVzdCA9IGNyZWF0ZVNhbXBsZUJ1aWxkUmVxdWVzdChNb2NrTW9kZWxzLmlwaG9u
ZSwgTW9ja01vZGVscy5zcGVlZG9tZXRlcik7CkBAIC0xMDc1LDcgKzEwODgsNyBAQCBkZXNjcmli
ZSgnQnVpbGRib3RTeW5jZXInLCAoKSA9PiB7CiAgICAgICAgICAgICAgICAgfSwKICAgICAgICAg
ICAgICAgICAnYWNjZXB0c1Jvb3RzJzogdHJ1ZSwKICAgICAgICAgICAgIH07Ci0gICAgICAgICAg
ICBjb25zdCBzeW5jZXJzID0gQnVpbGRib3RTeW5jZXIuX2xvYWRDb25maWcoUmVtb3RlQVBJLCBj
b25maWcpOworICAgICAgICAgICAgY29uc3Qgc3luY2VycyA9IEJ1aWxkYm90U3luY2VyLl9sb2Fk
Q29uZmlnKFJlbW90ZUFQSSwgY29uZmlnLCBidWlsZGVyTmFtZVRvSURNYXAoKSk7CiAgICAgICAg
ICAgICBjb25zdCByZXF1ZXN0ID0gY3JlYXRlU2FtcGxlQnVpbGRSZXF1ZXN0V2l0aE93bmVkQ29t
bWl0KE1vY2tNb2RlbHMuaXBob25lLCBudWxsLCAtMSk7CiAgICAgICAgICAgICBjb25zdCBwcm9w
ZXJ0aWVzID0gc3luY2Vyc1syXS5fcHJvcGVydGllc0ZvckJ1aWxkUmVxdWVzdChyZXF1ZXN0LCBb
cmVxdWVzdF0pOwogICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHByb3BlcnRpZXNbJ3dlYmtpdCdd
LCAnMTk3NDYzJyk7CkBAIC0xMTA0LDcgKzExMTcsNyBAQCBkZXNjcmliZSgnQnVpbGRib3RTeW5j
ZXInLCAoKSA9PiB7CiAgICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICAgICAnYWNjZXB0
c1Jvb3RzJzogdHJ1ZSwKICAgICAgICAgICAgIH07Ci0gICAgICAgICAgICBjb25zdCBzeW5jZXJz
ID0gQnVpbGRib3RTeW5jZXIuX2xvYWRDb25maWcoUmVtb3RlQVBJLCBjb25maWcpOworICAgICAg
ICAgICAgY29uc3Qgc3luY2VycyA9IEJ1aWxkYm90U3luY2VyLl9sb2FkQ29uZmlnKFJlbW90ZUFQ
SSwgY29uZmlnLCBidWlsZGVyTmFtZVRvSURNYXAoKSk7CiAgICAgICAgICAgICBjb25zdCByZXF1
ZXN0ID0gY3JlYXRlU2FtcGxlQnVpbGRSZXF1ZXN0V2l0aE93bmVkQ29tbWl0QW5kUGF0Y2goTW9j
a01vZGVscy5pcGhvbmUsIG51bGwsIC0xKTsKICAgICAgICAgICAgIGNvbnN0IHByb3BlcnRpZXMg
PSBzeW5jZXJzWzJdLl9wcm9wZXJ0aWVzRm9yQnVpbGRSZXF1ZXN0KHJlcXVlc3QsIFtyZXF1ZXN0
XSk7CiAgICAgICAgICAgICBhc3NlcnQuZXF1YWwocHJvcGVydGllc1snd2Via2l0J10sICcxOTc0
NjMnKTsKQEAgLTExMTUsNyArMTEyOCw3IEBAIGRlc2NyaWJlKCdCdWlsZGJvdFN5bmNlcicsICgp
ID0+IHsKICAgICAgICAgfSk7CiAKICAgICAgICAgaXQoJ3Nob3VsZCBzZXQgdGhlIHByb3BlcnR5
IGZvciB0aGUgYnVpbGQgcmVxdWVzdCBpZCcsICgpID0+IHsKLSAgICAgICAgICAgIGNvbnN0IHN5
bmNlcnMgPSBCdWlsZGJvdFN5bmNlci5fbG9hZENvbmZpZyhSZW1vdGVBUEksIHNhbXBsZWlPU0Nv
bmZpZygpKTsKKyAgICAgICAgICAgIGNvbnN0IHN5bmNlcnMgPSBCdWlsZGJvdFN5bmNlci5fbG9h
ZENvbmZpZyhSZW1vdGVBUEksIHNhbXBsZWlPU0NvbmZpZygpLCBidWlsZGVyTmFtZVRvSURNYXAo
KSk7CiAgICAgICAgICAgICBjb25zdCByZXF1ZXN0ID0gY3JlYXRlU2FtcGxlQnVpbGRSZXF1ZXN0
KE1vY2tNb2RlbHMuaXBob25lLCBNb2NrTW9kZWxzLnNwZWVkb21ldGVyKTsKICAgICAgICAgICAg
IGNvbnN0IHByb3BlcnRpZXMgPSBzeW5jZXJzWzBdLl9wcm9wZXJ0aWVzRm9yQnVpbGRSZXF1ZXN0
KHJlcXVlc3QsIFtyZXF1ZXN0XSk7CiAgICAgICAgICAgICBhc3NlcnQuZXF1YWwocHJvcGVydGll
c1snYnVpbGRfcmVxdWVzdF9pZCddLCByZXF1ZXN0LmlkKCkpOwpAQCAtMTEyNCw3ICsxMTM3LDcg
QEAgZGVzY3JpYmUoJ0J1aWxkYm90U3luY2VyJywgKCkgPT4gewogCiAgICAgZGVzY3JpYmUoJ3B1
bGxCdWlsZGJvdCcsICgpID0+IHsKICAgICAgICAgaXQoJ3Nob3VsZCBmZXRjaCBwZW5kaW5nIGJ1
aWxkcyBmcm9tIHRoZSByaWdodCBVUkwnLCAoKSA9PiB7Ci0gICAgICAgICAgICBsZXQgc3luY2Vy
ID0gQnVpbGRib3RTeW5jZXIuX2xvYWRDb25maWcoTW9ja1JlbW90ZUFQSSwgc2FtcGxlaU9TQ29u
ZmlnKCkpWzFdOworICAgICAgICAgICAgbGV0IHN5bmNlciA9IEJ1aWxkYm90U3luY2VyLl9sb2Fk
Q29uZmlnKE1vY2tSZW1vdGVBUEksIHNhbXBsZWlPU0NvbmZpZygpLCBidWlsZGVyTmFtZVRvSURN
YXAoKSlbMV07CiAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoc3luY2VyLmJ1aWxkZXJOYW1lKCks
ICdBQlRlc3QtaVBhZC1SdW5CZW5jaG1hcmstVGVzdHMnKTsKICAgICAgICAgICAgIGxldCBleHBl
Y3RlZFVSTCA9ICcvanNvbi9idWlsZGVycy9BQlRlc3QtaVBhZC1SdW5CZW5jaG1hcmstVGVzdHMv
cGVuZGluZ0J1aWxkcyc7CiAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoc3luY2VyLnBhdGhGb3JQ
ZW5kaW5nQnVpbGRzSlNPTigpLCBleHBlY3RlZFVSTCk7CkBAIC0xMTM0LDcgKzExNDcsNyBAQCBk
ZXNjcmliZSgnQnVpbGRib3RTeW5jZXInLCAoKSA9PiB7CiAgICAgICAgIH0pOwogCiAgICAgICAg
IGl0KCdzaG91bGQgZmV0Y2ggcmVjZW50IGJ1aWxkcyBvbmNlIHBlbmRpbmcgYnVpbGRzIGhhdmUg
YmVlbiBmZXRjaGVkJywgKCkgPT4gewotICAgICAgICAgICAgbGV0IHN5bmNlciA9IEJ1aWxkYm90
U3luY2VyLl9sb2FkQ29uZmlnKE1vY2tSZW1vdGVBUEksIHNhbXBsZWlPU0NvbmZpZygpKVsxXTsK
KyAgICAgICAgICAgIGxldCBzeW5jZXIgPSBCdWlsZGJvdFN5bmNlci5fbG9hZENvbmZpZyhNb2Nr
UmVtb3RlQVBJLCBzYW1wbGVpT1NDb25maWcoKSwgYnVpbGRlck5hbWVUb0lETWFwKCkpWzFdOwog
ICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHN5bmNlci5idWlsZGVyTmFtZSgpLCAnQUJUZXN0LWlQ
YWQtUnVuQmVuY2htYXJrLVRlc3RzJyk7CiAKICAgICAgICAgICAgIHN5bmNlci5wdWxsQnVpbGRi
b3QoMSk7CkBAIC0xMTQ4LDcgKzExNjEsNyBAQCBkZXNjcmliZSgnQnVpbGRib3RTeW5jZXInLCAo
KSA9PiB7CiAgICAgICAgIH0pOwogCiAgICAgICAgIGl0KCdzaG91bGQgZmV0Y2ggdGhlIHJpZ2h0
IG51bWJlciBvZiByZWNlbnQgYnVpbGRzJywgKCkgPT4gewotICAgICAgICAgICAgbGV0IHN5bmNl
ciA9IEJ1aWxkYm90U3luY2VyLl9sb2FkQ29uZmlnKE1vY2tSZW1vdGVBUEksIHNhbXBsZWlPU0Nv
bmZpZygpKVsxXTsKKyAgICAgICAgICAgIGxldCBzeW5jZXIgPSBCdWlsZGJvdFN5bmNlci5fbG9h
ZENvbmZpZyhNb2NrUmVtb3RlQVBJLCBzYW1wbGVpT1NDb25maWcoKSwgYnVpbGRlck5hbWVUb0lE
TWFwKCkpWzFdOwogCiAgICAgICAgICAgICBzeW5jZXIucHVsbEJ1aWxkYm90KDMpOwogICAgICAg
ICAgICAgYXNzZXJ0LmVxdWFsKHJlcXVlc3RzLmxlbmd0aCwgMSk7CkBAIC0xMTYxLDcgKzExNzQs
NyBAQCBkZXNjcmliZSgnQnVpbGRib3RTeW5jZXInLCAoKSA9PiB7CiAgICAgICAgIH0pOwogCiAg
ICAgICAgIGl0KCdzaG91bGQgY3JlYXRlIEJ1aWxkYm90QnVpbGRFbnRyeSBmb3IgcGVuZGluZyBi
dWlsZHMnLCAoKSA9PiB7Ci0gICAgICAgICAgICBsZXQgc3luY2VyID0gQnVpbGRib3RTeW5jZXIu
X2xvYWRDb25maWcoTW9ja1JlbW90ZUFQSSwgc2FtcGxlaU9TQ29uZmlnKCkpWzFdOworICAgICAg
ICAgICAgbGV0IHN5bmNlciA9IEJ1aWxkYm90U3luY2VyLl9sb2FkQ29uZmlnKE1vY2tSZW1vdGVB
UEksIHNhbXBsZWlPU0NvbmZpZygpLCBidWlsZGVyTmFtZVRvSURNYXAoKSlbMV07CiAgICAgICAg
ICAgICBsZXQgcHJvbWlzZSA9IHN5bmNlci5wdWxsQnVpbGRib3QoKTsKICAgICAgICAgICAgIHJl
cXVlc3RzWzBdLnJlc29sdmUoW3NhbXBsZVBlbmRpbmdCdWlsZCgpXSk7CiAgICAgICAgICAgICBy
ZXR1cm4gcHJvbWlzZS50aGVuKChlbnRyaWVzKSA9PiB7CkBAIC0xMTc5LDcgKzExOTIsNyBAQCBk
ZXNjcmliZSgnQnVpbGRib3RTeW5jZXInLCAoKSA9PiB7CiAgICAgICAgIH0pOwogCiAgICAgICAg
IGl0KCdzaG91bGQgY3JlYXRlIEJ1aWxkYm90QnVpbGRFbnRyeSBmb3IgaW4tcHJvZ3Jlc3MgYnVp
bGRzJywgKCkgPT4gewotICAgICAgICAgICAgbGV0IHN5bmNlciA9IEJ1aWxkYm90U3luY2VyLl9s
b2FkQ29uZmlnKE1vY2tSZW1vdGVBUEksIHNhbXBsZWlPU0NvbmZpZygpKVsxXTsKKyAgICAgICAg
ICAgIGxldCBzeW5jZXIgPSBCdWlsZGJvdFN5bmNlci5fbG9hZENvbmZpZyhNb2NrUmVtb3RlQVBJ
LCBzYW1wbGVpT1NDb25maWcoKSwgYnVpbGRlck5hbWVUb0lETWFwKCkpWzFdOwogCiAgICAgICAg
ICAgICBsZXQgcHJvbWlzZSA9IHN5bmNlci5wdWxsQnVpbGRib3QoMSk7CiAgICAgICAgICAgICBh
c3NlcnQuZXF1YWwocmVxdWVzdHMubGVuZ3RoLCAxKTsKQEAgLTEyMDMsNyArMTIxNiw3IEBAIGRl
c2NyaWJlKCdCdWlsZGJvdFN5bmNlcicsICgpID0+IHsKICAgICAgICAgfSk7CiAKICAgICAgICAg
aXQoJ3Nob3VsZCBjcmVhdGUgQnVpbGRib3RCdWlsZEVudHJ5IGZvciBmaW5pc2hlZCBidWlsZHMn
LCAoKSA9PiB7Ci0gICAgICAgICAgICBsZXQgc3luY2VyID0gQnVpbGRib3RTeW5jZXIuX2xvYWRD
b25maWcoTW9ja1JlbW90ZUFQSSwgc2FtcGxlaU9TQ29uZmlnKCkpWzFdOworICAgICAgICAgICAg
bGV0IHN5bmNlciA9IEJ1aWxkYm90U3luY2VyLl9sb2FkQ29uZmlnKE1vY2tSZW1vdGVBUEksIHNh
bXBsZWlPU0NvbmZpZygpLCBidWlsZGVyTmFtZVRvSURNYXAoKSlbMV07CiAKICAgICAgICAgICAg
IGxldCBwcm9taXNlID0gc3luY2VyLnB1bGxCdWlsZGJvdCgxKTsKICAgICAgICAgICAgIGFzc2Vy
dC5lcXVhbChyZXF1ZXN0cy5sZW5ndGgsIDEpOwpAQCAtMTIyNyw3ICsxMjQwLDcgQEAgZGVzY3Jp
YmUoJ0J1aWxkYm90U3luY2VyJywgKCkgPT4gewogICAgICAgICB9KTsKIAogICAgICAgICBpdCgn
c2hvdWxkIGNyZWF0ZSBCdWlsZGJvdEJ1aWxkRW50cnkgZm9yIG1peGVkIHBlbmRpbmcsIGluLXBy
b2dyZXNzLCBmaW5pc2hlZCwgYW5kIG1pc3NpbmcgYnVpbGRzJywgKCkgPT4gewotICAgICAgICAg
ICAgbGV0IHN5bmNlciA9IEJ1aWxkYm90U3luY2VyLl9sb2FkQ29uZmlnKE1vY2tSZW1vdGVBUEks
IHNhbXBsZWlPU0NvbmZpZygpKVsxXTsKKyAgICAgICAgICAgIGxldCBzeW5jZXIgPSBCdWlsZGJv
dFN5bmNlci5fbG9hZENvbmZpZyhNb2NrUmVtb3RlQVBJLCBzYW1wbGVpT1NDb25maWcoKSwgYnVp
bGRlck5hbWVUb0lETWFwKCkpWzFdOwogCiAgICAgICAgICAgICBsZXQgcHJvbWlzZSA9IHN5bmNl
ci5wdWxsQnVpbGRib3QoNSk7CiAgICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVxdWVzdHMubGVu
Z3RoLCAxKTsKQEAgLTEyNzQsNyArMTI4Nyw3IEBAIGRlc2NyaWJlKCdCdWlsZGJvdFN5bmNlcics
ICgpID0+IHsKICAgICAgICAgfSk7CiAKICAgICAgICAgaXQoJ3Nob3VsZCBzb3J0IEJ1aWxkYm90
QnVpbGRFbnRyeSBieSBvcmRlcicsICgpID0+IHsKLSAgICAgICAgICAgIGxldCBzeW5jZXIgPSBC
dWlsZGJvdFN5bmNlci5fbG9hZENvbmZpZyhNb2NrUmVtb3RlQVBJLCBzYW1wbGVpT1NDb25maWco
KSlbMV07CisgICAgICAgICAgICBsZXQgc3luY2VyID0gQnVpbGRib3RTeW5jZXIuX2xvYWRDb25m
aWcoTW9ja1JlbW90ZUFQSSwgc2FtcGxlaU9TQ29uZmlnKCksIGJ1aWxkZXJOYW1lVG9JRE1hcCgp
KVsxXTsKIAogICAgICAgICAgICAgbGV0IHByb21pc2UgPSBzeW5jZXIucHVsbEJ1aWxkYm90KDUp
OwogICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlcXVlc3RzLmxlbmd0aCwgMSk7CkBAIC0xMzMx
LDcgKzEzNDQsNyBAQCBkZXNjcmliZSgnQnVpbGRib3RTeW5jZXInLCAoKSA9PiB7CiAgICAgICAg
IH0pOwogCiAgICAgICAgIGl0KCdzaG91bGQgb3ZlcnJpZGUgQnVpbGRib3RCdWlsZEVudHJ5IGZv
ciBwZW5kaW5nIGJ1aWxkcyBieSBpbi1wcm9ncmVzcyBidWlsZHMnLCAoKSA9PiB7Ci0gICAgICAg
ICAgICBsZXQgc3luY2VyID0gQnVpbGRib3RTeW5jZXIuX2xvYWRDb25maWcoTW9ja1JlbW90ZUFQ
SSwgc2FtcGxlaU9TQ29uZmlnKCkpWzFdOworICAgICAgICAgICAgbGV0IHN5bmNlciA9IEJ1aWxk
Ym90U3luY2VyLl9sb2FkQ29uZmlnKE1vY2tSZW1vdGVBUEksIHNhbXBsZWlPU0NvbmZpZygpLCBi
dWlsZGVyTmFtZVRvSURNYXAoKSlbMV07CiAKICAgICAgICAgICAgIGxldCBwcm9taXNlID0gc3lu
Y2VyLnB1bGxCdWlsZGJvdCg1KTsKICAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXF1ZXN0cy5s
ZW5ndGgsIDEpOwpAQCAtMTM1OCw3ICsxMzcxLDcgQEAgZGVzY3JpYmUoJ0J1aWxkYm90U3luY2Vy
JywgKCkgPT4gewogICAgICAgICB9KTsKIAogICAgICAgICBpdCgnc2hvdWxkIG92ZXJyaWRlIEJ1
aWxkYm90QnVpbGRFbnRyeSBmb3IgcGVuZGluZyBidWlsZHMgYnkgZmluaXNoZWQgYnVpbGRzJywg
KCkgPT4gewotICAgICAgICAgICAgbGV0IHN5bmNlciA9IEJ1aWxkYm90U3luY2VyLl9sb2FkQ29u
ZmlnKE1vY2tSZW1vdGVBUEksIHNhbXBsZWlPU0NvbmZpZygpKVsxXTsKKyAgICAgICAgICAgIGxl
dCBzeW5jZXIgPSBCdWlsZGJvdFN5bmNlci5fbG9hZENvbmZpZyhNb2NrUmVtb3RlQVBJLCBzYW1w
bGVpT1NDb25maWcoKSwgYnVpbGRlck5hbWVUb0lETWFwKCkpWzFdOwogCiAgICAgICAgICAgICBs
ZXQgcHJvbWlzZSA9IHN5bmNlci5wdWxsQnVpbGRib3QoNSk7CiAgICAgICAgICAgICBhc3NlcnQu
ZXF1YWwocmVxdWVzdHMubGVuZ3RoLCAxKTsKQEAgLTEzODcsNyArMTQwMCw3IEBAIGRlc2NyaWJl
KCdCdWlsZGJvdFN5bmNlcicsICgpID0+IHsKIAogICAgIGRlc2NyaWJlKCdzY2hlZHVsZVJlcXVl
c3QnLCAoKSA9PiB7CiAgICAgICAgIGl0KCdzaG91bGQgc2NoZWR1bGUgYSBidWlsZCByZXF1ZXN0
IG9uIGEgc3BlY2lmaWVkIHNsYXZlJywgKCkgPT4gewotICAgICAgICAgICAgbGV0IHN5bmNlciA9
IEJ1aWxkYm90U3luY2VyLl9sb2FkQ29uZmlnKE1vY2tSZW1vdGVBUEksIHNhbXBsZWlPU0NvbmZp
ZygpKVswXTsKKyAgICAgICAgICAgIGxldCBzeW5jZXIgPSBCdWlsZGJvdFN5bmNlci5fbG9hZENv
bmZpZyhNb2NrUmVtb3RlQVBJLCBzYW1wbGVpT1NDb25maWcoKSwgYnVpbGRlck5hbWVUb0lETWFw
KCkpWzBdOwogCiAgICAgICAgICAgICBjb25zdCB3YWl0Rm9yUmVxdWVzdCA9IE1vY2tSZW1vdGVB
UEkud2FpdEZvclJlcXVlc3QoKTsKICAgICAgICAgICAgIGNvbnN0IHJlcXVlc3QgPSBjcmVhdGVT
YW1wbGVCdWlsZFJlcXVlc3QoTW9ja01vZGVscy5pcGhvbmUsIE1vY2tNb2RlbHMuc3BlZWRvbWV0
ZXIpOwpAQCAtMTQyNCw3ICsxNDM3LDcgQEAgZGVzY3JpYmUoJ0J1aWxkYm90U3luY2VyJywgKCkg
PT4gewogICAgICAgICB9CiAKICAgICAgICAgaXQoJ3Nob3VsZCBzY2hlZHVsZSBhIGJ1aWxkIGlm
IGJ1aWxkZXIgaGFzIG5vIGJ1aWxkcyBpZiBzbGF2ZUxpc3QgaXMgbm90IHNwZWNpZmllZCcsICgp
ID0+IHsKLSAgICAgICAgICAgIGxldCBzeW5jZXIgPSBCdWlsZGJvdFN5bmNlci5fbG9hZENvbmZp
ZyhNb2NrUmVtb3RlQVBJLCBzbWFsbENvbmZpZ3VyYXRpb24oKSlbMF07CisgICAgICAgICAgICBs
ZXQgc3luY2VyID0gQnVpbGRib3RTeW5jZXIuX2xvYWRDb25maWcoTW9ja1JlbW90ZUFQSSwgc21h
bGxDb25maWd1cmF0aW9uKCksIGJ1aWxkZXJOYW1lVG9JRE1hcCgpKVswXTsKIAogICAgICAgICAg
ICAgcmV0dXJuIHB1bGxCdWlsZGJvdFdpdGhBc3NlcnRpb24oc3luY2VyLCBbXSwge30pLnRoZW4o
KCkgPT4gewogICAgICAgICAgICAgICAgIGNvbnN0IHJlcXVlc3QgPSBjcmVhdGVTYW1wbGVCdWls
ZFJlcXVlc3QoTW9ja01vZGVscy5zb21lUGxhdGZvcm0sIE1vY2tNb2RlbHMuc29tZVRlc3QpOwpA
QCAtMTQzNyw3ICsxNDUwLDcgQEAgZGVzY3JpYmUoJ0J1aWxkYm90U3luY2VyJywgKCkgPT4gewog
ICAgICAgICB9KTsKIAogICAgICAgICBpdCgnc2hvdWxkIHNjaGVkdWxlIGEgYnVpbGQgaWYgYnVp
bGRlciBvbmx5IGhhcyBmaW5pc2hlZCBidWlsZHMgaWYgc2xhdmVMaXN0IGlzIG5vdCBzcGVjaWZp
ZWQnLCAoKSA9PiB7Ci0gICAgICAgICAgICBsZXQgc3luY2VyID0gQnVpbGRib3RTeW5jZXIuX2xv
YWRDb25maWcoTW9ja1JlbW90ZUFQSSwgc21hbGxDb25maWd1cmF0aW9uKCkpWzBdOworICAgICAg
ICAgICAgbGV0IHN5bmNlciA9IEJ1aWxkYm90U3luY2VyLl9sb2FkQ29uZmlnKE1vY2tSZW1vdGVB
UEksIHNtYWxsQ29uZmlndXJhdGlvbigpLCBidWlsZGVyTmFtZVRvSURNYXAoKSlbMF07CiAKICAg
ICAgICAgICAgIHJldHVybiBwdWxsQnVpbGRib3RXaXRoQXNzZXJ0aW9uKHN5bmNlciwgW10sIHtb
LTFdOiBzbWFsbEZpbmlzaGVkQnVpbGQoKX0pLnRoZW4oKCkgPT4gewogICAgICAgICAgICAgICAg
IGNvbnN0IHJlcXVlc3QgPSBjcmVhdGVTYW1wbGVCdWlsZFJlcXVlc3QoTW9ja01vZGVscy5zb21l
UGxhdGZvcm0sIE1vY2tNb2RlbHMuc29tZVRlc3QpOwpAQCAtMTQ1MCw3ICsxNDYzLDcgQEAgZGVz
Y3JpYmUoJ0J1aWxkYm90U3luY2VyJywgKCkgPT4gewogICAgICAgICB9KTsKIAogICAgICAgICBp
dCgnc2hvdWxkIG5vdCBzY2hlZHVsZSBhIGJ1aWxkIGlmIGJ1aWxkZXIgaGFzIGEgcGVuZGluZyBi
dWlsZCBpZiBzbGF2ZUxpc3QgaXMgbm90IHNwZWNpZmllZCcsICgpID0+IHsKLSAgICAgICAgICAg
IGxldCBzeW5jZXIgPSBCdWlsZGJvdFN5bmNlci5fbG9hZENvbmZpZyhNb2NrUmVtb3RlQVBJLCBz
bWFsbENvbmZpZ3VyYXRpb24oKSlbMF07CisgICAgICAgICAgICBsZXQgc3luY2VyID0gQnVpbGRi
b3RTeW5jZXIuX2xvYWRDb25maWcoTW9ja1JlbW90ZUFQSSwgc21hbGxDb25maWd1cmF0aW9uKCks
IGJ1aWxkZXJOYW1lVG9JRE1hcCgpKVswXTsKIAogICAgICAgICAgICAgcmV0dXJuIHB1bGxCdWls
ZGJvdFdpdGhBc3NlcnRpb24oc3luY2VyLCBbc21hbGxQZW5kaW5nQnVpbGQoKV0sIHt9KS50aGVu
KCgpID0+IHsKICAgICAgICAgICAgICAgICBzeW5jZXIuc2NoZWR1bGVSZXF1ZXN0SW5Hcm91cElm
QXZhaWxhYmxlKGNyZWF0ZVNhbXBsZUJ1aWxkUmVxdWVzdChNb2NrTW9kZWxzLnNvbWVQbGF0Zm9y
bSwgTW9ja01vZGVscy5zb21lVGVzdCkpOwpAQCAtMTQ1OSw3ICsxNDcyLDcgQEAgZGVzY3JpYmUo
J0J1aWxkYm90U3luY2VyJywgKCkgPT4gewogICAgICAgICB9KTsKIAogICAgICAgICBpdCgnc2hv
dWxkIHNjaGVkdWxlIGEgYnVpbGQgaWYgYnVpbGRlciBkb2VzIG5vdCBoYXZlIHBlbmRpbmcgb3Ig
Y29tcGxldGVkIGJ1aWxkcyBvbiB0aGUgbWF0Y2hpbmcgc2xhdmUnLCAoKSA9PiB7Ci0gICAgICAg
ICAgICBsZXQgc3luY2VyID0gQnVpbGRib3RTeW5jZXIuX2xvYWRDb25maWcoTW9ja1JlbW90ZUFQ
SSwgc2FtcGxlaU9TQ29uZmlnKCkpWzBdOworICAgICAgICAgICAgbGV0IHN5bmNlciA9IEJ1aWxk
Ym90U3luY2VyLl9sb2FkQ29uZmlnKE1vY2tSZW1vdGVBUEksIHNhbXBsZWlPU0NvbmZpZygpLCBi
dWlsZGVyTmFtZVRvSURNYXAoKSlbMF07CiAKICAgICAgICAgICAgIHJldHVybiBwdWxsQnVpbGRi
b3RXaXRoQXNzZXJ0aW9uKHN5bmNlciwgW10sIHt9KS50aGVuKCgpID0+IHsKICAgICAgICAgICAg
ICAgICBjb25zdCByZXF1ZXN0ID0gY3JlYXRlU2FtcGxlQnVpbGRSZXF1ZXN0KE1vY2tNb2RlbHMu
aXBob25lLCBNb2NrTW9kZWxzLnNwZWVkb21ldGVyKTsKQEAgLTE0NzEsNyArMTQ4NCw3IEBAIGRl
c2NyaWJlKCdCdWlsZGJvdFN5bmNlcicsICgpID0+IHsKICAgICAgICAgfSk7CiAKICAgICAgICAg
aXQoJ3Nob3VsZCBzY2hlZHVsZSBhIGJ1aWxkIGlmIGJ1aWxkZXIgb25seSBoYXMgZmluaXNoZWQg
YnVpbGRzIG9uIHRoZSBtYXRjaGluZyBzbGF2ZScsICgpID0+IHsKLSAgICAgICAgICAgIGxldCBz
eW5jZXIgPSBCdWlsZGJvdFN5bmNlci5fbG9hZENvbmZpZyhNb2NrUmVtb3RlQVBJLCBzYW1wbGVp
T1NDb25maWcoKSlbMV07CisgICAgICAgICAgICBsZXQgc3luY2VyID0gQnVpbGRib3RTeW5jZXIu
X2xvYWRDb25maWcoTW9ja1JlbW90ZUFQSSwgc2FtcGxlaU9TQ29uZmlnKCksIGJ1aWxkZXJOYW1l
VG9JRE1hcCgpKVsxXTsKIAogICAgICAgICAgICAgcHVsbEJ1aWxkYm90V2l0aEFzc2VydGlvbihz
eW5jZXIsIFtdLCB7Wy0xXTogc2FtcGxlRmluaXNoZWRCdWlsZCgpfSkudGhlbigoKSA9PiB7CiAg
ICAgICAgICAgICAgICAgY29uc3QgcmVxdWVzdCA9IGNyZWF0ZVNhbXBsZUJ1aWxkUmVxdWVzdChN
b2NrTW9kZWxzLmlwYWQsIE1vY2tNb2RlbHMuc3BlZWRvbWV0ZXIpOwpAQCAtMTQ4Myw3ICsxNDk2
LDcgQEAgZGVzY3JpYmUoJ0J1aWxkYm90U3luY2VyJywgKCkgPT4gewogICAgICAgICB9KTsKIAog
ICAgICAgICBpdCgnc2hvdWxkIG5vdCBzY2hlZHVsZSBhIGJ1aWxkIGlmIGJ1aWxkZXIgaGFzIGEg
cGVuZGluZyBidWlsZCBvbiB0aGUgbWFjaGluZyBzbGF2ZScsICgpID0+IHsKLSAgICAgICAgICAg
IGxldCBzeW5jZXIgPSBCdWlsZGJvdFN5bmNlci5fbG9hZENvbmZpZyhNb2NrUmVtb3RlQVBJLCBz
YW1wbGVpT1NDb25maWcoKSlbMV07CisgICAgICAgICAgICBsZXQgc3luY2VyID0gQnVpbGRib3RT
eW5jZXIuX2xvYWRDb25maWcoTW9ja1JlbW90ZUFQSSwgc2FtcGxlaU9TQ29uZmlnKCksIGJ1aWxk
ZXJOYW1lVG9JRE1hcCgpKVsxXTsKIAogICAgICAgICAgICAgcHVsbEJ1aWxkYm90V2l0aEFzc2Vy
dGlvbihzeW5jZXIsIFtzYW1wbGVQZW5kaW5nQnVpbGQoKV0sIHt9KS50aGVuKCgpID0+IHsKICAg
ICAgICAgICAgICAgICBjb25zdCByZXF1ZXN0ID0gY3JlYXRlU2FtcGxlQnVpbGRSZXF1ZXN0KE1v
Y2tNb2RlbHMuaXBhZCwgTW9ja01vZGVscy5zcGVlZG9tZXRlcik7CkBAIC0xNDkzLDcgKzE1MDYs
NyBAQCBkZXNjcmliZSgnQnVpbGRib3RTeW5jZXInLCAoKSA9PiB7CiAgICAgICAgIH0pOwogCiAg
ICAgICAgIGl0KCdzaG91bGQgc2NoZWR1bGUgYSBidWlsZCBpZiBidWlsZGVyIG9ubHkgaGFzIGEg
cGVuZGluZyBidWlsZCBvbiBhIG5vbi1tYWNoaW5nIHNsYXZlJywgKCkgPT4gewotICAgICAgICAg
ICAgbGV0IHN5bmNlciA9IEJ1aWxkYm90U3luY2VyLl9sb2FkQ29uZmlnKE1vY2tSZW1vdGVBUEks
IHNhbXBsZWlPU0NvbmZpZygpKVsxXTsKKyAgICAgICAgICAgIGxldCBzeW5jZXIgPSBCdWlsZGJv
dFN5bmNlci5fbG9hZENvbmZpZyhNb2NrUmVtb3RlQVBJLCBzYW1wbGVpT1NDb25maWcoKSwgYnVp
bGRlck5hbWVUb0lETWFwKCkpWzFdOwogCiAgICAgICAgICAgICByZXR1cm4gcHVsbEJ1aWxkYm90
V2l0aEFzc2VydGlvbihzeW5jZXIsIFtzYW1wbGVQZW5kaW5nQnVpbGQoMSwgMSwgJ2Fub3RoZXIt
c2xhdmUnKV0sIHt9KS50aGVuKCgpID0+IHsKICAgICAgICAgICAgICAgICBjb25zdCByZXF1ZXN0
ID0gY3JlYXRlU2FtcGxlQnVpbGRSZXF1ZXN0KE1vY2tNb2RlbHMuaXBhZCwgTW9ja01vZGVscy5z
cGVlZG9tZXRlcik7CkBAIC0xNTAzLDcgKzE1MTYsNyBAQCBkZXNjcmliZSgnQnVpbGRib3RTeW5j
ZXInLCAoKSA9PiB7CiAgICAgICAgIH0pOwogCiAgICAgICAgIGl0KCdzaG91bGQgc2NoZWR1bGUg
YSBidWlsZCBpZiBidWlsZGVyIG9ubHkgaGFzIGFuIGluLXByb2dyZXNzIGJ1aWxkIG9uIHRoZSBt
YXRjaGluZyBzbGF2ZScsICgpID0+IHsKLSAgICAgICAgICAgIGxldCBzeW5jZXIgPSBCdWlsZGJv
dFN5bmNlci5fbG9hZENvbmZpZyhNb2NrUmVtb3RlQVBJLCBzYW1wbGVpT1NDb25maWcoKSlbMV07
CisgICAgICAgICAgICBsZXQgc3luY2VyID0gQnVpbGRib3RTeW5jZXIuX2xvYWRDb25maWcoTW9j
a1JlbW90ZUFQSSwgc2FtcGxlaU9TQ29uZmlnKCksIGJ1aWxkZXJOYW1lVG9JRE1hcCgpKVsxXTsK
IAogICAgICAgICAgICAgcmV0dXJuIHB1bGxCdWlsZGJvdFdpdGhBc3NlcnRpb24oc3luY2VyLCBb
XSwge1stMV06IHNhbXBsZUluUHJvZ3Jlc3NCdWlsZCgpfSkudGhlbigoKSA9PiB7CiAgICAgICAg
ICAgICAgICAgY29uc3QgcmVxdWVzdCA9IGNyZWF0ZVNhbXBsZUJ1aWxkUmVxdWVzdChNb2NrTW9k
ZWxzLmlwYWQsIE1vY2tNb2RlbHMuc3BlZWRvbWV0ZXIpOwpAQCAtMTUxMyw3ICsxNTI2LDcgQEAg
ZGVzY3JpYmUoJ0J1aWxkYm90U3luY2VyJywgKCkgPT4gewogICAgICAgICB9KTsKIAogICAgICAg
ICBpdCgnc2hvdWxkIHNjaGVkdWxlIGEgYnVpbGQgaWYgYnVpbGRlciBoYXMgYW4gaW4tcHJvZ3Jl
c3MgYnVpbGQgb24gYW5vdGhlciBzbGF2ZScsICgpID0+IHsKLSAgICAgICAgICAgIGxldCBzeW5j
ZXIgPSBCdWlsZGJvdFN5bmNlci5fbG9hZENvbmZpZyhNb2NrUmVtb3RlQVBJLCBzYW1wbGVpT1ND
b25maWcoKSlbMV07CisgICAgICAgICAgICBsZXQgc3luY2VyID0gQnVpbGRib3RTeW5jZXIuX2xv
YWRDb25maWcoTW9ja1JlbW90ZUFQSSwgc2FtcGxlaU9TQ29uZmlnKCksIGJ1aWxkZXJOYW1lVG9J
RE1hcCgpKVsxXTsKIAogICAgICAgICAgICAgcmV0dXJuIHB1bGxCdWlsZGJvdFdpdGhBc3NlcnRp
b24oc3luY2VyLCBbXSwge1stMV06IHNhbXBsZUluUHJvZ3Jlc3NCdWlsZCgnb3RoZXItc2xhdmUn
KX0pLnRoZW4oKCkgPT4gewogICAgICAgICAgICAgICAgIGNvbnN0IHJlcXVlc3QgPSBjcmVhdGVT
YW1wbGVCdWlsZFJlcXVlc3QoTW9ja01vZGVscy5pcGFkLCBNb2NrTW9kZWxzLnNwZWVkb21ldGVy
KTsKQEAgLTE1MjMsNyArMTUzNiw3IEBAIGRlc2NyaWJlKCdCdWlsZGJvdFN5bmNlcicsICgpID0+
IHsKICAgICAgICAgfSk7CiAKICAgICAgICAgaXQoJ3Nob3VsZCBub3Qgc2NoZWR1bGUgYSBidWls
ZCBpZiB0aGUgcmVxdWVzdCBkb2VzIG5vdCBtYXRjaCBhbnkgY29uZmlndXJhdGlvbicsICgpID0+
IHsKLSAgICAgICAgICAgIGxldCBzeW5jZXIgPSBCdWlsZGJvdFN5bmNlci5fbG9hZENvbmZpZyhN
b2NrUmVtb3RlQVBJLCBzYW1wbGVpT1NDb25maWcoKSlbMF07CisgICAgICAgICAgICBsZXQgc3lu
Y2VyID0gQnVpbGRib3RTeW5jZXIuX2xvYWRDb25maWcoTW9ja1JlbW90ZUFQSSwgc2FtcGxlaU9T
Q29uZmlnKCksIGJ1aWxkZXJOYW1lVG9JRE1hcCgpKVswXTsKIAogICAgICAgICAgICAgcmV0dXJu
IHB1bGxCdWlsZGJvdFdpdGhBc3NlcnRpb24oc3luY2VyLCBbXSwge30pLnRoZW4oKCkgPT4gewog
ICAgICAgICAgICAgICAgIGNvbnN0IHJlcXVlc3QgPSBjcmVhdGVTYW1wbGVCdWlsZFJlcXVlc3Qo
TW9ja01vZGVscy5pcGFkLCBNb2NrTW9kZWxzLnNwZWVkb21ldGVyKTsKQEAgLTE1MzMsNyArMTU0
Niw3IEBAIGRlc2NyaWJlKCdCdWlsZGJvdFN5bmNlcicsICgpID0+IHsKICAgICAgICAgfSk7CiAK
ICAgICAgICAgaXQoJ3Nob3VsZCBub3Qgc2NoZWR1bGUgYSBidWlsZCBpZiBhIG5ldyByZXF1ZXN0
IGhhZCBiZWVuIHN1Ym1pdHRlZCB0byB0aGUgc2FtZSBzbGF2ZScsIChkb25lKSA9PiB7Ci0gICAg
ICAgICAgICBsZXQgc3luY2VyID0gQnVpbGRib3RTeW5jZXIuX2xvYWRDb25maWcoTW9ja1JlbW90
ZUFQSSwgc2FtcGxlaU9TQ29uZmlnKCkpWzFdOworICAgICAgICAgICAgbGV0IHN5bmNlciA9IEJ1
aWxkYm90U3luY2VyLl9sb2FkQ29uZmlnKE1vY2tSZW1vdGVBUEksIHNhbXBsZWlPU0NvbmZpZygp
LCBidWlsZGVyTmFtZVRvSURNYXAoKSlbMV07CiAKICAgICAgICAgICAgIHB1bGxCdWlsZGJvdFdp
dGhBc3NlcnRpb24oc3luY2VyLCBbXSwge30pLnRoZW4oKCkgPT4gewogICAgICAgICAgICAgICAg
IGxldCByZXF1ZXN0ID0gY3JlYXRlU2FtcGxlQnVpbGRSZXF1ZXN0KE1vY2tNb2RlbHMuaXBhZCwg
TW9ja01vZGVscy5zcGVlZG9tZXRlcik7CkBAIC0xNTUxLDcgKzE1NjQsNyBAQCBkZXNjcmliZSgn
QnVpbGRib3RTeW5jZXInLCAoKSA9PiB7CiAgICAgICAgIH0pOwogCiAgICAgICAgIGl0KCdzaG91
bGQgc2NoZWR1bGUgYSBidWlsZCBpZiBhIG5ldyByZXF1ZXN0IGhhZCBiZWVuIHN1Ym1pdHRlZCB0
byBhbm90aGVyIHNsYXZlJywgKCkgPT4gewotICAgICAgICAgICAgbGV0IHN5bmNlciA9IEJ1aWxk
Ym90U3luY2VyLl9sb2FkQ29uZmlnKE1vY2tSZW1vdGVBUEksIHNhbXBsZWlPU0NvbmZpZygpKVsx
XTsKKyAgICAgICAgICAgIGxldCBzeW5jZXIgPSBCdWlsZGJvdFN5bmNlci5fbG9hZENvbmZpZyhN
b2NrUmVtb3RlQVBJLCBzYW1wbGVpT1NDb25maWcoKSwgYnVpbGRlck5hbWVUb0lETWFwKCkpWzFd
OwogCiAgICAgICAgICAgICByZXR1cm4gcHVsbEJ1aWxkYm90V2l0aEFzc2VydGlvbihzeW5jZXIs
IFtdLCB7fSkudGhlbigoKSA9PiB7CiAgICAgICAgICAgICAgICAgbGV0IHJlcXVlc3QgPSBjcmVh
dGVTYW1wbGVCdWlsZFJlcXVlc3QoTW9ja01vZGVscy5pcGFkLCBNb2NrTW9kZWxzLnNwZWVkb21l
dGVyKTsKQEAgLTE1NjQsNyArMTU3Nyw3IEBAIGRlc2NyaWJlKCdCdWlsZGJvdFN5bmNlcicsICgp
ID0+IHsKICAgICAgICAgfSk7CiAKICAgICAgICAgaXQoJ3Nob3VsZCBub3Qgc2NoZWR1bGUgYSBi
dWlsZCBpZiBhIG5ldyByZXF1ZXN0IGhhZCBiZWVuIHN1Ym1pdHRlZCB0byB0aGUgc2FtZSBidWls
ZGVyIHdpdGhvdXQgc2xhdmVMaXN0JywgKCkgPT4gewotICAgICAgICAgICAgbGV0IHN5bmNlciA9
IEJ1aWxkYm90U3luY2VyLl9sb2FkQ29uZmlnKE1vY2tSZW1vdGVBUEksIHNtYWxsQ29uZmlndXJh
dGlvbigpKVswXTsKKyAgICAgICAgICAgIGxldCBzeW5jZXIgPSBCdWlsZGJvdFN5bmNlci5fbG9h
ZENvbmZpZyhNb2NrUmVtb3RlQVBJLCBzbWFsbENvbmZpZ3VyYXRpb24oKSwgYnVpbGRlck5hbWVU
b0lETWFwKCkpWzBdOwogCiAgICAgICAgICAgICByZXR1cm4gcHVsbEJ1aWxkYm90V2l0aEFzc2Vy
dGlvbihzeW5jZXIsIFtdLCB7fSkudGhlbigoKSA9PiB7CiAgICAgICAgICAgICAgICAgbGV0IHJl
cXVlc3QgPSBjcmVhdGVTYW1wbGVCdWlsZFJlcXVlc3QoTW9ja01vZGVscy5zb21lUGxhdGZvcm0s
IE1vY2tNb2RlbHMuc29tZVRlc3QpOwo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>326645</attachid>
            <date>2017-11-10 15:52:25 -0800</date>
            <delta_ts>2017-11-15 11:29:45 -0800</delta_ts>
            <desc>Updated patch</desc>
            <filename>patch_buildbot_perf_builderNameToIDMap_v3</filename>
            <type>text/plain</type>
            <size>179884</size>
            <attacher name="Aakash Jain">aakash_jain</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
V2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL0NoYW5nZUxvZwkocmV2aXNpb24gMjI0NzA4KQorKysg
V2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwz
ICsxLDI4IEBACisyMDE3LTExLTEwICBBYWthc2ggSmFpbiAgPGFha2FzaF9qYWluQGFwcGxlLmNv
bT4KKworICAgICAgICBBZGQgc3VwcG9ydCBmb3IgYnVpbGRlck5hbWVUb0lETWFwIGluIEJ1aWxk
Ym90U3luY2VyCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD0xNzY1MjYKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAg
ICAqIHRvb2xzL2pzL2J1aWxkYm90LXN5bmNlci5qczoKKyAgICAgICAgKEJ1aWxkYm90U3luY2Vy
Ll9sb2FkQ29uZmlnKTogQWRkZWQgYnVpbGRlck5hbWVUb0lETWFwIHBhcmFtZXRlci4gSXQgd291
bGQgYmUgdXNlZCBsYXRlciBvbi4KKyAgICAgICAgKEJ1aWxkYm90U3luY2VyLl9yZXNvbHZlQnVp
bGRlcnNXaXRoUGxhdGZvcm1zKTogRGl0dG8uCisgICAgICAgIChCdWlsZGJvdFN5bmNlci5fdmFs
aWRhdGVBbmRNZXJnZUNvbmZpZyk6IEFkZGVkIGJ1aWxkZXJJRCBhcyBhIHZhbGlkIGNvbmZpZyBw
YXJhbWV0ZXIuCisgICAgICAgICogdG9vbHMvanMvYnVpbGRib3QtdHJpZ2dlcmFibGUuanM6Cisg
ICAgICAgIChCdWlsZGJvdFRyaWdnZXJhYmxlLnByb3RvdHlwZS5nZXRCdWlsZGVyTmFtZVRvSURN
YXApOiBNZXRob2QgdG8gZmV0Y2ggQnVpbGRlck5hbWVUb0lETWFwIGZyb20gQnVpbGRib3QgMC45
LgorICAgICAgICAoQnVpbGRib3RUcmlnZ2VyYWJsZS5wcm90b3R5cGUuZ2V0QnVpbGRlck5hbWVU
b0lETWFwRGVwcmVjYXRlZCk6IE1ldGhvZCB0byBmZXRjaCBCdWlsZGVyTmFtZVRvSURNYXAgZnJv
bSBCdWlsZGJvdCAwLjguCisgICAgICAgIChCdWlsZGJvdFRyaWdnZXJhYmxlLnByb3RvdHlwZS5p
bml0U3luY2Vycyk6IFVwZGF0ZWQgdG8gdXNlIGdldEJ1aWxkZXJOYW1lVG9JRE1hcC4KKyAgICAg
ICAgKiB1bml0LXRlc3RzL2J1aWxkYm90LXN5bmNlci10ZXN0cy5qczogVXBkYXRlZCB1bml0LXRl
c3RzLgorICAgICAgICAqIHNlcnZlci10ZXN0cy9yZXNvdXJjZXMvbW9jay1kYXRhLmpzOgorICAg
ICAgICAoTW9ja0RhdGEuYnVpbGRib3QwOEJ1aWxkZXJzVVJMKTogVVJMIGZvciBmZXRjaGluZyBC
dWlsZGVycyBsaXN0LgorICAgICAgICAoTW9ja0RhdGEuYnVpbGRib3QwOUJ1aWxkZXJzVVJMKTog
RGl0dG8gZm9yIEJ1aWxkYm90IDAuOQorICAgICAgICAoTW9ja0RhdGEubW9ja0J1aWxkYm90MDhC
dWlsZGVycyk6IFNhbXBsZSBidWlsZGVycyBkYXRhIGZvciBCdWlsZGJvdCAwLjgKKyAgICAgICAg
KE1vY2tEYXRhLm1vY2tCdWlsZGJvdDA5QnVpbGRlcnMpOiBEaXR0byBmb3IgQnVpbGRib3QgMC45
CisgICAgICAgICogc2VydmVyLXRlc3RzL3Rvb2xzLWJ1aWxkYm90LXRyaWdnZXJhYmxlLXRlc3Rz
LmpzOiBVcGRhdGVkIHRlc3RzIHRvIGhhbmRsZSBuZXdseSBhZGRlZCBwcm9taXNlIGZvciBmZXRj
aGluZyBidWlsZGVycworICAgICAgICBsaXN0IGZyb20gQnVpbGRib3QuIENvcnJlc3BvbmRpbmds
eSwgYWxsIHRoZSBzdWJzZXF1ZW50IHJlcXVlc3RzIGluZGV4IGluY3JlYXNlZCBieSAxLgorICAg
ICAgICAqIHNlcnZlci10ZXN0cy90b29scy1zeW5jLWJ1aWxkYm90LWludGVncmF0aW9uLXRlc3Rz
LmpzOiBEaXR0by4KKwogMjAxNy0xMS0wMiAgRGV3ZWkgWmh1ICA8ZGV3ZWlfemh1QGFwcGxlLmNv
bT4KIAogICAgICAgICBBZGQgcGxhdGZvcm0gYXJndW1lbnQgZm9yIHN5bmNpbmcgc2NyaXB0LgpJ
bmRleDogV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL3NlcnZlci10ZXN0cy90b29scy1idWlsZGJv
dC10cmlnZ2VyYWJsZS10ZXN0cy5qcwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJzaXRlcy9wZXJmLndlYmtp
dC5vcmcvc2VydmVyLXRlc3RzL3Rvb2xzLWJ1aWxkYm90LXRyaWdnZXJhYmxlLXRlc3RzLmpzCShy
ZXZpc2lvbiAyMjQ3MDgpCisrKyBXZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvc2VydmVyLXRlc3Rz
L3Rvb2xzLWJ1aWxkYm90LXRyaWdnZXJhYmxlLXRlc3RzLmpzCSh3b3JraW5nIGNvcHkpCkBAIC0z
Niw2ICszNiw3IEBAIGRlc2NyaWJlKCdCdWlsZGJvdFRyaWdnZXJhYmxlJywgZnVuY3Rpb24KICAg
ICAgICAgICAgICAgICBjb25zdCBzbGF2ZUluZm8gPSB7bmFtZTogJ3N5bmMtc2xhdmUnLCBwYXNz
d29yZDogJ3Bhc3N3b3JkJ307CiAgICAgICAgICAgICAgICAgY29uc3QgdHJpZ2dlcmFibGUgPSBu
ZXcgQnVpbGRib3RUcmlnZ2VyYWJsZShjb25maWcsIFRlc3RTZXJ2ZXIucmVtb3RlQVBJKCksIE1v
Y2tSZW1vdGVBUEksIHNsYXZlSW5mbywgbG9nZ2VyKTsKICAgICAgICAgICAgICAgICBzeW5jUHJv
bWlzZSA9IHRyaWdnZXJhYmxlLmluaXRTeW5jZXJzKCkudGhlbigoKSA9PiB0cmlnZ2VyYWJsZS5z
eW5jT25jZSgpKTsKKyAgICAgICAgICAgICAgICBhc3NlcnRSZXF1ZXN0QW5kUmVzb2x2ZShNb2Nr
UmVtb3RlQVBJLnJlcXVlc3RzWzBdLCAnR0VUJywgTW9ja0RhdGEuYnVpbGRib3QwOEJ1aWxkZXJz
VVJMKCksIE1vY2tEYXRhLm1vY2tCdWlsZGJvdDA4QnVpbGRlcnMoKSk7CiAgICAgICAgICAgICAg
ICAgcmV0dXJuIE1vY2tSZW1vdGVBUEkud2FpdEZvclJlcXVlc3QoKTsKICAgICAgICAgICAgIH0p
LnRoZW4oKCkgPT4gewogICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChCdWlsZFJlcXVlc3Qu
YWxsKCkubGVuZ3RoLCA0KTsKQEAgLTQzLDMwICs0NCwzMCBAQCBkZXNjcmliZSgnQnVpbGRib3RU
cmlnZ2VyYWJsZScsIGZ1bmN0aW9uCiAgICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKEJ1aWxk
UmVxdWVzdC5maW5kQnlJZCg3MDEpLnN0YXR1cygpLCAncnVubmluZycpOwogICAgICAgICAgICAg
ICAgIGFzc2VydC5lcXVhbChCdWlsZFJlcXVlc3QuZmluZEJ5SWQoNzAyKS5zdGF0dXMoKSwgJ3Bl
bmRpbmcnKTsKICAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoQnVpbGRSZXF1ZXN0LmZpbmRC
eUlkKDcwMykuc3RhdHVzKCksICdwZW5kaW5nJyk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVx
dWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMF0ubWV0aG9kLCAnR0VUJyk7Ci0gICAgICAgICAg
ICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMF0udXJsLCAnL2pzb24v
YnVpbGRlcnMvc29tZS1idWlsZGVyLTEvcGVuZGluZ0J1aWxkcycpOwotICAgICAgICAgICAgICAg
IE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMF0ucmVzb2x2ZShbXSk7Ci0gICAgICAgICAgICAgICAg
cmV0dXJuIE1vY2tSZW1vdGVBUEkud2FpdEZvclJlcXVlc3QoKTsKLSAgICAgICAgICAgIH0pLnRo
ZW4oKCkgPT4gewogICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJl
cXVlc3RzWzFdLm1ldGhvZCwgJ0dFVCcpOwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChN
b2NrUmVtb3RlQVBJLnJlcXVlc3RzWzFdLnVybCwgJy9qc29uL2J1aWxkZXJzL3NvbWUtYnVpbGRl
ci0xL2J1aWxkcy8/c2VsZWN0PS0xJnNlbGVjdD0tMicpOwotICAgICAgICAgICAgICAgIE1vY2tS
ZW1vdGVBUEkucmVxdWVzdHNbMV0ucmVzb2x2ZSh7Wy0xXTogTW9ja0RhdGEucnVubmluZ0J1aWxk
KCksIFstMl06IE1vY2tEYXRhLmZpbmlzaGVkQnVpbGQoKX0pOworICAgICAgICAgICAgICAgIGFz
c2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzFdLnVybCwgJy9qc29uL2J1aWxkZXJz
L3NvbWUtYnVpbGRlci0xL3BlbmRpbmdCdWlsZHMnKTsKKyAgICAgICAgICAgICAgICBNb2NrUmVt
b3RlQVBJLnJlcXVlc3RzWzFdLnJlc29sdmUoW10pOwogICAgICAgICAgICAgICAgIHJldHVybiBN
b2NrUmVtb3RlQVBJLndhaXRGb3JSZXF1ZXN0KCk7CiAgICAgICAgICAgICB9KS50aGVuKCgpID0+
IHsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1sy
XS5tZXRob2QsICdQT1NUJyk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1v
dGVBUEkucmVxdWVzdHNbMl0udXJsLCAnL2J1aWxkZXJzL3NvbWUtYnVpbGRlci0xL2ZvcmNlJyk7
Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3Rz
WzJdLmRhdGEsIHsnd2snOiAnMTkxNjIyJywgJ29zJzogJzEwLjExIDE1QTI4NCcsICdidWlsZC1y
ZXF1ZXN0LWlkJzogJzcwMid9KTsKLSAgICAgICAgICAgICAgICBNb2NrUmVtb3RlQVBJLnJlcXVl
c3RzWzJdLnJlc29sdmUoJ09LJyk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tS
ZW1vdGVBUEkucmVxdWVzdHNbMl0ubWV0aG9kLCAnR0VUJyk7CisgICAgICAgICAgICAgICAgYXNz
ZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMl0udXJsLCAnL2pzb24vYnVpbGRlcnMv
c29tZS1idWlsZGVyLTEvYnVpbGRzLz9zZWxlY3Q9LTEmc2VsZWN0PS0yJyk7CisgICAgICAgICAg
ICAgICAgTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1syXS5yZXNvbHZlKHtbLTFdOiBNb2NrRGF0YS5y
dW5uaW5nQnVpbGQoKSwgWy0yXTogTW9ja0RhdGEuZmluaXNoZWRCdWlsZCgpfSk7CiAgICAgICAg
ICAgICAgICAgcmV0dXJuIE1vY2tSZW1vdGVBUEkud2FpdEZvclJlcXVlc3QoKTsKICAgICAgICAg
ICAgIH0pLnRoZW4oKCkgPT4gewotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVt
b3RlQVBJLnJlcXVlc3RzWzNdLm1ldGhvZCwgJ0dFVCcpOwotICAgICAgICAgICAgICAgIGFzc2Vy
dC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzNdLnVybCwgJy9qc29uL2J1aWxkZXJzL3Nv
bWUtYnVpbGRlci0xL3BlbmRpbmdCdWlsZHMnKTsKLSAgICAgICAgICAgICAgICBNb2NrUmVtb3Rl
QVBJLnJlcXVlc3RzWzNdLnJlc29sdmUoW01vY2tEYXRhLnBlbmRpbmdCdWlsZCgpXSkKKyAgICAg
ICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1szXS5tZXRob2Qs
ICdQT1NUJyk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVx
dWVzdHNbM10udXJsLCAnL2J1aWxkZXJzL3NvbWUtYnVpbGRlci0xL2ZvcmNlJyk7CisgICAgICAg
ICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzNdLmRhdGEs
IHsnd2snOiAnMTkxNjIyJywgJ29zJzogJzEwLjExIDE1QTI4NCcsICdidWlsZC1yZXF1ZXN0LWlk
JzogJzcwMid9KTsKKyAgICAgICAgICAgICAgICBNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzNdLnJl
c29sdmUoJ09LJyk7CiAgICAgICAgICAgICAgICAgcmV0dXJuIE1vY2tSZW1vdGVBUEkud2FpdEZv
clJlcXVlc3QoKTsKICAgICAgICAgICAgIH0pLnRoZW4oKCkgPT4gewogICAgICAgICAgICAgICAg
IGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzRdLm1ldGhvZCwgJ0dFVCcpOwot
ICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzRdLnVy
bCwgJy9qc29uL2J1aWxkZXJzL3NvbWUtYnVpbGRlci0xL2J1aWxkcy8/c2VsZWN0PS0xJnNlbGVj
dD0tMicpOwotICAgICAgICAgICAgICAgIE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbNF0ucmVzb2x2
ZSh7Wy0xXTogTW9ja0RhdGEucnVubmluZ0J1aWxkKCksIFstMl06IE1vY2tEYXRhLmZpbmlzaGVk
QnVpbGQoKX0pOworICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJl
cXVlc3RzWzRdLnVybCwgJy9qc29uL2J1aWxkZXJzL3NvbWUtYnVpbGRlci0xL3BlbmRpbmdCdWls
ZHMnKTsKKyAgICAgICAgICAgICAgICBNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzRdLnJlc29sdmUo
W01vY2tEYXRhLnBlbmRpbmdCdWlsZCgpXSkKKyAgICAgICAgICAgICAgICByZXR1cm4gTW9ja1Jl
bW90ZUFQSS53YWl0Rm9yUmVxdWVzdCgpOworICAgICAgICAgICAgfSkudGhlbigoKSA9PiB7Cisg
ICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbNV0ubWV0
aG9kLCAnR0VUJyk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEku
cmVxdWVzdHNbNV0udXJsLCAnL2pzb24vYnVpbGRlcnMvc29tZS1idWlsZGVyLTEvYnVpbGRzLz9z
ZWxlY3Q9LTEmc2VsZWN0PS0yJyk7CisgICAgICAgICAgICAgICAgTW9ja1JlbW90ZUFQSS5yZXF1
ZXN0c1s1XS5yZXNvbHZlKHtbLTFdOiBNb2NrRGF0YS5ydW5uaW5nQnVpbGQoKSwgWy0yXTogTW9j
a0RhdGEuZmluaXNoZWRCdWlsZCgpfSk7CiAgICAgICAgICAgICAgICAgcmV0dXJuIHN5bmNQcm9t
aXNlOwogICAgICAgICAgICAgfSkudGhlbigoKSA9PiB7CiAgICAgICAgICAgICAgICAgcmV0dXJu
IEJ1aWxkUmVxdWVzdC5mZXRjaEZvclRyaWdnZXJhYmxlKE1vY2tEYXRhLm1vY2tUZXN0U3luY0Nv
bmZpZ1dpdGhTaW5nbGVCdWlsZGVyKCkudHJpZ2dlcmFibGVOYW1lKTsKQEAgLTkwLDI2ICs5MSwy
NyBAQCBkZXNjcmliZSgnQnVpbGRib3RUcmlnZ2VyYWJsZScsIGZ1bmN0aW9uCiAgICAgICAgICAg
ICAgICAgbGV0IHNsYXZlSW5mbyA9IHtuYW1lOiAnc3luYy1zbGF2ZScsIHBhc3N3b3JkOiAncGFz
c3dvcmQnfTsKICAgICAgICAgICAgICAgICBsZXQgdHJpZ2dlcmFibGUgPSBuZXcgQnVpbGRib3RU
cmlnZ2VyYWJsZShjb25maWcsIFRlc3RTZXJ2ZXIucmVtb3RlQVBJKCksIE1vY2tSZW1vdGVBUEks
IHNsYXZlSW5mbywgbG9nZ2VyKTsKICAgICAgICAgICAgICAgICBzeW5jUHJvbWlzZSA9IHRyaWdn
ZXJhYmxlLmluaXRTeW5jZXJzKCkudGhlbigoKSA9PiB0cmlnZ2VyYWJsZS5zeW5jT25jZSgpKTsK
LSAgICAgICAgICAgICAgICByZXR1cm4gTW9ja1JlbW90ZUFQSS53YWl0Rm9yUmVxdWVzdCgpOwot
ICAgICAgICAgICAgfSkudGhlbigoKSA9PiB7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFs
KE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMF0ubWV0aG9kLCAnR0VUJyk7Ci0gICAgICAgICAgICAg
ICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMF0udXJsLCAnL2pzb24vYnVp
bGRlcnMvc29tZS1idWlsZGVyLTEvcGVuZGluZ0J1aWxkcycpOwotICAgICAgICAgICAgICAgIE1v
Y2tSZW1vdGVBUEkucmVxdWVzdHNbMF0ucmVzb2x2ZShbTW9ja0RhdGEucGVuZGluZ0J1aWxkKCld
KTsKKyAgICAgICAgICAgICAgICBhc3NlcnRSZXF1ZXN0QW5kUmVzb2x2ZShNb2NrUmVtb3RlQVBJ
LnJlcXVlc3RzWzBdLCAnR0VUJywgTW9ja0RhdGEuYnVpbGRib3QwOEJ1aWxkZXJzVVJMKCksIE1v
Y2tEYXRhLm1vY2tCdWlsZGJvdDA4QnVpbGRlcnMoKSk7CiAgICAgICAgICAgICAgICAgcmV0dXJu
IE1vY2tSZW1vdGVBUEkud2FpdEZvclJlcXVlc3QoKTsKICAgICAgICAgICAgIH0pLnRoZW4oKCkg
PT4gewogICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3Rz
WzFdLm1ldGhvZCwgJ0dFVCcpOwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVt
b3RlQVBJLnJlcXVlc3RzWzFdLnVybCwgJy9qc29uL2J1aWxkZXJzL3NvbWUtYnVpbGRlci0xL2J1
aWxkcy8/c2VsZWN0PS0xJnNlbGVjdD0tMicpOwotICAgICAgICAgICAgICAgIE1vY2tSZW1vdGVB
UEkucmVxdWVzdHNbMV0ucmVzb2x2ZSh7Wy0xXTogTW9ja0RhdGEucnVubmluZ0J1aWxkKCksIFst
Ml06IE1vY2tEYXRhLmZpbmlzaGVkQnVpbGQoKX0pOworICAgICAgICAgICAgICAgIGFzc2VydC5l
cXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzFdLnVybCwgJy9qc29uL2J1aWxkZXJzL3NvbWUt
YnVpbGRlci0xL3BlbmRpbmdCdWlsZHMnKTsKKyAgICAgICAgICAgICAgICBNb2NrUmVtb3RlQVBJ
LnJlcXVlc3RzWzFdLnJlc29sdmUoW01vY2tEYXRhLnBlbmRpbmdCdWlsZCgpXSk7CiAgICAgICAg
ICAgICAgICAgcmV0dXJuIE1vY2tSZW1vdGVBUEkud2FpdEZvclJlcXVlc3QoKTsKICAgICAgICAg
ICAgIH0pLnRoZW4oKCkgPT4gewogICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVt
b3RlQVBJLnJlcXVlc3RzWzJdLm1ldGhvZCwgJ0dFVCcpOwotICAgICAgICAgICAgICAgIGFzc2Vy
dC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzJdLnVybCwgJy9qc29uL2J1aWxkZXJzL3Nv
bWUtYnVpbGRlci0xL3BlbmRpbmdCdWlsZHMnKTsKLSAgICAgICAgICAgICAgICBNb2NrUmVtb3Rl
QVBJLnJlcXVlc3RzWzJdLnJlc29sdmUoW01vY2tEYXRhLnBlbmRpbmdCdWlsZCgpXSkKKyAgICAg
ICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1syXS51cmwsICcv
anNvbi9idWlsZGVycy9zb21lLWJ1aWxkZXItMS9idWlsZHMvP3NlbGVjdD0tMSZzZWxlY3Q9LTIn
KTsKKyAgICAgICAgICAgICAgICBNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzJdLnJlc29sdmUoe1st
MV06IE1vY2tEYXRhLnJ1bm5pbmdCdWlsZCgpLCBbLTJdOiBNb2NrRGF0YS5maW5pc2hlZEJ1aWxk
KCl9KTsKICAgICAgICAgICAgICAgICByZXR1cm4gTW9ja1JlbW90ZUFQSS53YWl0Rm9yUmVxdWVz
dCgpOwogICAgICAgICAgICAgfSkudGhlbigoKSA9PiB7CiAgICAgICAgICAgICAgICAgYXNzZXJ0
LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbM10ubWV0aG9kLCAnR0VUJyk7Ci0gICAgICAg
ICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbM10udXJsLCAnL2pz
b24vYnVpbGRlcnMvc29tZS1idWlsZGVyLTEvYnVpbGRzLz9zZWxlY3Q9LTEmc2VsZWN0PS0yJyk7
Ci0gICAgICAgICAgICAgICAgTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1szXS5yZXNvbHZlKHtbLTFd
OiBNb2NrRGF0YS5ydW5uaW5nQnVpbGQoKSwgWy0yXTogTW9ja0RhdGEuZmluaXNoZWRCdWlsZCgp
fSk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNb
M10udXJsLCAnL2pzb24vYnVpbGRlcnMvc29tZS1idWlsZGVyLTEvcGVuZGluZ0J1aWxkcycpOwor
ICAgICAgICAgICAgICAgIE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbM10ucmVzb2x2ZShbTW9ja0Rh
dGEucGVuZGluZ0J1aWxkKCldKQorICAgICAgICAgICAgICAgIHJldHVybiBNb2NrUmVtb3RlQVBJ
LndhaXRGb3JSZXF1ZXN0KCk7CisgICAgICAgICAgICB9KS50aGVuKCgpID0+IHsKKyAgICAgICAg
ICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1s0XS5tZXRob2QsICdH
RVQnKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0
c1s0XS51cmwsICcvanNvbi9idWlsZGVycy9zb21lLWJ1aWxkZXItMS9idWlsZHMvP3NlbGVjdD0t
MSZzZWxlY3Q9LTInKTsKKyAgICAgICAgICAgICAgICBNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzRd
LnJlc29sdmUoe1stMV06IE1vY2tEYXRhLnJ1bm5pbmdCdWlsZCgpLCBbLTJdOiBNb2NrRGF0YS5m
aW5pc2hlZEJ1aWxkKCl9KTsKICAgICAgICAgICAgICAgICByZXR1cm4gc3luY1Byb21pc2U7CiAg
ICAgICAgICAgICB9KS50aGVuKCgpID0+IHsKICAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwo
QnVpbGRSZXF1ZXN0LmFsbCgpLmxlbmd0aCwgNCk7CkBAIC0xMzgsNDkgKzE0MCw1MCBAQCBkZXNj
cmliZSgnQnVpbGRib3RUcmlnZ2VyYWJsZScsIGZ1bmN0aW9uCiAgICAgICAgICAgICAgICAgY29u
c3Qgc2xhdmVJbmZvID0ge25hbWU6ICdzeW5jLXNsYXZlJywgcGFzc3dvcmQ6ICdwYXNzd29yZCd9
OwogICAgICAgICAgICAgICAgIGNvbnN0IHRyaWdnZXJhYmxlID0gbmV3IEJ1aWxkYm90VHJpZ2dl
cmFibGUoY29uZmlnLCBUZXN0U2VydmVyLnJlbW90ZUFQSSgpLCBNb2NrUmVtb3RlQVBJLCBzbGF2
ZUluZm8sIGxvZ2dlcik7CiAgICAgICAgICAgICAgICAgc3luY1Byb21pc2UgPSB0cmlnZ2VyYWJs
ZS5pbml0U3luY2VycygpLnRoZW4oKCkgPT4gdHJpZ2dlcmFibGUuc3luY09uY2UoKSk7CisgICAg
ICAgICAgICAgICAgYXNzZXJ0UmVxdWVzdEFuZFJlc29sdmUoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0
c1swXSwgJ0dFVCcsIE1vY2tEYXRhLmJ1aWxkYm90MDhCdWlsZGVyc1VSTCgpLCBNb2NrRGF0YS5t
b2NrQnVpbGRib3QwOEJ1aWxkZXJzKCkpOwogICAgICAgICAgICAgICAgIHJldHVybiBNb2NrUmVt
b3RlQVBJLndhaXRGb3JSZXF1ZXN0KCk7CiAgICAgICAgICAgICB9KS50aGVuKCgpID0+IHsKLSAg
ICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0cy5sZW5ndGgs
IDIpOwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3Rz
WzBdLm1ldGhvZCwgJ0dFVCcpOwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVt
b3RlQVBJLnJlcXVlc3RzWzBdLnVybCwgJy9qc29uL2J1aWxkZXJzL3NvbWUtYnVpbGRlci0xL3Bl
bmRpbmdCdWlsZHMnKTsKLSAgICAgICAgICAgICAgICBNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzBd
LnJlc29sdmUoW01vY2tEYXRhLnBlbmRpbmdCdWlsZCh7YnVpbGRSZXF1ZXN0SWQ6IDk5OX0pXSk7
CisgICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHMubGVu
Z3RoLCAzKTsKICAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1
ZXN0c1sxXS5tZXRob2QsICdHRVQnKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9j
a1JlbW90ZUFQSS5yZXF1ZXN0c1sxXS51cmwsICcvanNvbi9idWlsZGVycy9zb21lJTIwYnVpbGRl
ciUyMDIvcGVuZGluZ0J1aWxkcycpOwotICAgICAgICAgICAgICAgIE1vY2tSZW1vdGVBUEkucmVx
dWVzdHNbMV0ucmVzb2x2ZShbXSk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tS
ZW1vdGVBUEkucmVxdWVzdHNbMV0udXJsLCAnL2pzb24vYnVpbGRlcnMvc29tZS1idWlsZGVyLTEv
cGVuZGluZ0J1aWxkcycpOworICAgICAgICAgICAgICAgIE1vY2tSZW1vdGVBUEkucmVxdWVzdHNb
MV0ucmVzb2x2ZShbTW9ja0RhdGEucGVuZGluZ0J1aWxkKHtidWlsZFJlcXVlc3RJZDogOTk5fSld
KTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1sy
XS5tZXRob2QsICdHRVQnKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90
ZUFQSS5yZXF1ZXN0c1syXS51cmwsICcvanNvbi9idWlsZGVycy9zb21lJTIwYnVpbGRlciUyMDIv
cGVuZGluZ0J1aWxkcycpOworICAgICAgICAgICAgICAgIE1vY2tSZW1vdGVBUEkucmVxdWVzdHNb
Ml0ucmVzb2x2ZShbXSk7CiAgICAgICAgICAgICAgICAgcmV0dXJuIE1vY2tSZW1vdGVBUEkud2Fp
dEZvclJlcXVlc3QoKTsKICAgICAgICAgICAgIH0pLnRoZW4oKCkgPT4gewotICAgICAgICAgICAg
ICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzLmxlbmd0aCwgNCk7Ci0gICAg
ICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMl0ubWV0aG9k
LCAnR0VUJyk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVx
dWVzdHNbMl0udXJsLCAnL2pzb24vYnVpbGRlcnMvc29tZS1idWlsZGVyLTEvYnVpbGRzLz9zZWxl
Y3Q9LTEmc2VsZWN0PS0yJyk7Ci0gICAgICAgICAgICAgICAgTW9ja1JlbW90ZUFQSS5yZXF1ZXN0
c1syXS5yZXNvbHZlKHt9KTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90
ZUFQSS5yZXF1ZXN0cy5sZW5ndGgsIDUpOwogICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChN
b2NrUmVtb3RlQVBJLnJlcXVlc3RzWzNdLm1ldGhvZCwgJ0dFVCcpOwotICAgICAgICAgICAgICAg
IGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzNdLnVybCwgJy9qc29uL2J1aWxk
ZXJzL3NvbWUlMjBidWlsZGVyJTIwMi9idWlsZHMvP3NlbGVjdD0tMSZzZWxlY3Q9LTInKTsKKyAg
ICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1szXS51cmws
ICcvanNvbi9idWlsZGVycy9zb21lLWJ1aWxkZXItMS9idWlsZHMvP3NlbGVjdD0tMSZzZWxlY3Q9
LTInKTsKICAgICAgICAgICAgICAgICBNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzNdLnJlc29sdmUo
e30pOworICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3Rz
WzRdLm1ldGhvZCwgJ0dFVCcpOworICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVt
b3RlQVBJLnJlcXVlc3RzWzRdLnVybCwgJy9qc29uL2J1aWxkZXJzL3NvbWUlMjBidWlsZGVyJTIw
Mi9idWlsZHMvP3NlbGVjdD0tMSZzZWxlY3Q9LTInKTsKKyAgICAgICAgICAgICAgICBNb2NrUmVt
b3RlQVBJLnJlcXVlc3RzWzRdLnJlc29sdmUoe30pOwogICAgICAgICAgICAgICAgIHJldHVybiBN
b2NrUmVtb3RlQVBJLndhaXRGb3JSZXF1ZXN0KCk7CiAgICAgICAgICAgICB9KS50aGVuKCgpID0+
IHsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0cy5s
ZW5ndGgsIDUpOwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJl
cXVlc3RzWzRdLm1ldGhvZCwgJ1BPU1QnKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwo
TW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1s0XS51cmwsICcvYnVpbGRlcnMvc29tZSUyMGJ1aWxkZXIl
MjAyL2ZvcmNlJyk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChNb2NrUmVtb3Rl
QVBJLnJlcXVlc3RzWzRdLmRhdGEsIHsnd2snOiAnMTkxNjIyJywgJ29zJzogJzEwLjExIDE1QTI4
NCcsICdidWlsZC1yZXF1ZXN0LWlkJzogJzcwMCd9KTsKLSAgICAgICAgICAgICAgICBNb2NrUmVt
b3RlQVBJLnJlcXVlc3RzWzRdLnJlc29sdmUoJ09LJyk7CisgICAgICAgICAgICAgICAgYXNzZXJ0
LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHMubGVuZ3RoLCA2KTsKKyAgICAgICAgICAgICAg
ICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1s1XS5tZXRob2QsICdQT1NUJyk7
CisgICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbNV0u
dXJsLCAnL2J1aWxkZXJzL3NvbWUlMjBidWlsZGVyJTIwMi9mb3JjZScpOworICAgICAgICAgICAg
ICAgIGFzc2VydC5kZWVwRXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1s1XS5kYXRhLCB7J3dr
JzogJzE5MTYyMicsICdvcyc6ICcxMC4xMSAxNUEyODQnLCAnYnVpbGQtcmVxdWVzdC1pZCc6ICc3
MDAnfSk7CisgICAgICAgICAgICAgICAgTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1s1XS5yZXNvbHZl
KCdPSycpOwogICAgICAgICAgICAgICAgIHJldHVybiBNb2NrUmVtb3RlQVBJLndhaXRGb3JSZXF1
ZXN0KCk7CiAgICAgICAgICAgICB9KS50aGVuKCgpID0+IHsKLSAgICAgICAgICAgICAgICBhc3Nl
cnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0cy5sZW5ndGgsIDcpOwotICAgICAgICAgICAg
ICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzVdLm1ldGhvZCwgJ0dFVCcp
OwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzVd
LnVybCwgJy9qc29uL2J1aWxkZXJzL3NvbWUtYnVpbGRlci0xL3BlbmRpbmdCdWlsZHMnKTsKLSAg
ICAgICAgICAgICAgICBNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzVdLnJlc29sdmUoW01vY2tEYXRh
LnBlbmRpbmdCdWlsZCh7YnVpbGRSZXF1ZXN0SWQ6IDk5OX0pXSk7CisgICAgICAgICAgICAgICAg
YXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHMubGVuZ3RoLCA4KTsKICAgICAgICAg
ICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1s2XS5tZXRob2QsICdH
RVQnKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0
c1s2XS51cmwsICcvanNvbi9idWlsZGVycy9zb21lJTIwYnVpbGRlciUyMDIvcGVuZGluZ0J1aWxk
cycpOwotICAgICAgICAgICAgICAgIE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbNl0ucmVzb2x2ZShb
TW9ja0RhdGEucGVuZGluZ0J1aWxkKHtidWlsZGVyOiAnc29tZSBidWlsZGVyIDInLCBidWlsZFJl
cXVlc3RJZDogNzAwfSldKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90
ZUFQSS5yZXF1ZXN0c1s2XS51cmwsICcvanNvbi9idWlsZGVycy9zb21lLWJ1aWxkZXItMS9wZW5k
aW5nQnVpbGRzJyk7CisgICAgICAgICAgICAgICAgTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1s2XS5y
ZXNvbHZlKFtNb2NrRGF0YS5wZW5kaW5nQnVpbGQoe2J1aWxkUmVxdWVzdElkOiA5OTl9KV0pOwor
ICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzddLm1l
dGhvZCwgJ0dFVCcpOworICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJ
LnJlcXVlc3RzWzddLnVybCwgJy9qc29uL2J1aWxkZXJzL3NvbWUlMjBidWlsZGVyJTIwMi9wZW5k
aW5nQnVpbGRzJyk7CisgICAgICAgICAgICAgICAgTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1s3XS5y
ZXNvbHZlKFtNb2NrRGF0YS5wZW5kaW5nQnVpbGQoe2J1aWxkZXI6ICdzb21lIGJ1aWxkZXIgMics
IGJ1aWxkUmVxdWVzdElkOiA3MDB9KV0pOwogICAgICAgICAgICAgICAgIHJldHVybiBNb2NrUmVt
b3RlQVBJLndhaXRGb3JSZXF1ZXN0KCk7CiAgICAgICAgICAgICB9KS50aGVuKCgpID0+IHsKLSAg
ICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0cy5sZW5ndGgs
IDkpOwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3Rz
WzddLm1ldGhvZCwgJ0dFVCcpOwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVt
b3RlQVBJLnJlcXVlc3RzWzddLnVybCwgJy9qc29uL2J1aWxkZXJzL3NvbWUtYnVpbGRlci0xL2J1
aWxkcy8/c2VsZWN0PS0xJnNlbGVjdD0tMicpOwotICAgICAgICAgICAgICAgIE1vY2tSZW1vdGVB
UEkucmVxdWVzdHNbN10ucmVzb2x2ZSh7fSk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFs
KE1vY2tSZW1vdGVBUEkucmVxdWVzdHMubGVuZ3RoLCAxMCk7CiAgICAgICAgICAgICAgICAgYXNz
ZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbOF0ubWV0aG9kLCAnR0VUJyk7Ci0gICAg
ICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbOF0udXJsLCAn
L2pzb24vYnVpbGRlcnMvc29tZSUyMGJ1aWxkZXIlMjAyL2J1aWxkcy8/c2VsZWN0PS0xJnNlbGVj
dD0tMicpOworICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVl
c3RzWzhdLnVybCwgJy9qc29uL2J1aWxkZXJzL3NvbWUtYnVpbGRlci0xL2J1aWxkcy8/c2VsZWN0
PS0xJnNlbGVjdD0tMicpOwogICAgICAgICAgICAgICAgIE1vY2tSZW1vdGVBUEkucmVxdWVzdHNb
OF0ucmVzb2x2ZSh7fSk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVB
UEkucmVxdWVzdHNbOV0ubWV0aG9kLCAnR0VUJyk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LmVx
dWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbOV0udXJsLCAnL2pzb24vYnVpbGRlcnMvc29tZSUy
MGJ1aWxkZXIlMjAyL2J1aWxkcy8/c2VsZWN0PS0xJnNlbGVjdD0tMicpOworICAgICAgICAgICAg
ICAgIE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbOV0ucmVzb2x2ZSh7fSk7CiAgICAgICAgICAgICAg
ICAgcmV0dXJuIHN5bmNQcm9taXNlOwogICAgICAgICAgICAgfSkudGhlbigoKSA9PiB7CiAgICAg
ICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKEJ1aWxkUmVxdWVzdC5hbGwoKS5sZW5ndGgsIDQpOwpA
QCAtMjE3LDQyICsyMjAsNDMgQEAgZGVzY3JpYmUoJ0J1aWxkYm90VHJpZ2dlcmFibGUnLCBmdW5j
dGlvbgogICAgICAgICAgICAgICAgIGxldCBzbGF2ZUluZm8gPSB7bmFtZTogJ3N5bmMtc2xhdmUn
LCBwYXNzd29yZDogJ3Bhc3N3b3JkJ307CiAgICAgICAgICAgICAgICAgbGV0IHRyaWdnZXJhYmxl
ID0gbmV3IEJ1aWxkYm90VHJpZ2dlcmFibGUoY29uZmlnLCBUZXN0U2VydmVyLnJlbW90ZUFQSSgp
LCBNb2NrUmVtb3RlQVBJLCBzbGF2ZUluZm8sIGxvZ2dlcik7CiAgICAgICAgICAgICAgICAgc3lu
Y1Byb21pc2UgPSB0cmlnZ2VyYWJsZS5pbml0U3luY2VycygpLnRoZW4oKCkgPT4gdHJpZ2dlcmFi
bGUuc3luY09uY2UoKSk7CisgICAgICAgICAgICAgICAgYXNzZXJ0UmVxdWVzdEFuZFJlc29sdmUo
TW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1swXSwgJ0dFVCcsIE1vY2tEYXRhLmJ1aWxkYm90MDhCdWls
ZGVyc1VSTCgpLCBNb2NrRGF0YS5tb2NrQnVpbGRib3QwOEJ1aWxkZXJzKCkpOwogICAgICAgICAg
ICAgICAgIHJldHVybiBNb2NrUmVtb3RlQVBJLndhaXRGb3JSZXF1ZXN0KCk7CiAgICAgICAgICAg
ICB9KS50aGVuKCgpID0+IHsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90
ZUFQSS5yZXF1ZXN0cy5sZW5ndGgsIDIpOwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChN
b2NrUmVtb3RlQVBJLnJlcXVlc3RzWzBdLm1ldGhvZCwgJ0dFVCcpOwotICAgICAgICAgICAgICAg
IGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzBdLnVybCwgJy9qc29uL2J1aWxk
ZXJzL3NvbWUtYnVpbGRlci0xL3BlbmRpbmdCdWlsZHMnKTsKLSAgICAgICAgICAgICAgICBNb2Nr
UmVtb3RlQVBJLnJlcXVlc3RzWzBdLnJlc29sdmUoW01vY2tEYXRhLnBlbmRpbmdCdWlsZCh7YnVp
bGRSZXF1ZXN0SWQ6IDcwMH0pXSk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tS
ZW1vdGVBUEkucmVxdWVzdHMubGVuZ3RoLCAzKTsKICAgICAgICAgICAgICAgICBhc3NlcnQuZXF1
YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1sxXS5tZXRob2QsICdHRVQnKTsKLSAgICAgICAgICAg
ICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1sxXS51cmwsICcvanNvbi9i
dWlsZGVycy9zb21lJTIwYnVpbGRlciUyMDIvcGVuZGluZ0J1aWxkcycpOwotICAgICAgICAgICAg
ICAgIE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMV0ucmVzb2x2ZShbXSk7CisgICAgICAgICAgICAg
ICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMV0udXJsLCAnL2pzb24vYnVp
bGRlcnMvc29tZS1idWlsZGVyLTEvcGVuZGluZ0J1aWxkcycpOworICAgICAgICAgICAgICAgIE1v
Y2tSZW1vdGVBUEkucmVxdWVzdHNbMV0ucmVzb2x2ZShbTW9ja0RhdGEucGVuZGluZ0J1aWxkKHti
dWlsZFJlcXVlc3RJZDogNzAwfSldKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9j
a1JlbW90ZUFQSS5yZXF1ZXN0c1syXS5tZXRob2QsICdHRVQnKTsKKyAgICAgICAgICAgICAgICBh
c3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1syXS51cmwsICcvanNvbi9idWlsZGVy
cy9zb21lJTIwYnVpbGRlciUyMDIvcGVuZGluZ0J1aWxkcycpOworICAgICAgICAgICAgICAgIE1v
Y2tSZW1vdGVBUEkucmVxdWVzdHNbMl0ucmVzb2x2ZShbXSk7CiAgICAgICAgICAgICAgICAgcmV0
dXJuIE1vY2tSZW1vdGVBUEkud2FpdEZvclJlcXVlc3QoKTsKICAgICAgICAgICAgIH0pLnRoZW4o
KCkgPT4gewotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVl
c3RzLmxlbmd0aCwgNCk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVB
UEkucmVxdWVzdHNbMl0ubWV0aG9kLCAnR0VUJyk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVx
dWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMl0udXJsLCAnL2pzb24vYnVpbGRlcnMvc29tZS1i
dWlsZGVyLTEvYnVpbGRzLz9zZWxlY3Q9LTEmc2VsZWN0PS0yJyk7Ci0gICAgICAgICAgICAgICAg
TW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1syXS5yZXNvbHZlKHt9KTsKKyAgICAgICAgICAgICAgICBh
c3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0cy5sZW5ndGgsIDUpOwogICAgICAgICAg
ICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzNdLm1ldGhvZCwgJ0dF
VCcpOwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3Rz
WzNdLnVybCwgJy9qc29uL2J1aWxkZXJzL3NvbWUlMjBidWlsZGVyJTIwMi9idWlsZHMvP3NlbGVj
dD0tMSZzZWxlY3Q9LTInKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90
ZUFQSS5yZXF1ZXN0c1szXS51cmwsICcvanNvbi9idWlsZGVycy9zb21lLWJ1aWxkZXItMS9idWls
ZHMvP3NlbGVjdD0tMSZzZWxlY3Q9LTInKTsKICAgICAgICAgICAgICAgICBNb2NrUmVtb3RlQVBJ
LnJlcXVlc3RzWzNdLnJlc29sdmUoe30pOworICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChN
b2NrUmVtb3RlQVBJLnJlcXVlc3RzWzRdLm1ldGhvZCwgJ0dFVCcpOworICAgICAgICAgICAgICAg
IGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzRdLnVybCwgJy9qc29uL2J1aWxk
ZXJzL3NvbWUlMjBidWlsZGVyJTIwMi9idWlsZHMvP3NlbGVjdD0tMSZzZWxlY3Q9LTInKTsKKyAg
ICAgICAgICAgICAgICBNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzRdLnJlc29sdmUoe30pOwogICAg
ICAgICAgICAgICAgIHJldHVybiBNb2NrUmVtb3RlQVBJLndhaXRGb3JSZXF1ZXN0KCk7CiAgICAg
ICAgICAgICB9KS50aGVuKCgpID0+IHsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9j
a1JlbW90ZUFQSS5yZXF1ZXN0cy5sZW5ndGgsIDYpOwotICAgICAgICAgICAgICAgIGFzc2VydC5l
cXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzRdLm1ldGhvZCwgJ0dFVCcpOwotICAgICAgICAg
ICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzRdLnVybCwgJy9qc29u
L2J1aWxkZXJzL3NvbWUtYnVpbGRlci0xL3BlbmRpbmdCdWlsZHMnKTsKLSAgICAgICAgICAgICAg
ICBNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzRdLnJlc29sdmUoW01vY2tEYXRhLnBlbmRpbmdCdWls
ZCh7YnVpbGRSZXF1ZXN0SWQ6IDcwMH0pXSk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFs
KE1vY2tSZW1vdGVBUEkucmVxdWVzdHMubGVuZ3RoLCA3KTsKICAgICAgICAgICAgICAgICBhc3Nl
cnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1s1XS5tZXRob2QsICdHRVQnKTsKLSAgICAg
ICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1s1XS51cmwsICcv
anNvbi9idWlsZGVycy9zb21lJTIwYnVpbGRlciUyMDIvcGVuZGluZ0J1aWxkcycpOwotICAgICAg
ICAgICAgICAgIE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbNV0ucmVzb2x2ZShbXSk7CisgICAgICAg
ICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbNV0udXJsLCAnL2pz
b24vYnVpbGRlcnMvc29tZS1idWlsZGVyLTEvcGVuZGluZ0J1aWxkcycpOworICAgICAgICAgICAg
ICAgIE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbNV0ucmVzb2x2ZShbTW9ja0RhdGEucGVuZGluZ0J1
aWxkKHtidWlsZFJlcXVlc3RJZDogNzAwfSldKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuZXF1
YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1s2XS5tZXRob2QsICdHRVQnKTsKKyAgICAgICAgICAg
ICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1s2XS51cmwsICcvanNvbi9i
dWlsZGVycy9zb21lJTIwYnVpbGRlciUyMDIvcGVuZGluZ0J1aWxkcycpOworICAgICAgICAgICAg
ICAgIE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbNl0ucmVzb2x2ZShbXSk7CiAgICAgICAgICAgICAg
ICAgcmV0dXJuIE1vY2tSZW1vdGVBUEkud2FpdEZvclJlcXVlc3QoKTsKICAgICAgICAgICAgIH0p
LnRoZW4oKCkgPT4gewotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJ
LnJlcXVlc3RzLmxlbmd0aCwgOCk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tS
ZW1vdGVBUEkucmVxdWVzdHNbNl0ubWV0aG9kLCAnR0VUJyk7Ci0gICAgICAgICAgICAgICAgYXNz
ZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbNl0udXJsLCAnL2pzb24vYnVpbGRlcnMv
c29tZS1idWlsZGVyLTEvYnVpbGRzLz9zZWxlY3Q9LTEmc2VsZWN0PS0yJyk7Ci0gICAgICAgICAg
ICAgICAgTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1s2XS5yZXNvbHZlKHt9KTsKKyAgICAgICAgICAg
ICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0cy5sZW5ndGgsIDkpOwogICAg
ICAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzddLm1ldGhv
ZCwgJ0dFVCcpOwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJl
cXVlc3RzWzddLnVybCwgJy9qc29uL2J1aWxkZXJzL3NvbWUlMjBidWlsZGVyJTIwMi9idWlsZHMv
P3NlbGVjdD0tMSZzZWxlY3Q9LTInKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9j
a1JlbW90ZUFQSS5yZXF1ZXN0c1s3XS51cmwsICcvanNvbi9idWlsZGVycy9zb21lLWJ1aWxkZXIt
MS9idWlsZHMvP3NlbGVjdD0tMSZzZWxlY3Q9LTInKTsKICAgICAgICAgICAgICAgICBNb2NrUmVt
b3RlQVBJLnJlcXVlc3RzWzddLnJlc29sdmUoe30pOworICAgICAgICAgICAgICAgIGFzc2VydC5l
cXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzhdLm1ldGhvZCwgJ0dFVCcpOworICAgICAgICAg
ICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzhdLnVybCwgJy9qc29u
L2J1aWxkZXJzL3NvbWUlMjBidWlsZGVyJTIwMi9idWlsZHMvP3NlbGVjdD0tMSZzZWxlY3Q9LTIn
KTsKKyAgICAgICAgICAgICAgICBNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzhdLnJlc29sdmUoe30p
OwogICAgICAgICAgICAgICAgIHJldHVybiBzeW5jUHJvbWlzZTsKICAgICAgICAgICAgIH0pLnRo
ZW4oKCkgPT4gewogICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChCdWlsZFJlcXVlc3QuYWxs
KCkubGVuZ3RoLCA0KTsKQEAgLTI4OSw0OSArMjkzLDUwIEBAIGRlc2NyaWJlKCdCdWlsZGJvdFRy
aWdnZXJhYmxlJywgZnVuY3Rpb24KICAgICAgICAgICAgICAgICBjb25zdCBzbGF2ZUluZm8gPSB7
bmFtZTogJ3N5bmMtc2xhdmUnLCBwYXNzd29yZDogJ3Bhc3N3b3JkJ307CiAgICAgICAgICAgICAg
ICAgY29uc3QgdHJpZ2dlcmFibGUgPSBuZXcgQnVpbGRib3RUcmlnZ2VyYWJsZShjb25maWcsIFRl
c3RTZXJ2ZXIucmVtb3RlQVBJKCksIE1vY2tSZW1vdGVBUEksIHNsYXZlSW5mbywgbG9nZ2VyKTsK
ICAgICAgICAgICAgICAgICBzeW5jUHJvbWlzZSA9IHRyaWdnZXJhYmxlLmluaXRTeW5jZXJzKCku
dGhlbigoKSA9PiB0cmlnZ2VyYWJsZS5zeW5jT25jZSgpKTsKKyAgICAgICAgICAgICAgICBhc3Nl
cnRSZXF1ZXN0QW5kUmVzb2x2ZShNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzBdLCAnR0VUJywgTW9j
a0RhdGEuYnVpbGRib3QwOEJ1aWxkZXJzVVJMKCksIE1vY2tEYXRhLm1vY2tCdWlsZGJvdDA4QnVp
bGRlcnMoKSk7CiAgICAgICAgICAgICAgICAgcmV0dXJuIE1vY2tSZW1vdGVBUEkud2FpdEZvclJl
cXVlc3QoKTsKICAgICAgICAgICAgIH0pLnRoZW4oKCkgPT4gewotICAgICAgICAgICAgICAgIGFz
c2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzLmxlbmd0aCwgMik7Ci0gICAgICAgICAg
ICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMF0ubWV0aG9kLCAnR0VU
Jyk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNb
MF0udXJsLCAnL2pzb24vYnVpbGRlcnMvc29tZS1idWlsZGVyLTEvcGVuZGluZ0J1aWxkcycpOwot
ICAgICAgICAgICAgICAgIE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMF0ucmVzb2x2ZShbXSk7Cisg
ICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHMubGVuZ3Ro
LCAzKTsKICAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0
c1sxXS5tZXRob2QsICdHRVQnKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1Jl
bW90ZUFQSS5yZXF1ZXN0c1sxXS51cmwsICcvanNvbi9idWlsZGVycy9zb21lJTIwYnVpbGRlciUy
MDIvcGVuZGluZ0J1aWxkcycpOworICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVt
b3RlQVBJLnJlcXVlc3RzWzFdLnVybCwgJy9qc29uL2J1aWxkZXJzL3NvbWUtYnVpbGRlci0xL3Bl
bmRpbmdCdWlsZHMnKTsKICAgICAgICAgICAgICAgICBNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzFd
LnJlc29sdmUoW10pOworICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJ
LnJlcXVlc3RzWzJdLm1ldGhvZCwgJ0dFVCcpOworICAgICAgICAgICAgICAgIGFzc2VydC5lcXVh
bChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzJdLnVybCwgJy9qc29uL2J1aWxkZXJzL3NvbWUlMjBi
dWlsZGVyJTIwMi9wZW5kaW5nQnVpbGRzJyk7CisgICAgICAgICAgICAgICAgTW9ja1JlbW90ZUFQ
SS5yZXF1ZXN0c1syXS5yZXNvbHZlKFtdKTsKICAgICAgICAgICAgICAgICByZXR1cm4gTW9ja1Jl
bW90ZUFQSS53YWl0Rm9yUmVxdWVzdCgpOwogICAgICAgICAgICAgfSkudGhlbigoKSA9PiB7Ci0g
ICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHMubGVuZ3Ro
LCA0KTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0
c1syXS5tZXRob2QsICdHRVQnKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1Jl
bW90ZUFQSS5yZXF1ZXN0c1syXS51cmwsICcvanNvbi9idWlsZGVycy9zb21lLWJ1aWxkZXItMS9i
dWlsZHMvP3NlbGVjdD0tMSZzZWxlY3Q9LTInKTsKLSAgICAgICAgICAgICAgICBNb2NrUmVtb3Rl
QVBJLnJlcXVlc3RzWzJdLnJlc29sdmUoe1stMV06IE1vY2tEYXRhLnJ1bm5pbmdCdWlsZCh7YnVp
bGRSZXF1ZXN0SWQ6IDcwMX0pLCBbLTJdOiBNb2NrRGF0YS5maW5pc2hlZEJ1aWxkKHtidWlsZFJl
cXVlc3RJZDogNzAwfSl9KTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90
ZUFQSS5yZXF1ZXN0cy5sZW5ndGgsIDUpOwogICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChN
b2NrUmVtb3RlQVBJLnJlcXVlc3RzWzNdLm1ldGhvZCwgJ0dFVCcpOwotICAgICAgICAgICAgICAg
IGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzNdLnVybCwgJy9qc29uL2J1aWxk
ZXJzL3NvbWUlMjBidWlsZGVyJTIwMi9idWlsZHMvP3NlbGVjdD0tMSZzZWxlY3Q9LTInKTsKLSAg
ICAgICAgICAgICAgICBNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzNdLnJlc29sdmUoe30pOworICAg
ICAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzNdLnVybCwg
Jy9qc29uL2J1aWxkZXJzL3NvbWUtYnVpbGRlci0xL2J1aWxkcy8/c2VsZWN0PS0xJnNlbGVjdD0t
MicpOworICAgICAgICAgICAgICAgIE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbM10ucmVzb2x2ZSh7
Wy0xXTogTW9ja0RhdGEucnVubmluZ0J1aWxkKHtidWlsZFJlcXVlc3RJZDogNzAxfSksIFstMl06
IE1vY2tEYXRhLmZpbmlzaGVkQnVpbGQoe2J1aWxkUmVxdWVzdElkOiA3MDB9KX0pOworICAgICAg
ICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzRdLm1ldGhvZCwg
J0dFVCcpOworICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVl
c3RzWzRdLnVybCwgJy9qc29uL2J1aWxkZXJzL3NvbWUlMjBidWlsZGVyJTIwMi9idWlsZHMvP3Nl
bGVjdD0tMSZzZWxlY3Q9LTInKTsKKyAgICAgICAgICAgICAgICBNb2NrUmVtb3RlQVBJLnJlcXVl
c3RzWzRdLnJlc29sdmUoe30pOwogICAgICAgICAgICAgICAgIHJldHVybiBNb2NrUmVtb3RlQVBJ
LndhaXRGb3JSZXF1ZXN0KCk7CiAgICAgICAgICAgICB9KS50aGVuKCgpID0+IHsKLSAgICAgICAg
ICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0cy5sZW5ndGgsIDUpOwot
ICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzRdLm1l
dGhvZCwgJ1BPU1QnKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQ
SS5yZXF1ZXN0c1s0XS51cmwsICcvYnVpbGRlcnMvc29tZS1idWlsZGVyLTEvZm9yY2UnKTsKLSAg
ICAgICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbNF0u
ZGF0YSwgeyd3ayc6ICcxOTE2MjInLCAnb3MnOiAnMTAuMTEgMTVBMjg0JywgJ2J1aWxkLXJlcXVl
c3QtaWQnOiAnNzAyJ30pOwotICAgICAgICAgICAgICAgIE1vY2tSZW1vdGVBUEkucmVxdWVzdHNb
NF0ucmVzb2x2ZSgnT0snKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90
ZUFQSS5yZXF1ZXN0cy5sZW5ndGgsIDYpOworICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChN
b2NrUmVtb3RlQVBJLnJlcXVlc3RzWzVdLm1ldGhvZCwgJ1BPU1QnKTsKKyAgICAgICAgICAgICAg
ICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1s1XS51cmwsICcvYnVpbGRlcnMv
c29tZS1idWlsZGVyLTEvZm9yY2UnKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFs
KE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbNV0uZGF0YSwgeyd3ayc6ICcxOTE2MjInLCAnb3MnOiAn
MTAuMTEgMTVBMjg0JywgJ2J1aWxkLXJlcXVlc3QtaWQnOiAnNzAyJ30pOworICAgICAgICAgICAg
ICAgIE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbNV0ucmVzb2x2ZSgnT0snKTsKICAgICAgICAgICAg
ICAgICByZXR1cm4gTW9ja1JlbW90ZUFQSS53YWl0Rm9yUmVxdWVzdCgpOwogICAgICAgICAgICAg
fSkudGhlbigoKSA9PiB7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVB
UEkucmVxdWVzdHMubGVuZ3RoLCA3KTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9j
a1JlbW90ZUFQSS5yZXF1ZXN0c1s1XS5tZXRob2QsICdHRVQnKTsKLSAgICAgICAgICAgICAgICBh
c3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1s1XS51cmwsICcvanNvbi9idWlsZGVy
cy9zb21lLWJ1aWxkZXItMS9wZW5kaW5nQnVpbGRzJyk7Ci0gICAgICAgICAgICAgICAgTW9ja1Jl
bW90ZUFQSS5yZXF1ZXN0c1s1XS5yZXNvbHZlKFtNb2NrRGF0YS5wZW5kaW5nQnVpbGQoe2J1aWxk
UmVxdWVzdElkOiA3MDJ9KV0pOworICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVt
b3RlQVBJLnJlcXVlc3RzLmxlbmd0aCwgOCk7CiAgICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFs
KE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbNl0ubWV0aG9kLCAnR0VUJyk7Ci0gICAgICAgICAgICAg
ICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbNl0udXJsLCAnL2pzb24vYnVp
bGRlcnMvc29tZSUyMGJ1aWxkZXIlMjAyL3BlbmRpbmdCdWlsZHMnKTsKLSAgICAgICAgICAgICAg
ICBNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzZdLnJlc29sdmUoW10pOworICAgICAgICAgICAgICAg
IGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzZdLnVybCwgJy9qc29uL2J1aWxk
ZXJzL3NvbWUtYnVpbGRlci0xL3BlbmRpbmdCdWlsZHMnKTsKKyAgICAgICAgICAgICAgICBNb2Nr
UmVtb3RlQVBJLnJlcXVlc3RzWzZdLnJlc29sdmUoW01vY2tEYXRhLnBlbmRpbmdCdWlsZCh7YnVp
bGRSZXF1ZXN0SWQ6IDcwMn0pXSk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tS
ZW1vdGVBUEkucmVxdWVzdHNbN10ubWV0aG9kLCAnR0VUJyk7CisgICAgICAgICAgICAgICAgYXNz
ZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbN10udXJsLCAnL2pzb24vYnVpbGRlcnMv
c29tZSUyMGJ1aWxkZXIlMjAyL3BlbmRpbmdCdWlsZHMnKTsKKyAgICAgICAgICAgICAgICBNb2Nr
UmVtb3RlQVBJLnJlcXVlc3RzWzddLnJlc29sdmUoW10pOwogICAgICAgICAgICAgICAgIHJldHVy
biBNb2NrUmVtb3RlQVBJLndhaXRGb3JSZXF1ZXN0KCk7CiAgICAgICAgICAgICB9KS50aGVuKCgp
ID0+IHsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0
cy5sZW5ndGgsIDkpOwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJ
LnJlcXVlc3RzWzddLm1ldGhvZCwgJ0dFVCcpOwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVh
bChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzddLnVybCwgJy9qc29uL2J1aWxkZXJzL3NvbWUtYnVp
bGRlci0xL2J1aWxkcy8/c2VsZWN0PS0xJnNlbGVjdD0tMicpOwotICAgICAgICAgICAgICAgIE1v
Y2tSZW1vdGVBUEkucmVxdWVzdHNbN10ucmVzb2x2ZSh7Wy0xXTogTW9ja0RhdGEucnVubmluZ0J1
aWxkKHtidWlsZFJlcXVlc3RJZDogNzAxfSksIFstMl06IE1vY2tEYXRhLmZpbmlzaGVkQnVpbGQo
e2J1aWxkUmVxdWVzdElkOiA3MDB9KX0pOworICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChN
b2NrUmVtb3RlQVBJLnJlcXVlc3RzLmxlbmd0aCwgMTApOwogICAgICAgICAgICAgICAgIGFzc2Vy
dC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzhdLm1ldGhvZCwgJ0dFVCcpOwotICAgICAg
ICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzhdLnVybCwgJy9q
c29uL2J1aWxkZXJzL3NvbWUlMjBidWlsZGVyJTIwMi9idWlsZHMvP3NlbGVjdD0tMSZzZWxlY3Q9
LTInKTsKLSAgICAgICAgICAgICAgICBNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzhdLnJlc29sdmUo
e30pOworICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3Rz
WzhdLnVybCwgJy9qc29uL2J1aWxkZXJzL3NvbWUtYnVpbGRlci0xL2J1aWxkcy8/c2VsZWN0PS0x
JnNlbGVjdD0tMicpOworICAgICAgICAgICAgICAgIE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbOF0u
cmVzb2x2ZSh7Wy0xXTogTW9ja0RhdGEucnVubmluZ0J1aWxkKHtidWlsZFJlcXVlc3RJZDogNzAx
fSksIFstMl06IE1vY2tEYXRhLmZpbmlzaGVkQnVpbGQoe2J1aWxkUmVxdWVzdElkOiA3MDB9KX0p
OworICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzld
Lm1ldGhvZCwgJ0dFVCcpOworICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3Rl
QVBJLnJlcXVlc3RzWzldLnVybCwgJy9qc29uL2J1aWxkZXJzL3NvbWUlMjBidWlsZGVyJTIwMi9i
dWlsZHMvP3NlbGVjdD0tMSZzZWxlY3Q9LTInKTsKKyAgICAgICAgICAgICAgICBNb2NrUmVtb3Rl
QVBJLnJlcXVlc3RzWzldLnJlc29sdmUoe30pOwogICAgICAgICAgICAgICAgIHJldHVybiBzeW5j
UHJvbWlzZTsKICAgICAgICAgICAgIH0pLnRoZW4oKCkgPT4gewogICAgICAgICAgICAgICAgIGFz
c2VydC5lcXVhbChCdWlsZFJlcXVlc3QuYWxsKCkubGVuZ3RoLCA0KTsKQEAgLTM2OCwzMCArMzcz
LDMxIEBAIGRlc2NyaWJlKCdCdWlsZGJvdFRyaWdnZXJhYmxlJywgZnVuY3Rpb24KICAgICAgICAg
ICAgICAgICBsZXQgc2xhdmVJbmZvID0ge25hbWU6ICdzeW5jLXNsYXZlJywgcGFzc3dvcmQ6ICdw
YXNzd29yZCd9OwogICAgICAgICAgICAgICAgIGxldCB0cmlnZ2VyYWJsZSA9IG5ldyBCdWlsZGJv
dFRyaWdnZXJhYmxlKGNvbmZpZywgVGVzdFNlcnZlci5yZW1vdGVBUEkoKSwgTW9ja1JlbW90ZUFQ
SSwgc2xhdmVJbmZvLCBsb2dnZXIpOwogICAgICAgICAgICAgICAgIHN5bmNQcm9taXNlID0gdHJp
Z2dlcmFibGUuaW5pdFN5bmNlcnMoKS50aGVuKCgpID0+IHRyaWdnZXJhYmxlLnN5bmNPbmNlKCkp
OwotICAgICAgICAgICAgICAgIHJldHVybiBNb2NrUmVtb3RlQVBJLndhaXRGb3JSZXF1ZXN0KCk7
Ci0gICAgICAgICAgICB9KS50aGVuKCgpID0+IHsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1
YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0cy5sZW5ndGgsIDEpOwotICAgICAgICAgICAgICAgIGFz
c2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzBdLm1ldGhvZCwgJ0dFVCcpOwotICAg
ICAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzBdLnVybCwg
Jy9qc29uL2J1aWxkZXJzL3NvbWUtYnVpbGRlci0xL3BlbmRpbmdCdWlsZHMnKTsKLSAgICAgICAg
ICAgICAgICBNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzBdLnJlc29sdmUoW01vY2tEYXRhLnBlbmRp
bmdCdWlsZCh7YnVpbGRSZXF1ZXN0SWQ6IDcwMH0pXSk7CisgICAgICAgICAgICAgICAgYXNzZXJ0
UmVxdWVzdEFuZFJlc29sdmUoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1swXSwgJ0dFVCcsIE1vY2tE
YXRhLmJ1aWxkYm90MDhCdWlsZGVyc1VSTCgpLCBNb2NrRGF0YS5tb2NrQnVpbGRib3QwOEJ1aWxk
ZXJzKCkpOwogICAgICAgICAgICAgICAgIHJldHVybiBNb2NrUmVtb3RlQVBJLndhaXRGb3JSZXF1
ZXN0KCk7CiAgICAgICAgICAgICB9KS50aGVuKCgpID0+IHsKICAgICAgICAgICAgICAgICBhc3Nl
cnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0cy5sZW5ndGgsIDIpOwogICAgICAgICAgICAg
ICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzFdLm1ldGhvZCwgJ0dFVCcp
OwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzFd
LnVybCwgJy9qc29uL2J1aWxkZXJzL3NvbWUtYnVpbGRlci0xL2J1aWxkcy8/c2VsZWN0PS0xJnNl
bGVjdD0tMicpOwotICAgICAgICAgICAgICAgIE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMV0ucmVz
b2x2ZSh7fSk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVx
dWVzdHNbMV0udXJsLCAnL2pzb24vYnVpbGRlcnMvc29tZS1idWlsZGVyLTEvcGVuZGluZ0J1aWxk
cycpOworICAgICAgICAgICAgICAgIE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMV0ucmVzb2x2ZShb
TW9ja0RhdGEucGVuZGluZ0J1aWxkKHtidWlsZFJlcXVlc3RJZDogNzAwfSldKTsKICAgICAgICAg
ICAgICAgICByZXR1cm4gTW9ja1JlbW90ZUFQSS53YWl0Rm9yUmVxdWVzdCgpOwogICAgICAgICAg
ICAgfSkudGhlbigoKSA9PiB7CiAgICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1v
dGVBUEkucmVxdWVzdHMubGVuZ3RoLCAzKTsKICAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwo
TW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1syXS5tZXRob2QsICdHRVQnKTsKLSAgICAgICAgICAgICAg
ICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1syXS51cmwsICcvanNvbi9idWls
ZGVycy9zb21lLWJ1aWxkZXItMS9wZW5kaW5nQnVpbGRzJyk7Ci0gICAgICAgICAgICAgICAgTW9j
a1JlbW90ZUFQSS5yZXF1ZXN0c1syXS5yZXNvbHZlKFtdKTsKKyAgICAgICAgICAgICAgICBhc3Nl
cnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1syXS51cmwsICcvanNvbi9idWlsZGVycy9z
b21lLWJ1aWxkZXItMS9idWlsZHMvP3NlbGVjdD0tMSZzZWxlY3Q9LTInKTsKKyAgICAgICAgICAg
ICAgICBNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzJdLnJlc29sdmUoe30pOwogICAgICAgICAgICAg
ICAgIHJldHVybiBNb2NrUmVtb3RlQVBJLndhaXRGb3JSZXF1ZXN0KCk7CiAgICAgICAgICAgICB9
KS50aGVuKCgpID0+IHsKICAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQ
SS5yZXF1ZXN0cy5sZW5ndGgsIDQpOwogICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2Nr
UmVtb3RlQVBJLnJlcXVlc3RzWzNdLm1ldGhvZCwgJ0dFVCcpOwotICAgICAgICAgICAgICAgIGFz
c2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzNdLnVybCwgJy9qc29uL2J1aWxkZXJz
L3NvbWUtYnVpbGRlci0xL2J1aWxkcy8/c2VsZWN0PS0xJnNlbGVjdD0tMicpOwotICAgICAgICAg
ICAgICAgIE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbM10ucmVzb2x2ZSh7Wy0xXTogTW9ja0RhdGEu
cnVubmluZ0J1aWxkKHtidWlsZFJlcXVlc3RJZDogNzAwfSl9KTsKKyAgICAgICAgICAgICAgICBh
c3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1szXS51cmwsICcvanNvbi9idWlsZGVy
cy9zb21lLWJ1aWxkZXItMS9wZW5kaW5nQnVpbGRzJyk7CisgICAgICAgICAgICAgICAgTW9ja1Jl
bW90ZUFQSS5yZXF1ZXN0c1szXS5yZXNvbHZlKFtdKTsKKyAgICAgICAgICAgICAgICByZXR1cm4g
TW9ja1JlbW90ZUFQSS53YWl0Rm9yUmVxdWVzdCgpOworICAgICAgICAgICAgfSkudGhlbigoKSA9
PiB7CisgICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHMu
bGVuZ3RoLCA1KTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5y
ZXF1ZXN0c1s0XS5tZXRob2QsICdHRVQnKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwo
TW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1s0XS51cmwsICcvanNvbi9idWlsZGVycy9zb21lLWJ1aWxk
ZXItMS9idWlsZHMvP3NlbGVjdD0tMSZzZWxlY3Q9LTInKTsKKyAgICAgICAgICAgICAgICBNb2Nr
UmVtb3RlQVBJLnJlcXVlc3RzWzRdLnJlc29sdmUoe1stMV06IE1vY2tEYXRhLnJ1bm5pbmdCdWls
ZCh7YnVpbGRSZXF1ZXN0SWQ6IDcwMH0pfSk7CiAgICAgICAgICAgICAgICAgcmV0dXJuIHN5bmNQ
cm9taXNlOwogICAgICAgICAgICAgfSkudGhlbigoKSA9PiB7CiAgICAgICAgICAgICAgICAgYXNz
ZXJ0LmVxdWFsKEJ1aWxkUmVxdWVzdC5hbGwoKS5sZW5ndGgsIDQpOwpAQCAtNDMxLDQ5ICs0Mzcs
NTAgQEAgZGVzY3JpYmUoJ0J1aWxkYm90VHJpZ2dlcmFibGUnLCBmdW5jdGlvbgogICAgICAgICAg
ICAgICAgIGNvbnN0IHNsYXZlSW5mbyA9IHtuYW1lOiAnc3luYy1zbGF2ZScsIHBhc3N3b3JkOiAn
cGFzc3dvcmQnfTsKICAgICAgICAgICAgICAgICBjb25zdCB0cmlnZ2VyYWJsZSA9IG5ldyBCdWls
ZGJvdFRyaWdnZXJhYmxlKGNvbmZpZywgVGVzdFNlcnZlci5yZW1vdGVBUEkoKSwgTW9ja1JlbW90
ZUFQSSwgc2xhdmVJbmZvLCBsb2dnZXIpOwogICAgICAgICAgICAgICAgIHN5bmNQcm9taXNlID0g
dHJpZ2dlcmFibGUuaW5pdFN5bmNlcnMoKS50aGVuKCgpID0+IHRyaWdnZXJhYmxlLnN5bmNPbmNl
KCkpOworICAgICAgICAgICAgICAgIGFzc2VydFJlcXVlc3RBbmRSZXNvbHZlKE1vY2tSZW1vdGVB
UEkucmVxdWVzdHNbMF0sICdHRVQnLCBNb2NrRGF0YS5idWlsZGJvdDA4QnVpbGRlcnNVUkwoKSwg
TW9ja0RhdGEubW9ja0J1aWxkYm90MDhCdWlsZGVycygpKTsKICAgICAgICAgICAgICAgICByZXR1
cm4gTW9ja1JlbW90ZUFQSS53YWl0Rm9yUmVxdWVzdCgpOwogICAgICAgICAgICAgfSkudGhlbigo
KSA9PiB7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVz
dHMubGVuZ3RoLCAyKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQ
SS5yZXF1ZXN0c1swXS5tZXRob2QsICdHRVQnKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1
YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1swXS51cmwsICcvanNvbi9idWlsZGVycy9zb21lLWJ1
aWxkZXItMS9wZW5kaW5nQnVpbGRzJyk7Ci0gICAgICAgICAgICAgICAgTW9ja1JlbW90ZUFQSS5y
ZXF1ZXN0c1swXS5yZXNvbHZlKFtNb2NrRGF0YS5wZW5kaW5nQnVpbGQoe2J1aWxkUmVxdWVzdElk
OiA3MDJ9KV0pOworICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJl
cXVlc3RzLmxlbmd0aCwgMyk7CiAgICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1v
dGVBUEkucmVxdWVzdHNbMV0ubWV0aG9kLCAnR0VUJyk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0
LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMV0udXJsLCAnL2pzb24vYnVpbGRlcnMvc29t
ZSUyMGJ1aWxkZXIlMjAyL3BlbmRpbmdCdWlsZHMnKTsKLSAgICAgICAgICAgICAgICBNb2NrUmVt
b3RlQVBJLnJlcXVlc3RzWzFdLnJlc29sdmUoW10pOworICAgICAgICAgICAgICAgIGFzc2VydC5l
cXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzFdLnVybCwgJy9qc29uL2J1aWxkZXJzL3NvbWUt
YnVpbGRlci0xL3BlbmRpbmdCdWlsZHMnKTsKKyAgICAgICAgICAgICAgICBNb2NrUmVtb3RlQVBJ
LnJlcXVlc3RzWzFdLnJlc29sdmUoW01vY2tEYXRhLnBlbmRpbmdCdWlsZCh7YnVpbGRSZXF1ZXN0
SWQ6IDcwMn0pXSk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEku
cmVxdWVzdHNbMl0ubWV0aG9kLCAnR0VUJyk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFs
KE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMl0udXJsLCAnL2pzb24vYnVpbGRlcnMvc29tZSUyMGJ1
aWxkZXIlMjAyL3BlbmRpbmdCdWlsZHMnKTsKKyAgICAgICAgICAgICAgICBNb2NrUmVtb3RlQVBJ
LnJlcXVlc3RzWzJdLnJlc29sdmUoW10pOwogICAgICAgICAgICAgICAgIHJldHVybiBNb2NrUmVt
b3RlQVBJLndhaXRGb3JSZXF1ZXN0KCk7CiAgICAgICAgICAgICB9KS50aGVuKCgpID0+IHsKLSAg
ICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0cy5sZW5ndGgs
IDQpOwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3Rz
WzJdLm1ldGhvZCwgJ0dFVCcpOwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVt
b3RlQVBJLnJlcXVlc3RzWzJdLnVybCwgJy9qc29uL2J1aWxkZXJzL3NvbWUtYnVpbGRlci0xL2J1
aWxkcy8/c2VsZWN0PS0xJnNlbGVjdD0tMicpOwotICAgICAgICAgICAgICAgIE1vY2tSZW1vdGVB
UEkucmVxdWVzdHNbMl0ucmVzb2x2ZSh7Wy0xXTogTW9ja0RhdGEucnVubmluZ0J1aWxkKHtidWls
ZFJlcXVlc3RJZDogNzAxfSksIFstMl06IE1vY2tEYXRhLmZpbmlzaGVkQnVpbGQoe2J1aWxkUmVx
dWVzdElkOiA3MDB9KX0pOworICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3Rl
QVBJLnJlcXVlc3RzLmxlbmd0aCwgNSk7CiAgICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1v
Y2tSZW1vdGVBUEkucmVxdWVzdHNbM10ubWV0aG9kLCAnR0VUJyk7Ci0gICAgICAgICAgICAgICAg
YXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbM10udXJsLCAnL2pzb24vYnVpbGRl
cnMvc29tZSUyMGJ1aWxkZXIlMjAyL2J1aWxkcy8/c2VsZWN0PS0xJnNlbGVjdD0tMicpOwotICAg
ICAgICAgICAgICAgIE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbM10ucmVzb2x2ZSh7fSk7CisgICAg
ICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbM10udXJsLCAn
L2pzb24vYnVpbGRlcnMvc29tZS1idWlsZGVyLTEvYnVpbGRzLz9zZWxlY3Q9LTEmc2VsZWN0PS0y
Jyk7CisgICAgICAgICAgICAgICAgTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1szXS5yZXNvbHZlKHtb
LTFdOiBNb2NrRGF0YS5ydW5uaW5nQnVpbGQoe2J1aWxkUmVxdWVzdElkOiA3MDF9KSwgWy0yXTog
TW9ja0RhdGEuZmluaXNoZWRCdWlsZCh7YnVpbGRSZXF1ZXN0SWQ6IDcwMH0pfSk7CisgICAgICAg
ICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbNF0ubWV0aG9kLCAn
R0VUJyk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVz
dHNbNF0udXJsLCAnL2pzb24vYnVpbGRlcnMvc29tZSUyMGJ1aWxkZXIlMjAyL2J1aWxkcy8/c2Vs
ZWN0PS0xJnNlbGVjdD0tMicpOworICAgICAgICAgICAgICAgIE1vY2tSZW1vdGVBUEkucmVxdWVz
dHNbNF0ucmVzb2x2ZSh7fSk7CiAgICAgICAgICAgICAgICAgcmV0dXJuIE1vY2tSZW1vdGVBUEku
d2FpdEZvclJlcXVlc3QoKTsKICAgICAgICAgICAgIH0pLnRoZW4oKCkgPT4gewotICAgICAgICAg
ICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzLmxlbmd0aCwgNSk7Ci0g
ICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbNF0ubWV0
aG9kLCAnUE9TVCcpOwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJ
LnJlcXVlc3RzWzRdLnVybCwgJy9idWlsZGVycy9zb21lJTIwYnVpbGRlciUyMDIvZm9yY2UnKTsK
LSAgICAgICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNb
NF0uZGF0YSwgeyd3ayc6ICcxOTE2MjInLCAnb3MnOiAnMTAuMTEgMTVBMjg0JywgJ2J1aWxkLXJl
cXVlc3QtaWQnOiAnNzEwJ30pOwotICAgICAgICAgICAgICAgIE1vY2tSZW1vdGVBUEkucmVxdWVz
dHNbNF0ucmVzb2x2ZSgnT0snKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1Jl
bW90ZUFQSS5yZXF1ZXN0cy5sZW5ndGgsIDYpOworICAgICAgICAgICAgICAgIGFzc2VydC5lcXVh
bChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzVdLm1ldGhvZCwgJ1BPU1QnKTsKKyAgICAgICAgICAg
ICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1s1XS51cmwsICcvYnVpbGRl
cnMvc29tZSUyMGJ1aWxkZXIlMjAyL2ZvcmNlJyk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LmRl
ZXBFcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzVdLmRhdGEsIHsnd2snOiAnMTkxNjIyJywg
J29zJzogJzEwLjExIDE1QTI4NCcsICdidWlsZC1yZXF1ZXN0LWlkJzogJzcxMCd9KTsKKyAgICAg
ICAgICAgICAgICBNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzVdLnJlc29sdmUoJ09LJyk7CiAgICAg
ICAgICAgICAgICAgcmV0dXJuIE1vY2tSZW1vdGVBUEkud2FpdEZvclJlcXVlc3QoKTsKICAgICAg
ICAgICAgIH0pLnRoZW4oKCkgPT4gewotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2Nr
UmVtb3RlQVBJLnJlcXVlc3RzLmxlbmd0aCwgNyk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVx
dWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbNV0ubWV0aG9kLCAnR0VUJyk7Ci0gICAgICAgICAg
ICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbNV0udXJsLCAnL2pzb24v
YnVpbGRlcnMvc29tZS1idWlsZGVyLTEvcGVuZGluZ0J1aWxkcycpOwotICAgICAgICAgICAgICAg
IE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbNV0ucmVzb2x2ZShbTW9ja0RhdGEucGVuZGluZ0J1aWxk
KHtidWlsZFJlcXVlc3RJZDogNzAyfSldKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwo
TW9ja1JlbW90ZUFQSS5yZXF1ZXN0cy5sZW5ndGgsIDgpOwogICAgICAgICAgICAgICAgIGFzc2Vy
dC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzZdLm1ldGhvZCwgJ0dFVCcpOwotICAgICAg
ICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzZdLnVybCwgJy9q
c29uL2J1aWxkZXJzL3NvbWUlMjBidWlsZGVyJTIwMi9wZW5kaW5nQnVpbGRzJyk7Ci0gICAgICAg
ICAgICAgICAgTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1s2XS5yZXNvbHZlKFtNb2NrRGF0YS5wZW5k
aW5nQnVpbGQoe2J1aWxkZXI6ICdzb21lIGJ1aWxkZXIgMicsIGJ1aWxkUmVxdWVzdElkOiA3MTB9
KV0pOworICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3Rz
WzZdLnVybCwgJy9qc29uL2J1aWxkZXJzL3NvbWUtYnVpbGRlci0xL3BlbmRpbmdCdWlsZHMnKTsK
KyAgICAgICAgICAgICAgICBNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzZdLnJlc29sdmUoW01vY2tE
YXRhLnBlbmRpbmdCdWlsZCh7YnVpbGRSZXF1ZXN0SWQ6IDcwMn0pXSk7CisgICAgICAgICAgICAg
ICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbN10ubWV0aG9kLCAnR0VUJyk7
CisgICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbN10u
dXJsLCAnL2pzb24vYnVpbGRlcnMvc29tZSUyMGJ1aWxkZXIlMjAyL3BlbmRpbmdCdWlsZHMnKTsK
KyAgICAgICAgICAgICAgICBNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzddLnJlc29sdmUoW01vY2tE
YXRhLnBlbmRpbmdCdWlsZCh7YnVpbGRlcjogJ3NvbWUgYnVpbGRlciAyJywgYnVpbGRSZXF1ZXN0
SWQ6IDcxMH0pXSk7CiAgICAgICAgICAgICAgICAgcmV0dXJuIE1vY2tSZW1vdGVBUEkud2FpdEZv
clJlcXVlc3QoKTsKICAgICAgICAgICAgIH0pLnRoZW4oKCkgPT4gewotICAgICAgICAgICAgICAg
IGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzLmxlbmd0aCwgOSk7Ci0gICAgICAg
ICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbN10ubWV0aG9kLCAn
R0VUJyk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVz
dHNbN10udXJsLCAnL2pzb24vYnVpbGRlcnMvc29tZS1idWlsZGVyLTEvYnVpbGRzLz9zZWxlY3Q9
LTEmc2VsZWN0PS0yJyk7Ci0gICAgICAgICAgICAgICAgTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1s3
XS5yZXNvbHZlKHtbLTFdOiBNb2NrRGF0YS5ydW5uaW5nQnVpbGQoe2J1aWxkUmVxdWVzdElkOiA3
MDF9KSwgWy0yXTogTW9ja0RhdGEuZmluaXNoZWRCdWlsZCh7YnVpbGRSZXF1ZXN0SWQ6IDcwMH0p
fSk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHMu
bGVuZ3RoLCAxMCk7CiAgICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEku
cmVxdWVzdHNbOF0ubWV0aG9kLCAnR0VUJyk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFs
KE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbOF0udXJsLCAnL2pzb24vYnVpbGRlcnMvc29tZSUyMGJ1
aWxkZXIlMjAyL2J1aWxkcy8/c2VsZWN0PS0xJnNlbGVjdD0tMicpOwotICAgICAgICAgICAgICAg
IE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbOF0ucmVzb2x2ZSh7fSk7CisgICAgICAgICAgICAgICAg
YXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbOF0udXJsLCAnL2pzb24vYnVpbGRl
cnMvc29tZS1idWlsZGVyLTEvYnVpbGRzLz9zZWxlY3Q9LTEmc2VsZWN0PS0yJyk7CisgICAgICAg
ICAgICAgICAgTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1s4XS5yZXNvbHZlKHtbLTFdOiBNb2NrRGF0
YS5ydW5uaW5nQnVpbGQoe2J1aWxkUmVxdWVzdElkOiA3MDF9KSwgWy0yXTogTW9ja0RhdGEuZmlu
aXNoZWRCdWlsZCh7YnVpbGRSZXF1ZXN0SWQ6IDcwMH0pfSk7CisgICAgICAgICAgICAgICAgYXNz
ZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbOV0ubWV0aG9kLCAnR0VUJyk7CisgICAg
ICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbOV0udXJsLCAn
L2pzb24vYnVpbGRlcnMvc29tZSUyMGJ1aWxkZXIlMjAyL2J1aWxkcy8/c2VsZWN0PS0xJnNlbGVj
dD0tMicpOworICAgICAgICAgICAgICAgIE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbOV0ucmVzb2x2
ZSh7fSk7CiAgICAgICAgICAgICAgICAgcmV0dXJuIHN5bmNQcm9taXNlOwogICAgICAgICAgICAg
fSkudGhlbigoKSA9PiB7CiAgICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKEJ1aWxkUmVxdWVz
dC5hbGwoKS5sZW5ndGgsIDgpOwpAQCAtNTI5LDUzICs1MzYsNTQgQEAgZGVzY3JpYmUoJ0J1aWxk
Ym90VHJpZ2dlcmFibGUnLCBmdW5jdGlvbgogICAgICAgICAgICAgICAgIGNvbnN0IHNsYXZlSW5m
byA9IHtuYW1lOiAnc3luYy1zbGF2ZScsIHBhc3N3b3JkOiAncGFzc3dvcmQnfTsKICAgICAgICAg
ICAgICAgICBjb25zdCB0cmlnZ2VyYWJsZSA9IG5ldyBCdWlsZGJvdFRyaWdnZXJhYmxlKGNvbmZp
ZywgVGVzdFNlcnZlci5yZW1vdGVBUEkoKSwgTW9ja1JlbW90ZUFQSSwgc2xhdmVJbmZvLCBsb2dn
ZXIpOwogICAgICAgICAgICAgICAgIHN5bmNQcm9taXNlID0gdHJpZ2dlcmFibGUuaW5pdFN5bmNl
cnMoKS50aGVuKCgpID0+IHRyaWdnZXJhYmxlLnN5bmNPbmNlKCkpOworICAgICAgICAgICAgICAg
IGFzc2VydFJlcXVlc3RBbmRSZXNvbHZlKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMF0sICdHRVQn
LCBNb2NrRGF0YS5idWlsZGJvdDA4QnVpbGRlcnNVUkwoKSwgTW9ja0RhdGEubW9ja0J1aWxkYm90
MDhCdWlsZGVycygpKTsKICAgICAgICAgICAgICAgICByZXR1cm4gTW9ja1JlbW90ZUFQSS53YWl0
Rm9yUmVxdWVzdCgpOwogICAgICAgICAgICAgfSkudGhlbigoKSA9PiB7Ci0gICAgICAgICAgICAg
ICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHMubGVuZ3RoLCAyKTsKLSAgICAg
ICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1swXS5tZXRob2Qs
ICdHRVQnKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1
ZXN0c1swXS51cmwsICcvanNvbi9idWlsZGVycy9zb21lLWJ1aWxkZXItMS9wZW5kaW5nQnVpbGRz
Jyk7Ci0gICAgICAgICAgICAgICAgTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1swXS5yZXNvbHZlKFtd
KTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0cy5s
ZW5ndGgsIDMpOwogICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJl
cXVlc3RzWzFdLm1ldGhvZCwgJ0dFVCcpOwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChN
b2NrUmVtb3RlQVBJLnJlcXVlc3RzWzFdLnVybCwgJy9qc29uL2J1aWxkZXJzL3NvbWUlMjBidWls
ZGVyJTIwMi9wZW5kaW5nQnVpbGRzJyk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1v
Y2tSZW1vdGVBUEkucmVxdWVzdHNbMV0udXJsLCAnL2pzb24vYnVpbGRlcnMvc29tZS1idWlsZGVy
LTEvcGVuZGluZ0J1aWxkcycpOwogICAgICAgICAgICAgICAgIE1vY2tSZW1vdGVBUEkucmVxdWVz
dHNbMV0ucmVzb2x2ZShbXSk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1v
dGVBUEkucmVxdWVzdHNbMl0ubWV0aG9kLCAnR0VUJyk7CisgICAgICAgICAgICAgICAgYXNzZXJ0
LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMl0udXJsLCAnL2pzb24vYnVpbGRlcnMvc29t
ZSUyMGJ1aWxkZXIlMjAyL3BlbmRpbmdCdWlsZHMnKTsKKyAgICAgICAgICAgICAgICBNb2NrUmVt
b3RlQVBJLnJlcXVlc3RzWzJdLnJlc29sdmUoW10pOwogICAgICAgICAgICAgICAgIHJldHVybiBN
b2NrUmVtb3RlQVBJLndhaXRGb3JSZXF1ZXN0KCk7CiAgICAgICAgICAgICB9KS50aGVuKCgpID0+
IHsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0cy5s
ZW5ndGgsIDQpOwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJl
cXVlc3RzWzJdLm1ldGhvZCwgJ0dFVCcpOwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChN
b2NrUmVtb3RlQVBJLnJlcXVlc3RzWzJdLnVybCwgJy9qc29uL2J1aWxkZXJzL3NvbWUtYnVpbGRl
ci0xL2J1aWxkcy8/c2VsZWN0PS0xJnNlbGVjdD0tMicpOwotICAgICAgICAgICAgICAgIE1vY2tS
ZW1vdGVBUEkucmVxdWVzdHNbMl0ucmVzb2x2ZSh7Wy0xXTogTW9ja0RhdGEucnVubmluZ0J1aWxk
KHtidWlsZFJlcXVlc3RJZDogNzEwfSl9KTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwo
TW9ja1JlbW90ZUFQSS5yZXF1ZXN0cy5sZW5ndGgsIDUpOwogICAgICAgICAgICAgICAgIGFzc2Vy
dC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzNdLm1ldGhvZCwgJ0dFVCcpOwotICAgICAg
ICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzNdLnVybCwgJy9q
c29uL2J1aWxkZXJzL3NvbWUlMjBidWlsZGVyJTIwMi9idWlsZHMvP3NlbGVjdD0tMSZzZWxlY3Q9
LTInKTsKLSAgICAgICAgICAgICAgICBNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzNdLnJlc29sdmUo
e1stMV06IE1vY2tEYXRhLnJ1bm5pbmdCdWlsZCh7YnVpbGRlcjogJ3NvbWUgYnVpbGRlciAyJywg
YnVpbGRSZXF1ZXN0SWQ6IDcwMH0pfSk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1v
Y2tSZW1vdGVBUEkucmVxdWVzdHNbM10udXJsLCAnL2pzb24vYnVpbGRlcnMvc29tZS1idWlsZGVy
LTEvYnVpbGRzLz9zZWxlY3Q9LTEmc2VsZWN0PS0yJyk7CisgICAgICAgICAgICAgICAgTW9ja1Jl
bW90ZUFQSS5yZXF1ZXN0c1szXS5yZXNvbHZlKHtbLTFdOiBNb2NrRGF0YS5ydW5uaW5nQnVpbGQo
e2J1aWxkUmVxdWVzdElkOiA3MTB9KX0pOworICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChN
b2NrUmVtb3RlQVBJLnJlcXVlc3RzWzRdLm1ldGhvZCwgJ0dFVCcpOworICAgICAgICAgICAgICAg
IGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzRdLnVybCwgJy9qc29uL2J1aWxk
ZXJzL3NvbWUlMjBidWlsZGVyJTIwMi9idWlsZHMvP3NlbGVjdD0tMSZzZWxlY3Q9LTInKTsKKyAg
ICAgICAgICAgICAgICBNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzRdLnJlc29sdmUoe1stMV06IE1v
Y2tEYXRhLnJ1bm5pbmdCdWlsZCh7YnVpbGRlcjogJ3NvbWUgYnVpbGRlciAyJywgYnVpbGRSZXF1
ZXN0SWQ6IDcwMH0pfSk7CiAgICAgICAgICAgICAgICAgcmV0dXJuIE1vY2tSZW1vdGVBUEkud2Fp
dEZvclJlcXVlc3QoKTsKICAgICAgICAgICAgIH0pLnRoZW4oKCkgPT4gewotICAgICAgICAgICAg
ICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzLmxlbmd0aCwgNik7Ci0gICAg
ICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbNF0ubWV0aG9k
LCAnUE9TVCcpOwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJl
cXVlc3RzWzRdLnVybCwgJy9idWlsZGVycy9zb21lJTIwYnVpbGRlciUyMDIvZm9yY2UnKTsKLSAg
ICAgICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbNF0u
ZGF0YSwgeyd3ayc6ICcxOTI3MzYnLCAnb3MnOiAnMTAuMTEgMTVBMjg0JywgJ2J1aWxkLXJlcXVl
c3QtaWQnOiAnNzAxJ30pOwotICAgICAgICAgICAgICAgIE1vY2tSZW1vdGVBUEkucmVxdWVzdHNb
NF0ucmVzb2x2ZSgnT0snKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90
ZUFQSS5yZXF1ZXN0cy5sZW5ndGgsIDcpOwogICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChN
b2NrUmVtb3RlQVBJLnJlcXVlc3RzWzVdLm1ldGhvZCwgJ1BPU1QnKTsKLSAgICAgICAgICAgICAg
ICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1s1XS51cmwsICcvYnVpbGRlcnMv
c29tZS1idWlsZGVyLTEvZm9yY2UnKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFs
KE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbNV0uZGF0YSwgeyd3ayc6ICcxOTI3MzYnLCAnb3MnOiAn
MTAuMTEgMTVBMjg0JywgJ2J1aWxkLXJlcXVlc3QtaWQnOiAnNzExJ30pOworICAgICAgICAgICAg
ICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzVdLnVybCwgJy9idWlsZGVy
cy9zb21lJTIwYnVpbGRlciUyMDIvZm9yY2UnKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuZGVl
cEVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbNV0uZGF0YSwgeyd3ayc6ICcxOTI3MzYnLCAn
b3MnOiAnMTAuMTEgMTVBMjg0JywgJ2J1aWxkLXJlcXVlc3QtaWQnOiAnNzAxJ30pOwogICAgICAg
ICAgICAgICAgIE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbNV0ucmVzb2x2ZSgnT0snKTsKKyAgICAg
ICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1s2XS5tZXRob2Qs
ICdQT1NUJyk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVx
dWVzdHNbNl0udXJsLCAnL2J1aWxkZXJzL3NvbWUtYnVpbGRlci0xL2ZvcmNlJyk7CisgICAgICAg
ICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzZdLmRhdGEs
IHsnd2snOiAnMTkyNzM2JywgJ29zJzogJzEwLjExIDE1QTI4NCcsICdidWlsZC1yZXF1ZXN0LWlk
JzogJzcxMSd9KTsKKyAgICAgICAgICAgICAgICBNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzZdLnJl
c29sdmUoJ09LJyk7CiAgICAgICAgICAgICAgICAgcmV0dXJuIE1vY2tSZW1vdGVBUEkud2FpdEZv
clJlcXVlc3QoKTsKICAgICAgICAgICAgIH0pLnRoZW4oKCkgPT4gewotICAgICAgICAgICAgICAg
IGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzLmxlbmd0aCwgOCk7Ci0gICAgICAg
ICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbNl0ubWV0aG9kLCAn
R0VUJyk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVz
dHNbNl0udXJsLCAnL2pzb24vYnVpbGRlcnMvc29tZS1idWlsZGVyLTEvcGVuZGluZ0J1aWxkcycp
OwotICAgICAgICAgICAgICAgIE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbNl0ucmVzb2x2ZShbTW9j
a0RhdGEucGVuZGluZ0J1aWxkKHtidWlsZFJlcXVlc3RJZDogNzExfSldKTsKKyAgICAgICAgICAg
ICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0cy5sZW5ndGgsIDkpOwogICAg
ICAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzddLm1ldGhv
ZCwgJ0dFVCcpOwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJl
cXVlc3RzWzddLnVybCwgJy9qc29uL2J1aWxkZXJzL3NvbWUlMjBidWlsZGVyJTIwMi9wZW5kaW5n
QnVpbGRzJyk7Ci0gICAgICAgICAgICAgICAgTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1s3XS5yZXNv
bHZlKFtNb2NrRGF0YS5wZW5kaW5nQnVpbGQoe2J1aWxkZXI6ICdzb21lIGJ1aWxkZXIgMicsYnVp
bGRSZXF1ZXN0SWQ6IDcwMX0pXSk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tS
ZW1vdGVBUEkucmVxdWVzdHNbN10udXJsLCAnL2pzb24vYnVpbGRlcnMvc29tZS1idWlsZGVyLTEv
cGVuZGluZ0J1aWxkcycpOworICAgICAgICAgICAgICAgIE1vY2tSZW1vdGVBUEkucmVxdWVzdHNb
N10ucmVzb2x2ZShbTW9ja0RhdGEucGVuZGluZ0J1aWxkKHtidWlsZFJlcXVlc3RJZDogNzExfSld
KTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1s4
XS5tZXRob2QsICdHRVQnKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90
ZUFQSS5yZXF1ZXN0c1s4XS51cmwsICcvanNvbi9idWlsZGVycy9zb21lJTIwYnVpbGRlciUyMDIv
cGVuZGluZ0J1aWxkcycpOworICAgICAgICAgICAgICAgIE1vY2tSZW1vdGVBUEkucmVxdWVzdHNb
OF0ucmVzb2x2ZShbTW9ja0RhdGEucGVuZGluZ0J1aWxkKHtidWlsZGVyOiAnc29tZSBidWlsZGVy
IDInLGJ1aWxkUmVxdWVzdElkOiA3MDF9KV0pOwogICAgICAgICAgICAgICAgIHJldHVybiBNb2Nr
UmVtb3RlQVBJLndhaXRGb3JSZXF1ZXN0KCk7CiAgICAgICAgICAgICB9KS50aGVuKCgpID0+IHsK
LSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0cy5sZW5n
dGgsIDEwKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1
ZXN0c1s4XS5tZXRob2QsICdHRVQnKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9j
a1JlbW90ZUFQSS5yZXF1ZXN0c1s4XS51cmwsICcvanNvbi9idWlsZGVycy9zb21lLWJ1aWxkZXIt
MS9idWlsZHMvP3NlbGVjdD0tMSZzZWxlY3Q9LTInKTsKLSAgICAgICAgICAgICAgICBNb2NrUmVt
b3RlQVBJLnJlcXVlc3RzWzhdLnJlc29sdmUoe1stMV06IE1vY2tEYXRhLnJ1bm5pbmdCdWlsZCh7
YnVpbGRSZXF1ZXN0SWQ6IDcxMH0pfSk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1v
Y2tSZW1vdGVBUEkucmVxdWVzdHMubGVuZ3RoLCAxMSk7CiAgICAgICAgICAgICAgICAgYXNzZXJ0
LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbOV0ubWV0aG9kLCAnR0VUJyk7Ci0gICAgICAg
ICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbOV0udXJsLCAnL2pz
b24vYnVpbGRlcnMvc29tZSUyMGJ1aWxkZXIlMjAyL2J1aWxkcy8/c2VsZWN0PS0xJnNlbGVjdD0t
MicpOwotICAgICAgICAgICAgICAgIE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbOV0ucmVzb2x2ZSh7
Wy0xXTogTW9ja0RhdGEucnVubmluZ0J1aWxkKHtidWlsZGVyOiAnc29tZSBidWlsZGVyIDInLCBi
dWlsZFJlcXVlc3RJZDogNzAwfSl9KTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9j
a1JlbW90ZUFQSS5yZXF1ZXN0c1s5XS51cmwsICcvanNvbi9idWlsZGVycy9zb21lLWJ1aWxkZXIt
MS9idWlsZHMvP3NlbGVjdD0tMSZzZWxlY3Q9LTInKTsKKyAgICAgICAgICAgICAgICBNb2NrUmVt
b3RlQVBJLnJlcXVlc3RzWzldLnJlc29sdmUoe1stMV06IE1vY2tEYXRhLnJ1bm5pbmdCdWlsZCh7
YnVpbGRSZXF1ZXN0SWQ6IDcxMH0pfSk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1v
Y2tSZW1vdGVBUEkucmVxdWVzdHNbMTBdLm1ldGhvZCwgJ0dFVCcpOworICAgICAgICAgICAgICAg
IGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzEwXS51cmwsICcvanNvbi9idWls
ZGVycy9zb21lJTIwYnVpbGRlciUyMDIvYnVpbGRzLz9zZWxlY3Q9LTEmc2VsZWN0PS0yJyk7Cisg
ICAgICAgICAgICAgICAgTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1sxMF0ucmVzb2x2ZSh7Wy0xXTog
TW9ja0RhdGEucnVubmluZ0J1aWxkKHtidWlsZGVyOiAnc29tZSBidWlsZGVyIDInLCBidWlsZFJl
cXVlc3RJZDogNzAwfSl9KTsKICAgICAgICAgICAgICAgICByZXR1cm4gc3luY1Byb21pc2U7CiAg
ICAgICAgICAgICB9KS50aGVuKCgpID0+IHsKICAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwo
QnVpbGRSZXF1ZXN0LmFsbCgpLmxlbmd0aCwgOCk7CkBAIC02MzAsNDAgKzYzOCw0MSBAQCBkZXNj
cmliZSgnQnVpbGRib3RUcmlnZ2VyYWJsZScsIGZ1bmN0aW9uCiAgICAgICAgICAgICAgICAgY29u
c3Qgc2xhdmVJbmZvID0ge25hbWU6ICdzeW5jLXNsYXZlJywgcGFzc3dvcmQ6ICdwYXNzd29yZCd9
OwogICAgICAgICAgICAgICAgIGNvbnN0IHRyaWdnZXJhYmxlID0gbmV3IEJ1aWxkYm90VHJpZ2dl
cmFibGUoY29uZmlnLCBUZXN0U2VydmVyLnJlbW90ZUFQSSgpLCBNb2NrUmVtb3RlQVBJLCBzbGF2
ZUluZm8sIGxvZ2dlcik7CiAgICAgICAgICAgICAgICAgc3luY1Byb21pc2UgPSB0cmlnZ2VyYWJs
ZS5pbml0U3luY2VycygpLnRoZW4oKCkgPT4gdHJpZ2dlcmFibGUuc3luY09uY2UoKSk7Ci0gICAg
ICAgICAgICAgICAgcmV0dXJuIE1vY2tSZW1vdGVBUEkud2FpdEZvclJlcXVlc3QoKTsKLSAgICAg
ICAgICAgIH0pLnRoZW4oKCkgPT4gewotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXF1
ZXN0cy5sZW5ndGgsIDEpOwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXF1ZXN0c1sw
XS5tZXRob2QsICdHRVQnKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVxdWVzdHNb
MF0udXJsLCAnL2pzb24vYnVpbGRlcnMvc29tZS1idWlsZGVyLTEvcGVuZGluZ0J1aWxkcycpOwot
ICAgICAgICAgICAgICAgIE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMF0ucmVzb2x2ZShbXSk7Cisg
ICAgICAgICAgICAgICAgYXNzZXJ0UmVxdWVzdEFuZFJlc29sdmUocmVxdWVzdHNbMF0sICdHRVQn
LCBNb2NrRGF0YS5idWlsZGJvdDA4QnVpbGRlcnNVUkwoKSwgTW9ja0RhdGEubW9ja0J1aWxkYm90
MDhCdWlsZGVycygpKTsKICAgICAgICAgICAgICAgICByZXR1cm4gTW9ja1JlbW90ZUFQSS53YWl0
Rm9yUmVxdWVzdCgpOwogICAgICAgICAgICAgfSkudGhlbigoKSA9PiB7CiAgICAgICAgICAgICAg
ICAgYXNzZXJ0LmVxdWFsKHJlcXVlc3RzLmxlbmd0aCwgMik7CiAgICAgICAgICAgICAgICAgYXNz
ZXJ0LmVxdWFsKHJlcXVlc3RzWzFdLm1ldGhvZCwgJ0dFVCcpOwotICAgICAgICAgICAgICAgIGFz
c2VydC5lcXVhbChyZXF1ZXN0c1sxXS51cmwsICcvanNvbi9idWlsZGVycy9zb21lLWJ1aWxkZXIt
MS9idWlsZHMvP3NlbGVjdD0tMSZzZWxlY3Q9LTInKTsKLSAgICAgICAgICAgICAgICByZXF1ZXN0
c1sxXS5yZXNvbHZlKHt9KTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVxdWVzdHNb
MV0udXJsLCAnL2pzb24vYnVpbGRlcnMvc29tZS1idWlsZGVyLTEvcGVuZGluZ0J1aWxkcycpOwor
ICAgICAgICAgICAgICAgIE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMV0ucmVzb2x2ZShbXSk7CiAg
ICAgICAgICAgICAgICAgcmV0dXJuIE1vY2tSZW1vdGVBUEkud2FpdEZvclJlcXVlc3QoKTsKICAg
ICAgICAgICAgIH0pLnRoZW4oKCkgPT4gewogICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChy
ZXF1ZXN0cy5sZW5ndGgsIDMpOwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXF1ZXN0
c1syXS5tZXRob2QsICdQT1NUJyk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlcXVl
c3RzWzJdLnVybCwgJy9idWlsZGVycy9zb21lLWJ1aWxkZXItMS9mb3JjZScpOwotICAgICAgICAg
ICAgICAgIGFzc2VydC5kZWVwRXF1YWwocmVxdWVzdHNbMl0uZGF0YSwgeyd3ayc6ICcxOTE2MjIn
LCAnb3MnOiAnMTAuMTEgMTVBMjg0JywgJ2J1aWxkLXJlcXVlc3QtaWQnOiAnNzAwJ30pOwotICAg
ICAgICAgICAgICAgIHJldHVybiBuZXcgUHJvbWlzZSgocmVzb2x2ZSkgPT4gc2V0VGltZW91dChy
ZXNvbHZlLCAxMCkpOwotICAgICAgICAgICAgfSkudGhlbigoKSA9PiB7Ci0gICAgICAgICAgICAg
ICAgYXNzZXJ0LmVxdWFsKHJlcXVlc3RzLmxlbmd0aCwgMyk7Ci0gICAgICAgICAgICAgICAgcmVx
dWVzdHNbMl0ucmVzb2x2ZSgnT0snKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVx
dWVzdHNbMl0ubWV0aG9kLCAnR0VUJyk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJl
cXVlc3RzWzJdLnVybCwgJy9qc29uL2J1aWxkZXJzL3NvbWUtYnVpbGRlci0xL2J1aWxkcy8/c2Vs
ZWN0PS0xJnNlbGVjdD0tMicpOworICAgICAgICAgICAgICAgIHJlcXVlc3RzWzJdLnJlc29sdmUo
e30pOwogICAgICAgICAgICAgICAgIHJldHVybiBNb2NrUmVtb3RlQVBJLndhaXRGb3JSZXF1ZXN0
KCk7CiAgICAgICAgICAgICB9KS50aGVuKCgpID0+IHsKICAgICAgICAgICAgICAgICBhc3NlcnQu
ZXF1YWwocmVxdWVzdHMubGVuZ3RoLCA0KTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwo
cmVxdWVzdHNbM10ubWV0aG9kLCAnR0VUJyk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFs
KHJlcXVlc3RzWzNdLnVybCwgJy9qc29uL2J1aWxkZXJzL3NvbWUtYnVpbGRlci0xL3BlbmRpbmdC
dWlsZHMnKTsKLSAgICAgICAgICAgICAgICBNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzNdLnJlc29s
dmUoW01vY2tEYXRhLnBlbmRpbmdCdWlsZCh7YnVpbGRSZXF1ZXN0SWQ6IDcwMH0pXSk7CisgICAg
ICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlcXVlc3RzWzNdLm1ldGhvZCwgJ1BPU1QnKTsKKyAg
ICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVxdWVzdHNbM10udXJsLCAnL2J1aWxkZXJzL3Nv
bWUtYnVpbGRlci0xL2ZvcmNlJyk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChy
ZXF1ZXN0c1szXS5kYXRhLCB7J3drJzogJzE5MTYyMicsICdvcyc6ICcxMC4xMSAxNUEyODQnLCAn
YnVpbGQtcmVxdWVzdC1pZCc6ICc3MDAnfSk7CisgICAgICAgICAgICAgICAgcmV0dXJuIG5ldyBQ
cm9taXNlKChyZXNvbHZlKSA9PiBzZXRUaW1lb3V0KHJlc29sdmUsIDEwKSk7CisgICAgICAgICAg
ICB9KS50aGVuKCgpID0+IHsKKyAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVxdWVzdHMu
bGVuZ3RoLCA0KTsKKyAgICAgICAgICAgICAgICByZXF1ZXN0c1szXS5yZXNvbHZlKCdPSycpOwog
ICAgICAgICAgICAgICAgIHJldHVybiBNb2NrUmVtb3RlQVBJLndhaXRGb3JSZXF1ZXN0KCk7CiAg
ICAgICAgICAgICB9KS50aGVuKCgpID0+IHsKICAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwo
cmVxdWVzdHMubGVuZ3RoLCA1KTsKICAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVxdWVz
dHNbNF0ubWV0aG9kLCAnR0VUJyk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlcXVl
c3RzWzRdLnVybCwgJy9qc29uL2J1aWxkZXJzL3NvbWUtYnVpbGRlci0xL2J1aWxkcy8/c2VsZWN0
PS0xJnNlbGVjdD0tMicpOwotICAgICAgICAgICAgICAgIHJlcXVlc3RzWzRdLnJlc29sdmUoe30p
OworICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXF1ZXN0c1s0XS51cmwsICcvanNvbi9i
dWlsZGVycy9zb21lLWJ1aWxkZXItMS9wZW5kaW5nQnVpbGRzJyk7CisgICAgICAgICAgICAgICAg
TW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1s0XS5yZXNvbHZlKFtNb2NrRGF0YS5wZW5kaW5nQnVpbGQo
e2J1aWxkUmVxdWVzdElkOiA3MDB9KV0pOworICAgICAgICAgICAgICAgIHJldHVybiBNb2NrUmVt
b3RlQVBJLndhaXRGb3JSZXF1ZXN0KCk7CisgICAgICAgICAgICB9KS50aGVuKCgpID0+IHsKKyAg
ICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVxdWVzdHMubGVuZ3RoLCA2KTsKKyAgICAgICAg
ICAgICAgICBhc3NlcnQuZXF1YWwocmVxdWVzdHNbNV0ubWV0aG9kLCAnR0VUJyk7CisgICAgICAg
ICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlcXVlc3RzWzVdLnVybCwgJy9qc29uL2J1aWxkZXJzL3Nv
bWUtYnVpbGRlci0xL2J1aWxkcy8/c2VsZWN0PS0xJnNlbGVjdD0tMicpOworICAgICAgICAgICAg
ICAgIHJlcXVlc3RzWzVdLnJlc29sdmUoe30pOwogICAgICAgICAgICAgICAgIHJldHVybiBzeW5j
UHJvbWlzZTsKICAgICAgICAgICAgIH0pLnRoZW4oKCkgPT4gewogICAgICAgICAgICAgICAgIHJl
dHVybiBCdWlsZFJlcXVlc3QuZmV0Y2hGb3JUcmlnZ2VyYWJsZShNb2NrRGF0YS5tb2NrVGVzdFN5
bmNDb25maWdXaXRoVHdvQnVpbGRlcnMoKS50cmlnZ2VyYWJsZU5hbWUpOwpAQCAtNzA1LDUwICs3
MTQsNTIgQEAgZGVzY3JpYmUoJ0J1aWxkYm90VHJpZ2dlcmFibGUnLCBmdW5jdGlvbgogICAgICAg
ICAgICAgICAgIGNvbnN0IHNsYXZlSW5mbyA9IHtuYW1lOiAnc3luYy1zbGF2ZScsIHBhc3N3b3Jk
OiAncGFzc3dvcmQnfTsKICAgICAgICAgICAgICAgICB0cmlnZ2VyYWJsZSA9IG5ldyBCdWlsZGJv
dFRyaWdnZXJhYmxlKGNvbmZpZywgVGVzdFNlcnZlci5yZW1vdGVBUEkoKSwgTW9ja1JlbW90ZUFQ
SSwgc2xhdmVJbmZvLCBsb2dnZXIpOwogICAgICAgICAgICAgICAgIHN5bmNQcm9taXNlID0gdHJp
Z2dlcmFibGUuaW5pdFN5bmNlcnMoKS50aGVuKCgpID0+IHRyaWdnZXJhYmxlLnN5bmNPbmNlKCkp
OwotICAgICAgICAgICAgICAgIHJldHVybiBNb2NrUmVtb3RlQVBJLndhaXRGb3JSZXF1ZXN0KCk7
Ci0gICAgICAgICAgICB9KS50aGVuKCgpID0+IHsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1
YWwocmVxdWVzdHMubGVuZ3RoLCAxKTsKLSAgICAgICAgICAgICAgICBhc3NlcnRSZXF1ZXN0QW5k
UmVzb2x2ZShyZXF1ZXN0c1swXSwgJ0dFVCcsICcvanNvbi9idWlsZGVycy9zb21lLWJ1aWxkZXIt
MS9wZW5kaW5nQnVpbGRzJywgW10pOworICAgICAgICAgICAgICAgIGFzc2VydFJlcXVlc3RBbmRS
ZXNvbHZlKHJlcXVlc3RzWzBdLCAnR0VUJywgTW9ja0RhdGEuYnVpbGRib3QwOEJ1aWxkZXJzVVJM
KCksIE1vY2tEYXRhLm1vY2tCdWlsZGJvdDA4QnVpbGRlcnMoKSk7CiAgICAgICAgICAgICAgICAg
cmV0dXJuIE1vY2tSZW1vdGVBUEkud2FpdEZvclJlcXVlc3QoKTsKICAgICAgICAgICAgIH0pLnRo
ZW4oKCkgPT4gewogICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXF1ZXN0cy5sZW5ndGgs
IDIpOwotICAgICAgICAgICAgICAgIGFzc2VydFJlcXVlc3RBbmRSZXNvbHZlKHJlcXVlc3RzWzFd
LCAnR0VUJywgJy9qc29uL2J1aWxkZXJzL3NvbWUtYnVpbGRlci0xL2J1aWxkcy8/c2VsZWN0PS0x
JnNlbGVjdD0tMicsCi0gICAgICAgICAgICAgICAgICAgIHtbLTFdOiBNb2NrRGF0YS5ydW5uaW5n
QnVpbGQoe2J1aWxkUmVxdWVzdElkOiA3MDB9KSwgWy0yXTogTW9ja0RhdGEuZmluaXNoZWRCdWls
ZCh7YnVpbGRSZXF1ZXN0SWQ6IDcxMH0pfSk7CisgICAgICAgICAgICAgICAgYXNzZXJ0UmVxdWVz
dEFuZFJlc29sdmUocmVxdWVzdHNbMV0sICdHRVQnLCAnL2pzb24vYnVpbGRlcnMvc29tZS1idWls
ZGVyLTEvcGVuZGluZ0J1aWxkcycsIFtdKTsKICAgICAgICAgICAgICAgICByZXR1cm4gTW9ja1Jl
bW90ZUFQSS53YWl0Rm9yUmVxdWVzdCgpOwogICAgICAgICAgICAgfSkudGhlbigoKSA9PiB7CiAg
ICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlcXVlc3RzLmxlbmd0aCwgMyk7Ci0gICAgICAg
ICAgICAgICAgYXNzZXJ0UmVxdWVzdEFuZFJlc29sdmUocmVxdWVzdHNbMl0sICdQT1NUJywgJy9i
dWlsZGVycy9zb21lLWJ1aWxkZXItMS9mb3JjZScpOwotICAgICAgICAgICAgICAgIGFzc2VydC5k
ZWVwRXF1YWwocmVxdWVzdHNbMl0uZGF0YSwgeyd3ayc6ICcxOTI3MzYnLCAnb3MnOiAnMTAuMTEg
MTVBMjg0JywgJ2J1aWxkLXJlcXVlc3QtaWQnOiAnNzAxJ30pOworICAgICAgICAgICAgICAgIGFz
c2VydFJlcXVlc3RBbmRSZXNvbHZlKHJlcXVlc3RzWzJdLCAnR0VUJywgJy9qc29uL2J1aWxkZXJz
L3NvbWUtYnVpbGRlci0xL2J1aWxkcy8/c2VsZWN0PS0xJnNlbGVjdD0tMicsCisgICAgICAgICAg
ICAgICAgICAgIHtbLTFdOiBNb2NrRGF0YS5ydW5uaW5nQnVpbGQoe2J1aWxkUmVxdWVzdElkOiA3
MDB9KSwgWy0yXTogTW9ja0RhdGEuZmluaXNoZWRCdWlsZCh7YnVpbGRSZXF1ZXN0SWQ6IDcxMH0p
fSk7CiAgICAgICAgICAgICAgICAgcmV0dXJuIE1vY2tSZW1vdGVBUEkud2FpdEZvclJlcXVlc3Qo
KTsKICAgICAgICAgICAgIH0pLnRoZW4oKCkgPT4gewogICAgICAgICAgICAgICAgIGFzc2VydC5l
cXVhbChyZXF1ZXN0cy5sZW5ndGgsIDQpOwotICAgICAgICAgICAgICAgIGFzc2VydFJlcXVlc3RB
bmRSZXNvbHZlKHJlcXVlc3RzWzNdLCAnR0VUJywgJy9qc29uL2J1aWxkZXJzL3NvbWUtYnVpbGRl
ci0xL3BlbmRpbmdCdWlsZHMnLAotICAgICAgICAgICAgICAgICAgICBbTW9ja0RhdGEucGVuZGlu
Z0J1aWxkKHtidWlsZFJlcXVlc3RJZDogNzAxfSldKTsKKyAgICAgICAgICAgICAgICBhc3NlcnRS
ZXF1ZXN0QW5kUmVzb2x2ZShyZXF1ZXN0c1szXSwgJ1BPU1QnLCAnL2J1aWxkZXJzL3NvbWUtYnVp
bGRlci0xL2ZvcmNlJyk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChyZXF1ZXN0
c1szXS5kYXRhLCB7J3drJzogJzE5MjczNicsICdvcyc6ICcxMC4xMSAxNUEyODQnLCAnYnVpbGQt
cmVxdWVzdC1pZCc6ICc3MDEnfSk7CiAgICAgICAgICAgICAgICAgcmV0dXJuIE1vY2tSZW1vdGVB
UEkud2FpdEZvclJlcXVlc3QoKTsKICAgICAgICAgICAgIH0pLnRoZW4oKCkgPT4gewogICAgICAg
ICAgICAgICAgIGFzc2VydC5lcXVhbChyZXF1ZXN0cy5sZW5ndGgsIDUpOwotICAgICAgICAgICAg
ICAgIGFzc2VydFJlcXVlc3RBbmRSZXNvbHZlKHJlcXVlc3RzWzRdLCAnR0VUJywgJy9qc29uL2J1
aWxkZXJzL3NvbWUtYnVpbGRlci0xL2J1aWxkcy8/c2VsZWN0PS0xJnNlbGVjdD0tMicsCisgICAg
ICAgICAgICAgICAgYXNzZXJ0UmVxdWVzdEFuZFJlc29sdmUocmVxdWVzdHNbNF0sICdHRVQnLCAn
L2pzb24vYnVpbGRlcnMvc29tZS1idWlsZGVyLTEvcGVuZGluZ0J1aWxkcycsCisgICAgICAgICAg
ICAgICAgICAgIFtNb2NrRGF0YS5wZW5kaW5nQnVpbGQoe2J1aWxkUmVxdWVzdElkOiA3MDF9KV0p
OworICAgICAgICAgICAgICAgIHJldHVybiBNb2NrUmVtb3RlQVBJLndhaXRGb3JSZXF1ZXN0KCk7
CisgICAgICAgICAgICB9KS50aGVuKCgpID0+IHsKKyAgICAgICAgICAgICAgICBhc3NlcnQuZXF1
YWwocmVxdWVzdHMubGVuZ3RoLCA2KTsKKyAgICAgICAgICAgICAgICBhc3NlcnRSZXF1ZXN0QW5k
UmVzb2x2ZShyZXF1ZXN0c1s1XSwgJ0dFVCcsICcvanNvbi9idWlsZGVycy9zb21lLWJ1aWxkZXIt
MS9idWlsZHMvP3NlbGVjdD0tMSZzZWxlY3Q9LTInLAogICAgICAgICAgICAgICAgICAgICB7Wy0x
XTogTW9ja0RhdGEucnVubmluZ0J1aWxkKHtidWlsZFJlcXVlc3RJZDogNzAwfSksIFstMl06IE1v
Y2tEYXRhLmZpbmlzaGVkQnVpbGQoe2J1aWxkUmVxdWVzdElkOiA3MTB9KX0pOwogICAgICAgICAg
ICAgICAgIHJldHVybiBzeW5jUHJvbWlzZTsKICAgICAgICAgICAgIH0pLnRoZW4oKCkgPT4gewog
ICAgICAgICAgICAgICAgIHN5bmNQcm9taXNlID0gdHJpZ2dlcmFibGUuaW5pdFN5bmNlcnMoKS50
aGVuKCgpID0+IHRyaWdnZXJhYmxlLnN5bmNPbmNlKCkpOworICAgICAgICAgICAgICAgIGFzc2Vy
dFJlcXVlc3RBbmRSZXNvbHZlKHJlcXVlc3RzWzZdLCAnR0VUJywgTW9ja0RhdGEuYnVpbGRib3Qw
OEJ1aWxkZXJzVVJMKCksIE1vY2tEYXRhLm1vY2tCdWlsZGJvdDA4QnVpbGRlcnMoKSk7CiAgICAg
ICAgICAgICAgICAgcmV0dXJuIE1vY2tSZW1vdGVBUEkud2FpdEZvclJlcXVlc3QoKTsKICAgICAg
ICAgICAgIH0pLnRoZW4oKCkgPT4gewotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXF1
ZXN0cy5sZW5ndGgsIDYpOwotICAgICAgICAgICAgICAgIGFzc2VydFJlcXVlc3RBbmRSZXNvbHZl
KHJlcXVlc3RzWzVdLCAnR0VUJywgJy9qc29uL2J1aWxkZXJzL3NvbWUtYnVpbGRlci0xL3BlbmRp
bmdCdWlsZHMnLCBbXSk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlcXVlc3RzLmxl
bmd0aCwgOCk7CisgICAgICAgICAgICAgICAgYXNzZXJ0UmVxdWVzdEFuZFJlc29sdmUocmVxdWVz
dHNbN10sICdHRVQnLCAnL2pzb24vYnVpbGRlcnMvc29tZS1idWlsZGVyLTEvcGVuZGluZ0J1aWxk
cycsIFtdKTsKICAgICAgICAgICAgICAgICByZXR1cm4gTW9ja1JlbW90ZUFQSS53YWl0Rm9yUmVx
dWVzdCgpOwogICAgICAgICAgICAgfSkudGhlbigoKSA9PiB7Ci0gICAgICAgICAgICAgICAgYXNz
ZXJ0LmVxdWFsKHJlcXVlc3RzLmxlbmd0aCwgNyk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0UmVx
dWVzdEFuZFJlc29sdmUocmVxdWVzdHNbNl0sICdHRVQnLCAnL2pzb24vYnVpbGRlcnMvc29tZS1i
dWlsZGVyLTEvYnVpbGRzLz9zZWxlY3Q9LTEmc2VsZWN0PS0yJywKKyAgICAgICAgICAgICAgICBh
c3NlcnQuZXF1YWwocmVxdWVzdHMubGVuZ3RoLCA5KTsKKyAgICAgICAgICAgICAgICBhc3NlcnRS
ZXF1ZXN0QW5kUmVzb2x2ZShyZXF1ZXN0c1s4XSwgJ0dFVCcsICcvanNvbi9idWlsZGVycy9zb21l
LWJ1aWxkZXItMS9idWlsZHMvP3NlbGVjdD0tMSZzZWxlY3Q9LTInLAogICAgICAgICAgICAgICAg
ICAgICB7Wy0xXTogTW9ja0RhdGEucnVubmluZ0J1aWxkKHtidWlsZFJlcXVlc3RJZDogNzAxfSks
IFstMl06IE1vY2tEYXRhLnJ1bm5pbmdCdWlsZCh7YnVpbGRSZXF1ZXN0SWQ6IDcwMH0pfSk7CiAg
ICAgICAgICAgICAgICAgcmV0dXJuIE1vY2tSZW1vdGVBUEkud2FpdEZvclJlcXVlc3QoKTsKICAg
ICAgICAgICAgIH0pLnRoZW4oKCkgPT4gewotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChy
ZXF1ZXN0cy5sZW5ndGgsIDgpOwotICAgICAgICAgICAgICAgIGFzc2VydFJlcXVlc3RBbmRSZXNv
bHZlKHJlcXVlc3RzWzddLCAnR0VUJywgJy9qc29uL2J1aWxkZXJzL3NvbWUtYnVpbGRlci0xL3Bl
bmRpbmdCdWlsZHMnLCBbXSk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlcXVlc3Rz
Lmxlbmd0aCwgMTApOworICAgICAgICAgICAgICAgIGFzc2VydFJlcXVlc3RBbmRSZXNvbHZlKHJl
cXVlc3RzWzldLCAnR0VUJywgJy9qc29uL2J1aWxkZXJzL3NvbWUtYnVpbGRlci0xL3BlbmRpbmdC
dWlsZHMnLCBbXSk7CiAgICAgICAgICAgICAgICAgcmV0dXJuIE1vY2tSZW1vdGVBUEkud2FpdEZv
clJlcXVlc3QoKTsKICAgICAgICAgICAgIH0pLnRoZW4oKCkgPT4gewotICAgICAgICAgICAgICAg
IGFzc2VydC5lcXVhbChyZXF1ZXN0cy5sZW5ndGgsIDkpOwotICAgICAgICAgICAgICAgIGFzc2Vy
dFJlcXVlc3RBbmRSZXNvbHZlKHJlcXVlc3RzWzhdLCAnR0VUJywgJy9qc29uL2J1aWxkZXJzL3Nv
bWUtYnVpbGRlci0xL2J1aWxkcy8/c2VsZWN0PS0xJnNlbGVjdD0tMicsCisgICAgICAgICAgICAg
ICAgYXNzZXJ0LmVxdWFsKHJlcXVlc3RzLmxlbmd0aCwgMTEpOworICAgICAgICAgICAgICAgIGFz
c2VydFJlcXVlc3RBbmRSZXNvbHZlKHJlcXVlc3RzWzEwXSwgJ0dFVCcsICcvanNvbi9idWlsZGVy
cy9zb21lLWJ1aWxkZXItMS9idWlsZHMvP3NlbGVjdD0tMSZzZWxlY3Q9LTInLAogICAgICAgICAg
ICAgICAgICAgICB7Wy0xXTogTW9ja0RhdGEucnVubmluZ0J1aWxkKHtidWlsZFJlcXVlc3RJZDog
NzAxfSksIFstMl06IE1vY2tEYXRhLnJ1bm5pbmdCdWlsZCh7YnVpbGRSZXF1ZXN0SWQ6IDcwMH0p
fSk7CiAgICAgICAgICAgICAgICAgcmV0dXJuIHN5bmNQcm9taXNlOwogICAgICAgICAgICAgfSk7
CkBAIC03NjUsMzcgKzc3NiwzOCBAQCBkZXNjcmliZSgnQnVpbGRib3RUcmlnZ2VyYWJsZScsIGZ1
bmN0aW9uCiAgICAgICAgICAgICAgICAgY29uc3Qgc2xhdmVJbmZvID0ge25hbWU6ICdzeW5jLXNs
YXZlJywgcGFzc3dvcmQ6ICdwYXNzd29yZCd9OwogICAgICAgICAgICAgICAgIGNvbnN0IHRyaWdn
ZXJhYmxlID0gbmV3IEJ1aWxkYm90VHJpZ2dlcmFibGUoY29uZmlnLCBUZXN0U2VydmVyLnJlbW90
ZUFQSSgpLCBNb2NrUmVtb3RlQVBJLCBzbGF2ZUluZm8sIGxvZ2dlcik7CiAgICAgICAgICAgICAg
ICAgc3luY1Byb21pc2UgPSB0cmlnZ2VyYWJsZS5pbml0U3luY2VycygpLnRoZW4oKCkgPT4gdHJp
Z2dlcmFibGUuc3luY09uY2UoKSk7Ci0gICAgICAgICAgICAgICAgcmV0dXJuIE1vY2tSZW1vdGVB
UEkud2FpdEZvclJlcXVlc3QoKTsKLSAgICAgICAgICAgIH0pLnRoZW4oKCkgPT4gewotICAgICAg
ICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzLmxlbmd0aCwgMSk7
Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMF0u
bWV0aG9kLCAnR0VUJyk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVB
UEkucmVxdWVzdHNbMF0udXJsLCAnL2pzb24vYnVpbGRlcnMvc29tZS1idWlsZGVyLTEvcGVuZGlu
Z0J1aWxkcycpOwotICAgICAgICAgICAgICAgIE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMF0ucmVz
b2x2ZShbXSk7CisgICAgICAgICAgICAgICAgYXNzZXJ0UmVxdWVzdEFuZFJlc29sdmUoTW9ja1Jl
bW90ZUFQSS5yZXF1ZXN0c1swXSwgJ0dFVCcsIE1vY2tEYXRhLmJ1aWxkYm90MDhCdWlsZGVyc1VS
TCgpLCBNb2NrRGF0YS5tb2NrQnVpbGRib3QwOEJ1aWxkZXJzKCkpOwogICAgICAgICAgICAgICAg
IHJldHVybiBNb2NrUmVtb3RlQVBJLndhaXRGb3JSZXF1ZXN0KCk7CiAgICAgICAgICAgICB9KS50
aGVuKCgpID0+IHsKICAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5y
ZXF1ZXN0cy5sZW5ndGgsIDIpOwogICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVt
b3RlQVBJLnJlcXVlc3RzWzFdLm1ldGhvZCwgJ0dFVCcpOwotICAgICAgICAgICAgICAgIGFzc2Vy
dC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzFdLnVybCwgJy9qc29uL2J1aWxkZXJzL3Nv
bWUtYnVpbGRlci0xL2J1aWxkcy8/c2VsZWN0PS0xJnNlbGVjdD0tMicpOwotICAgICAgICAgICAg
ICAgIE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMV0ucmVzb2x2ZSh7fSk7CisgICAgICAgICAgICAg
ICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMV0udXJsLCAnL2pzb24vYnVp
bGRlcnMvc29tZS1idWlsZGVyLTEvcGVuZGluZ0J1aWxkcycpOworICAgICAgICAgICAgICAgIE1v
Y2tSZW1vdGVBUEkucmVxdWVzdHNbMV0ucmVzb2x2ZShbXSk7CiAgICAgICAgICAgICAgICAgcmV0
dXJuIE1vY2tSZW1vdGVBUEkud2FpdEZvclJlcXVlc3QoKTsKICAgICAgICAgICAgIH0pLnRoZW4o
KCkgPT4gewogICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVl
c3RzLmxlbmd0aCwgMyk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVB
UEkucmVxdWVzdHNbMl0ubWV0aG9kLCAnUE9TVCcpOwotICAgICAgICAgICAgICAgIGFzc2VydC5l
cXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzJdLnVybCwgJy9idWlsZGVycy9zb21lLWJ1aWxk
ZXItMS9mb3JjZScpOwotICAgICAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwoTW9ja1JlbW90
ZUFQSS5yZXF1ZXN0c1syXS5kYXRhLCB7J3drJzogJzE5MjczNicsICdvcyc6ICcxMC4xMSAxNUEy
ODQnLCAnYnVpbGQtcmVxdWVzdC1pZCc6ICc3MDEnfSk7Ci0gICAgICAgICAgICAgICAgTW9ja1Jl
bW90ZUFQSS5yZXF1ZXN0c1syXS5yZXNvbHZlKCdPSycpOworICAgICAgICAgICAgICAgIGFzc2Vy
dC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzJdLm1ldGhvZCwgJ0dFVCcpOworICAgICAg
ICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzJdLnVybCwgJy9q
c29uL2J1aWxkZXJzL3NvbWUtYnVpbGRlci0xL2J1aWxkcy8/c2VsZWN0PS0xJnNlbGVjdD0tMicp
OworICAgICAgICAgICAgICAgIE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMl0ucmVzb2x2ZSh7fSk7
CiAgICAgICAgICAgICAgICAgcmV0dXJuIE1vY2tSZW1vdGVBUEkud2FpdEZvclJlcXVlc3QoKTsK
ICAgICAgICAgICAgIH0pLnRoZW4oKCkgPT4gewogICAgICAgICAgICAgICAgIGFzc2VydC5lcXVh
bChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzLmxlbmd0aCwgNCk7Ci0gICAgICAgICAgICAgICAgYXNz
ZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbM10ubWV0aG9kLCAnR0VUJyk7Ci0gICAg
ICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbM10udXJsLCAn
L2pzb24vYnVpbGRlcnMvc29tZS1idWlsZGVyLTEvcGVuZGluZ0J1aWxkcycpOwotICAgICAgICAg
ICAgICAgIE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbM10ucmVzb2x2ZShbTW9ja0RhdGEucGVuZGlu
Z0J1aWxkKHtidWlsZFJlcXVlc3RJZDogNzAxfSldKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQu
ZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1szXS5tZXRob2QsICdQT1NUJyk7CisgICAgICAg
ICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbM10udXJsLCAnL2J1
aWxkZXJzL3NvbWUtYnVpbGRlci0xL2ZvcmNlJyk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LmRl
ZXBFcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzNdLmRhdGEsIHsnd2snOiAnMTkyNzM2Jywg
J29zJzogJzEwLjExIDE1QTI4NCcsICdidWlsZC1yZXF1ZXN0LWlkJzogJzcwMSd9KTsKKyAgICAg
ICAgICAgICAgICBNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzNdLnJlc29sdmUoJ09LJyk7CiAgICAg
ICAgICAgICAgICAgcmV0dXJuIE1vY2tSZW1vdGVBUEkud2FpdEZvclJlcXVlc3QoKTsKICAgICAg
ICAgICAgIH0pLnRoZW4oKCkgPT4gewogICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2Nr
UmVtb3RlQVBJLnJlcXVlc3RzLmxlbmd0aCwgNSk7CiAgICAgICAgICAgICAgICAgYXNzZXJ0LmVx
dWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbNF0ubWV0aG9kLCAnR0VUJyk7Ci0gICAgICAgICAg
ICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbNF0udXJsLCAnL2pzb24v
YnVpbGRlcnMvc29tZS1idWlsZGVyLTEvYnVpbGRzLz9zZWxlY3Q9LTEmc2VsZWN0PS0yJyk7Ci0g
ICAgICAgICAgICAgICAgTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1s0XS5yZXNvbHZlKHt9KTsKKyAg
ICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1s0XS51cmws
ICcvanNvbi9idWlsZGVycy9zb21lLWJ1aWxkZXItMS9wZW5kaW5nQnVpbGRzJyk7CisgICAgICAg
ICAgICAgICAgTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1s0XS5yZXNvbHZlKFtNb2NrRGF0YS5wZW5k
aW5nQnVpbGQoe2J1aWxkUmVxdWVzdElkOiA3MDF9KV0pOworICAgICAgICAgICAgICAgIHJldHVy
biBNb2NrUmVtb3RlQVBJLndhaXRGb3JSZXF1ZXN0KCk7CisgICAgICAgICAgICB9KS50aGVuKCgp
ID0+IHsKKyAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0
cy5sZW5ndGgsIDYpOworICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJ
LnJlcXVlc3RzWzVdLm1ldGhvZCwgJ0dFVCcpOworICAgICAgICAgICAgICAgIGFzc2VydC5lcXVh
bChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzVdLnVybCwgJy9qc29uL2J1aWxkZXJzL3NvbWUtYnVp
bGRlci0xL2J1aWxkcy8/c2VsZWN0PS0xJnNlbGVjdD0tMicpOworICAgICAgICAgICAgICAgIE1v
Y2tSZW1vdGVBUEkucmVxdWVzdHNbNV0ucmVzb2x2ZSh7fSk7CiAgICAgICAgICAgICAgICAgcmV0
dXJuIHN5bmNQcm9taXNlOwogICAgICAgICAgICAgfSkudGhlbigoKSA9PiB7CiAgICAgICAgICAg
ICAgICAgYXNzZXJ0LmVxdWFsKEJ1aWxkUmVxdWVzdC5hbGwoKS5sZW5ndGgsIDQpOwpAQCAtODMy
LDMwICs4NDQsMzEgQEAgZGVzY3JpYmUoJ0J1aWxkYm90VHJpZ2dlcmFibGUnLCBmdW5jdGlvbgog
ICAgICAgICAgICAgICAgIGNvbnN0IHNsYXZlSW5mbyA9IHtuYW1lOiAnc3luYy1zbGF2ZScsIHBh
c3N3b3JkOiAncGFzc3dvcmQnfTsKICAgICAgICAgICAgICAgICBjb25zdCB0cmlnZ2VyYWJsZSA9
IG5ldyBCdWlsZGJvdFRyaWdnZXJhYmxlKGNvbmZpZywgVGVzdFNlcnZlci5yZW1vdGVBUEkoKSwg
TW9ja1JlbW90ZUFQSSwgc2xhdmVJbmZvLCBsb2dnZXIpOwogICAgICAgICAgICAgICAgIHN5bmNQ
cm9taXNlID0gdHJpZ2dlcmFibGUuaW5pdFN5bmNlcnMoKS50aGVuKCgpID0+IHRyaWdnZXJhYmxl
LnN5bmNPbmNlKCkpOwotICAgICAgICAgICAgICAgIHJldHVybiBNb2NrUmVtb3RlQVBJLndhaXRG
b3JSZXF1ZXN0KCk7Ci0gICAgICAgICAgICB9KS50aGVuKCgpID0+IHsKLSAgICAgICAgICAgICAg
ICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0cy5sZW5ndGgsIDEpOwotICAgICAg
ICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzBdLm1ldGhvZCwg
J0dFVCcpOwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVl
c3RzWzBdLnVybCwgJy9qc29uL2J1aWxkZXJzL3NvbWUtYnVpbGRlci0xL3BlbmRpbmdCdWlsZHMn
KTsKLSAgICAgICAgICAgICAgICBNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzBdLnJlc29sdmUoW10p
OworICAgICAgICAgICAgICAgIGFzc2VydFJlcXVlc3RBbmRSZXNvbHZlKE1vY2tSZW1vdGVBUEku
cmVxdWVzdHNbMF0sICdHRVQnLCBNb2NrRGF0YS5idWlsZGJvdDA4QnVpbGRlcnNVUkwoKSwgTW9j
a0RhdGEubW9ja0J1aWxkYm90MDhCdWlsZGVycygpKTsKICAgICAgICAgICAgICAgICByZXR1cm4g
TW9ja1JlbW90ZUFQSS53YWl0Rm9yUmVxdWVzdCgpOwogICAgICAgICAgICAgfSkudGhlbigoKSA9
PiB7CiAgICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHMu
bGVuZ3RoLCAyKTsKICAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5y
ZXF1ZXN0c1sxXS5tZXRob2QsICdHRVQnKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwo
TW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1sxXS51cmwsICcvanNvbi9idWlsZGVycy9zb21lLWJ1aWxk
ZXItMS9idWlsZHMvP3NlbGVjdD0tMSZzZWxlY3Q9LTInKTsKLSAgICAgICAgICAgICAgICBNb2Nr
UmVtb3RlQVBJLnJlcXVlc3RzWzFdLnJlc29sdmUoe30pOworICAgICAgICAgICAgICAgIGFzc2Vy
dC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzFdLnVybCwgJy9qc29uL2J1aWxkZXJzL3Nv
bWUtYnVpbGRlci0xL3BlbmRpbmdCdWlsZHMnKTsKKyAgICAgICAgICAgICAgICBNb2NrUmVtb3Rl
QVBJLnJlcXVlc3RzWzFdLnJlc29sdmUoW10pOwogICAgICAgICAgICAgICAgIHJldHVybiBNb2Nr
UmVtb3RlQVBJLndhaXRGb3JSZXF1ZXN0KCk7CiAgICAgICAgICAgICB9KS50aGVuKCgpID0+IHsK
ICAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0cy5sZW5n
dGgsIDMpOwogICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVl
c3RzWzJdLm1ldGhvZCwgJ0dFVCcpOwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2Nr
UmVtb3RlQVBJLnJlcXVlc3RzWzJdLnVybCwgJy9qc29uL2J1aWxkZXJzL3NvbWUtYnVpbGRlci0x
L3BlbmRpbmdCdWlsZHMnKTsKLSAgICAgICAgICAgICAgICBNb2NrUmVtb3RlQVBJLnJlcXVlc3Rz
WzJdLnJlc29sdmUoW10pOworICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3Rl
QVBJLnJlcXVlc3RzWzJdLnVybCwgJy9qc29uL2J1aWxkZXJzL3NvbWUtYnVpbGRlci0xL2J1aWxk
cy8/c2VsZWN0PS0xJnNlbGVjdD0tMicpOworICAgICAgICAgICAgICAgIE1vY2tSZW1vdGVBUEku
cmVxdWVzdHNbMl0ucmVzb2x2ZSh7fSk7CiAgICAgICAgICAgICAgICAgcmV0dXJuIE1vY2tSZW1v
dGVBUEkud2FpdEZvclJlcXVlc3QoKTsKICAgICAgICAgICAgIH0pLnRoZW4oKCkgPT4gewogICAg
ICAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzLmxlbmd0aCwg
NCk7CiAgICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNb
M10ubWV0aG9kLCAnR0VUJyk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1v
dGVBUEkucmVxdWVzdHNbM10udXJsLCAnL2pzb24vYnVpbGRlcnMvc29tZS1idWlsZGVyLTEvYnVp
bGRzLz9zZWxlY3Q9LTEmc2VsZWN0PS0yJyk7Ci0gICAgICAgICAgICAgICAgTW9ja1JlbW90ZUFQ
SS5yZXF1ZXN0c1szXS5yZXNvbHZlKHt9KTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwo
TW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1szXS51cmwsICcvanNvbi9idWlsZGVycy9zb21lLWJ1aWxk
ZXItMS9wZW5kaW5nQnVpbGRzJyk7CisgICAgICAgICAgICAgICAgTW9ja1JlbW90ZUFQSS5yZXF1
ZXN0c1szXS5yZXNvbHZlKFtdKTsKKyAgICAgICAgICAgICAgICByZXR1cm4gTW9ja1JlbW90ZUFQ
SS53YWl0Rm9yUmVxdWVzdCgpOworICAgICAgICAgICAgfSkudGhlbigoKSA9PiB7CisgICAgICAg
ICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHMubGVuZ3RoLCA1KTsK
KyAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1s0XS5t
ZXRob2QsICdHRVQnKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQ
SS5yZXF1ZXN0c1s0XS51cmwsICcvanNvbi9idWlsZGVycy9zb21lLWJ1aWxkZXItMS9idWlsZHMv
P3NlbGVjdD0tMSZzZWxlY3Q9LTInKTsKKyAgICAgICAgICAgICAgICBNb2NrUmVtb3RlQVBJLnJl
cXVlc3RzWzRdLnJlc29sdmUoe30pOwogICAgICAgICAgICAgICAgIHJldHVybiBzeW5jUHJvbWlz
ZTsKICAgICAgICAgICAgIH0pLnRoZW4oKCkgPT4gewogICAgICAgICAgICAgICAgIGFzc2VydC5l
cXVhbChCdWlsZFJlcXVlc3QuYWxsKCkubGVuZ3RoLCA0KTsKQEAgLTg4NywyNSArOTAwLDI2IEBA
IGRlc2NyaWJlKCdCdWlsZGJvdFRyaWdnZXJhYmxlJywgZnVuY3Rpb24KICAgICAgICAgICAgICAg
ICBjb25zdCBzbGF2ZUluZm8gPSB7bmFtZTogJ3N5bmMtc2xhdmUnLCBwYXNzd29yZDogJ3Bhc3N3
b3JkJ307CiAgICAgICAgICAgICAgICAgY29uc3QgdHJpZ2dlcmFibGUgPSBuZXcgQnVpbGRib3RU
cmlnZ2VyYWJsZShjb25maWcsIFRlc3RTZXJ2ZXIucmVtb3RlQVBJKCksIE1vY2tSZW1vdGVBUEks
IHNsYXZlSW5mbywgbG9nZ2VyKTsKICAgICAgICAgICAgICAgICBzeW5jUHJvbWlzZSA9IHRyaWdn
ZXJhYmxlLmluaXRTeW5jZXJzKCkudGhlbigoKSA9PiB0cmlnZ2VyYWJsZS5zeW5jT25jZSgpKTsK
LSAgICAgICAgICAgICAgICByZXR1cm4gTW9ja1JlbW90ZUFQSS53YWl0Rm9yUmVxdWVzdCgpOwot
ICAgICAgICAgICAgfSkudGhlbigoKSA9PiB7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFs
KE1vY2tSZW1vdGVBUEkucmVxdWVzdHMubGVuZ3RoLCAxKTsKLSAgICAgICAgICAgICAgICBhc3Nl
cnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1swXS5tZXRob2QsICdHRVQnKTsKLSAgICAg
ICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1swXS51cmwsICcv
anNvbi9idWlsZGVycy9zb21lLWJ1aWxkZXItMS9wZW5kaW5nQnVpbGRzJyk7Ci0gICAgICAgICAg
ICAgICAgTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1swXS5yZXNvbHZlKFtdKTsKKyAgICAgICAgICAg
ICAgICBhc3NlcnRSZXF1ZXN0QW5kUmVzb2x2ZShNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzBdLCAn
R0VUJywgTW9ja0RhdGEuYnVpbGRib3QwOEJ1aWxkZXJzVVJMKCksIE1vY2tEYXRhLm1vY2tCdWls
ZGJvdDA4QnVpbGRlcnMoKSk7CiAgICAgICAgICAgICAgICAgcmV0dXJuIE1vY2tSZW1vdGVBUEku
d2FpdEZvclJlcXVlc3QoKTsKICAgICAgICAgICAgIH0pLnRoZW4oKCkgPT4gewogICAgICAgICAg
ICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzLmxlbmd0aCwgMik7CiAg
ICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMV0ubWV0
aG9kLCAnR0VUJyk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEku
cmVxdWVzdHNbMV0udXJsLCAnL2pzb24vYnVpbGRlcnMvc29tZS1idWlsZGVyLTEvYnVpbGRzLz9z
ZWxlY3Q9LTEmc2VsZWN0PS0yJyk7Ci0gICAgICAgICAgICAgICAgTW9ja1JlbW90ZUFQSS5yZXF1
ZXN0c1sxXS5yZXNvbHZlKHt9KTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1Jl
bW90ZUFQSS5yZXF1ZXN0c1sxXS51cmwsICcvanNvbi9idWlsZGVycy9zb21lLWJ1aWxkZXItMS9w
ZW5kaW5nQnVpbGRzJyk7CisgICAgICAgICAgICAgICAgTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1sx
XS5yZXNvbHZlKFtdKTsKICAgICAgICAgICAgICAgICByZXR1cm4gTW9ja1JlbW90ZUFQSS53YWl0
Rm9yUmVxdWVzdCgpOwogICAgICAgICAgICAgfSkudGhlbigoKSA9PiB7CiAgICAgICAgICAgICAg
ICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHMubGVuZ3RoLCAzKTsKLSAgICAg
ICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1syXS5tZXRob2Qs
ICdQT1NUJyk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVx
dWVzdHNbMl0udXJsLCAnL2J1aWxkZXJzL3NvbWUtYnVpbGRlci0xL2ZvcmNlJyk7Ci0gICAgICAg
ICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzJdLmRhdGEs
IHsnd2snOiAnMTkxNjIyJywgJ29zJzogJzEwLjExIDE1QTI4NCcsICdidWlsZC1yZXF1ZXN0LWlk
JzogJzcxMCd9KTsKLSAgICAgICAgICAgICAgICBNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzJdLnJl
c29sdmUoJ09LJyk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEku
cmVxdWVzdHNbMl0ubWV0aG9kLCAnR0VUJyk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFs
KE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMl0udXJsLCAnL2pzb24vYnVpbGRlcnMvc29tZS1idWls
ZGVyLTEvYnVpbGRzLz9zZWxlY3Q9LTEmc2VsZWN0PS0yJyk7CisgICAgICAgICAgICAgICAgTW9j
a1JlbW90ZUFQSS5yZXF1ZXN0c1syXS5yZXNvbHZlKHt9KTsKKyAgICAgICAgICAgICAgICByZXR1
cm4gTW9ja1JlbW90ZUFQSS53YWl0Rm9yUmVxdWVzdCgpOworICAgICAgICAgICAgfSkudGhlbigo
KSA9PiB7CisgICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVz
dHMubGVuZ3RoLCA0KTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQ
SS5yZXF1ZXN0c1szXS5tZXRob2QsICdQT1NUJyk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LmVx
dWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbM10udXJsLCAnL2J1aWxkZXJzL3NvbWUtYnVpbGRl
ci0xL2ZvcmNlJyk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChNb2NrUmVtb3Rl
QVBJLnJlcXVlc3RzWzNdLmRhdGEsIHsnd2snOiAnMTkxNjIyJywgJ29zJzogJzEwLjExIDE1QTI4
NCcsICdidWlsZC1yZXF1ZXN0LWlkJzogJzcxMCd9KTsKKyAgICAgICAgICAgICAgICBNb2NrUmVt
b3RlQVBJLnJlcXVlc3RzWzNdLnJlc29sdmUoJ09LJyk7CiAgICAgICAgICAgICB9KTsKICAgICAg
ICAgfSk7CiAgICAgfSk7CkBAIC05NzIsNyArOTg2LDkgQEAgZGVzY3JpYmUoJ0J1aWxkYm90VHJp
Z2dlcmFibGUnLCBmdW5jdGlvbgogICAgICAgICAgICAgICAgIGNvbnN0IGxvZ2dlciA9IG5ldyBN
b2NrTG9nZ2VyOwogICAgICAgICAgICAgICAgIGNvbnN0IHNsYXZlSW5mbyA9IHtuYW1lOiAnc3lu
Yy1zbGF2ZScsIHBhc3N3b3JkOiAncGFzc3dvcmQnfTsKICAgICAgICAgICAgICAgICBjb25zdCBi
dWlsZGJvdFRyaWdnZXJhYmxlID0gbmV3IEJ1aWxkYm90VHJpZ2dlcmFibGUoY29uZmlnLCBUZXN0
U2VydmVyLnJlbW90ZUFQSSgpLCBNb2NrUmVtb3RlQVBJLCBzbGF2ZUluZm8sIGxvZ2dlcik7Ci0g
ICAgICAgICAgICAgICAgcmV0dXJuIGJ1aWxkYm90VHJpZ2dlcmFibGUuaW5pdFN5bmNlcnMoKS50
aGVuKCgpID0+IGJ1aWxkYm90VHJpZ2dlcmFibGUudXBkYXRlVHJpZ2dlcmFibGUoKSk7CisgICAg
ICAgICAgICAgICAgY29uc3QgdHJpZ2dlcmFibGVQcm9taXNlID0gYnVpbGRib3RUcmlnZ2VyYWJs
ZS5pbml0U3luY2VycygpLnRoZW4oKCkgPT4gYnVpbGRib3RUcmlnZ2VyYWJsZS51cGRhdGVUcmln
Z2VyYWJsZSgpKTsKKyAgICAgICAgICAgICAgICBhc3NlcnRSZXF1ZXN0QW5kUmVzb2x2ZShNb2Nr
UmVtb3RlQVBJLnJlcXVlc3RzWzBdLCAnR0VUJywgTW9ja0RhdGEuYnVpbGRib3QwOEJ1aWxkZXJz
VVJMKCksIE1vY2tEYXRhLm1vY2tCdWlsZGJvdDA4QnVpbGRlcnMoKSk7CisgICAgICAgICAgICAg
ICAgcmV0dXJuIHRyaWdnZXJhYmxlUHJvbWlzZTsKICAgICAgICAgICAgIH0pLnRoZW4oKCkgPT4g
cmVmZXRjaE1hbmlmZXN0KCkpLnRoZW4oKCkgPT4gewogICAgICAgICAgICAgICAgIGFzc2VydC5l
cXVhbChUcmlnZ2VyYWJsZS5hbGwoKS5sZW5ndGgsIDEpOwogCkBAIC05OTcsNyArMTAxMyw5IEBA
IGRlc2NyaWJlKCdCdWlsZGJvdFRyaWdnZXJhYmxlJywgZnVuY3Rpb24KICAgICAgICAgICAgICAg
ICBjb25zdCBsb2dnZXIgPSBuZXcgTW9ja0xvZ2dlcjsKICAgICAgICAgICAgICAgICBjb25zdCBz
bGF2ZUluZm8gPSB7bmFtZTogJ3N5bmMtc2xhdmUnLCBwYXNzd29yZDogJ3Bhc3N3b3JkJ307CiAg
ICAgICAgICAgICAgICAgY29uc3QgYnVpbGRib3RUcmlnZ2VyYWJsZSA9IG5ldyBCdWlsZGJvdFRy
aWdnZXJhYmxlKGNvbmZpZywgVGVzdFNlcnZlci5yZW1vdGVBUEkoKSwgTW9ja1JlbW90ZUFQSSwg
c2xhdmVJbmZvLCBsb2dnZXIpOwotICAgICAgICAgICAgICAgIHJldHVybiBidWlsZGJvdFRyaWdn
ZXJhYmxlLmluaXRTeW5jZXJzKCkudGhlbigoKSA9PiBidWlsZGJvdFRyaWdnZXJhYmxlLnVwZGF0
ZVRyaWdnZXJhYmxlKCkpOworICAgICAgICAgICAgICAgIGNvbnN0IHRyaWdnZXJhYmxlUHJvbWlz
ZSA9IGJ1aWxkYm90VHJpZ2dlcmFibGUuaW5pdFN5bmNlcnMoKS50aGVuKCgpID0+IGJ1aWxkYm90
VHJpZ2dlcmFibGUudXBkYXRlVHJpZ2dlcmFibGUoKSk7CisgICAgICAgICAgICAgICAgYXNzZXJ0
UmVxdWVzdEFuZFJlc29sdmUoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1sxXSwgJ0dFVCcsIE1vY2tE
YXRhLmJ1aWxkYm90MDhCdWlsZGVyc1VSTCgpLCBNb2NrRGF0YS5tb2NrQnVpbGRib3QwOEJ1aWxk
ZXJzKCkpOworICAgICAgICAgICAgICAgIHJldHVybiB0cmlnZ2VyYWJsZVByb21pc2U7CiAgICAg
ICAgICAgICB9KS50aGVuKCgpID0+IHJlZmV0Y2hNYW5pZmVzdCgpKS50aGVuKCgpID0+IHsKICAg
ICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoVHJpZ2dlcmFibGUuYWxsKCkubGVuZ3RoLCAxKTsK
ICAgICAgICAgICAgICAgICBjb25zdCBncm91cHMgPSBUcmlnZ2VyYWJsZVJlcG9zaXRvcnlHcm91
cC5zb3J0QnlOYW1lKFRyaWdnZXJhYmxlLmFsbCgpWzBdLnJlcG9zaXRvcnlHcm91cHMoKSk7Cklu
ZGV4OiBXZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvc2VydmVyLXRlc3RzL3Rvb2xzLXN5bmMtYnVp
bGRib3QtaW50ZWdyYXRpb24tdGVzdHMuanMKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2Vic2l0ZXMvcGVyZi53
ZWJraXQub3JnL3NlcnZlci10ZXN0cy90b29scy1zeW5jLWJ1aWxkYm90LWludGVncmF0aW9uLXRl
c3RzLmpzCShyZXZpc2lvbiAyMjQ3MDgpCisrKyBXZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvc2Vy
dmVyLXRlc3RzL3Rvb2xzLXN5bmMtYnVpbGRib3QtaW50ZWdyYXRpb24tdGVzdHMuanMJKHdvcmtp
bmcgY29weSkKQEAgLTE0Niw3ICsxNDYsMTEgQEAgZnVuY3Rpb24gY3JlYXRlVHJpZ2dlcmFibGUo
Y29uZmlnID0gY29uZgogICAgICAgICByZXR1cm4gTWFuaWZlc3QuZmV0Y2goKTsKICAgICB9KS50
aGVuKCgpID0+IHsKICAgICAgICAgdHJpZ2dlcmFibGUgPSBuZXcgQnVpbGRib3RUcmlnZ2VyYWJs
ZShjb25maWcsIFRlc3RTZXJ2ZXIucmVtb3RlQVBJKCksIE1vY2tSZW1vdGVBUEksIHtuYW1lOiAn
c3luYy1zbGF2ZScsIHBhc3N3b3JkOiAncGFzc3dvcmQnfSwgbmV3IE1vY2tMb2dnZXIpOwotICAg
ICAgICByZXR1cm4gdHJpZ2dlcmFibGUuaW5pdFN5bmNlcnMoKS50aGVuKCgpID0+IHRyaWdnZXJh
YmxlLnVwZGF0ZVRyaWdnZXJhYmxlKCkpOworICAgICAgICBjb25zdCBzeW5jUHJvbWlzZSA9IHRy
aWdnZXJhYmxlLmluaXRTeW5jZXJzKCkudGhlbigoKSA9PiB0cmlnZ2VyYWJsZS51cGRhdGVUcmln
Z2VyYWJsZSgpKTsKKyAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNb
MF0ubWV0aG9kLCAnR0VUJyk7CisgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJl
cXVlc3RzWzBdLnVybCwgTW9ja0RhdGEuYnVpbGRib3QwOEJ1aWxkZXJzVVJMKCkpOworICAgICAg
ICBNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzBdLnJlc29sdmUoTW9ja0RhdGEubW9ja0J1aWxkYm90
MDhCdWlsZGVycygpKTsKKyAgICAgICAgcmV0dXJuIHN5bmNQcm9taXNlOwogICAgIH0pLnRoZW4o
KCkgPT4gTWFuaWZlc3QuZmV0Y2goKSkudGhlbigoKSA9PiB7CiAgICAgICAgIHJldHVybiBuZXcg
QnVpbGRib3RUcmlnZ2VyYWJsZShjb25maWcsIFRlc3RTZXJ2ZXIucmVtb3RlQVBJKCksIE1vY2tS
ZW1vdGVBUEksIHtuYW1lOiAnc3luYy1zbGF2ZScsIHBhc3N3b3JkOiAncGFzc3dvcmQnfSwgbmV3
IE1vY2tMb2dnZXIpOwogICAgIH0pOwpAQCAtMjQ1LDMwICsyNDksMzEgQEAgZGVzY3JpYmUoJ3N5
bmMtYnVpbGRib3QnLCBmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgICB0YXNrSWQgPSBmaXJzdFRl
c3RHcm91cC50YXNrKCkuaWQoKTsKICAgICAgICAgICAgIGFub3RoZXJUYXNrSWQgPSBzZWNvbmRU
ZXN0R3JvdXAudGFzaygpLmlkKCk7CiAgICAgICAgICAgICBzeW5jUHJvbWlzZSA9IHRyaWdnZXJh
YmxlLmluaXRTeW5jZXJzKCkudGhlbigoKSA9PiB0cmlnZ2VyYWJsZS5zeW5jT25jZSgpKTsKLSAg
ICAgICAgICAgIHJldHVybiBNb2NrUmVtb3RlQVBJLndhaXRGb3JSZXF1ZXN0KCk7Ci0gICAgICAg
IH0pLnRoZW4oKCkgPT4gewotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlcXVlc3RzLmxlbmd0
aCwgMik7Ci0gICAgICAgICAgICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1swXSwg
J0dFVCcsICcvanNvbi9idWlsZGVycy9zb21lJTIwdGVzdGVyL3BlbmRpbmdCdWlsZHMnLCBbTW9j
a0RhdGEucGVuZGluZ0J1aWxkKHtidWlsZGVyOiAnc29tZSB0ZXN0ZXInLCBidWlsZFJlcXVlc3RJ
ZDogNX0pXSk7Ci0gICAgICAgICAgICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1sx
XSwgJ0dFVCcsICcvanNvbi9idWlsZGVycy9hbm90aGVyJTIwdGVzdGVyL3BlbmRpbmdCdWlsZHMn
LCBbXSk7CisgICAgICAgICAgICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1sxXSwg
J0dFVCcsIE1vY2tEYXRhLmJ1aWxkYm90MDhCdWlsZGVyc1VSTCgpLCBNb2NrRGF0YS5tb2NrQnVp
bGRib3QwOEJ1aWxkZXJzKCkpOwogICAgICAgICAgICAgcmV0dXJuIE1vY2tSZW1vdGVBUEkud2Fp
dEZvclJlcXVlc3QoKTsKICAgICAgICAgfSkudGhlbigoKSA9PiB7CiAgICAgICAgICAgICBhc3Nl
cnQuZXF1YWwocmVxdWVzdHMubGVuZ3RoLCA0KTsKLSAgICAgICAgICAgIGFzc2VydEFuZFJlc29s
dmVSZXF1ZXN0KHJlcXVlc3RzWzJdLCAnR0VUJywgJy9qc29uL2J1aWxkZXJzL3NvbWUlMjB0ZXN0
ZXIvYnVpbGRzLz9zZWxlY3Q9LTEmc2VsZWN0PS0yJywgewotICAgICAgICAgICAgICAgIFstMV06
IE1vY2tEYXRhLnJ1bm5pbmdCdWlsZCh7YnVpbGRlcjogJ3NvbWUgdGVzdGVyJywgYnVpbGRSZXF1
ZXN0SWQ6IDF9KX0pOwotICAgICAgICAgICAgYXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVz
dHNbM10sICdHRVQnLCAnL2pzb24vYnVpbGRlcnMvYW5vdGhlciUyMHRlc3Rlci9idWlsZHMvP3Nl
bGVjdD0tMSZzZWxlY3Q9LTInLCB7fSk7CisgICAgICAgICAgICBhc3NlcnRBbmRSZXNvbHZlUmVx
dWVzdChyZXF1ZXN0c1syXSwgJ0dFVCcsICcvanNvbi9idWlsZGVycy9zb21lJTIwdGVzdGVyL3Bl
bmRpbmdCdWlsZHMnLCBbTW9ja0RhdGEucGVuZGluZ0J1aWxkKHtidWlsZGVyOiAnc29tZSB0ZXN0
ZXInLCBidWlsZFJlcXVlc3RJZDogNX0pXSk7CisgICAgICAgICAgICBhc3NlcnRBbmRSZXNvbHZl
UmVxdWVzdChyZXF1ZXN0c1szXSwgJ0dFVCcsICcvanNvbi9idWlsZGVycy9hbm90aGVyJTIwdGVz
dGVyL3BlbmRpbmdCdWlsZHMnLCBbXSk7CiAgICAgICAgICAgICByZXR1cm4gTW9ja1JlbW90ZUFQ
SS53YWl0Rm9yUmVxdWVzdCgpOwogICAgICAgICB9KS50aGVuKCgpID0+IHsKICAgICAgICAgICAg
IGFzc2VydC5lcXVhbChyZXF1ZXN0cy5sZW5ndGgsIDYpOwotICAgICAgICAgICAgYXNzZXJ0QW5k
UmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNbNF0sICdHRVQnLCAnL2pzb24vYnVpbGRlcnMvc29tZSUy
MHRlc3Rlci9wZW5kaW5nQnVpbGRzJywgW10pOwotICAgICAgICAgICAgYXNzZXJ0QW5kUmVzb2x2
ZVJlcXVlc3QocmVxdWVzdHNbNV0sICdHRVQnLCAnL2pzb24vYnVpbGRlcnMvYW5vdGhlciUyMHRl
c3Rlci9wZW5kaW5nQnVpbGRzJyxbXSk7CisgICAgICAgICAgICBhc3NlcnRBbmRSZXNvbHZlUmVx
dWVzdChyZXF1ZXN0c1s0XSwgJ0dFVCcsICcvanNvbi9idWlsZGVycy9zb21lJTIwdGVzdGVyL2J1
aWxkcy8/c2VsZWN0PS0xJnNlbGVjdD0tMicsIHsKKyAgICAgICAgICAgICAgICBbLTFdOiBNb2Nr
RGF0YS5ydW5uaW5nQnVpbGQoe2J1aWxkZXI6ICdzb21lIHRlc3RlcicsIGJ1aWxkUmVxdWVzdElk
OiAxfSl9KTsKKyAgICAgICAgICAgIGFzc2VydEFuZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3RzWzVd
LCAnR0VUJywgJy9qc29uL2J1aWxkZXJzL2Fub3RoZXIlMjB0ZXN0ZXIvYnVpbGRzLz9zZWxlY3Q9
LTEmc2VsZWN0PS0yJywge30pOwogICAgICAgICAgICAgcmV0dXJuIE1vY2tSZW1vdGVBUEkud2Fp
dEZvclJlcXVlc3QoKTsKICAgICAgICAgfSkudGhlbigoKSA9PiB7CiAgICAgICAgICAgICBhc3Nl
cnQuZXF1YWwocmVxdWVzdHMubGVuZ3RoLCA4KTsKLSAgICAgICAgICAgIGFzc2VydEFuZFJlc29s
dmVSZXF1ZXN0KHJlcXVlc3RzWzZdLCAnR0VUJywgJy9qc29uL2J1aWxkZXJzL3NvbWUlMjB0ZXN0
ZXIvYnVpbGRzLz9zZWxlY3Q9LTEmc2VsZWN0PS0yJywgeworICAgICAgICAgICAgYXNzZXJ0QW5k
UmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNbNl0sICdHRVQnLCAnL2pzb24vYnVpbGRlcnMvc29tZSUy
MHRlc3Rlci9wZW5kaW5nQnVpbGRzJywgW10pOworICAgICAgICAgICAgYXNzZXJ0QW5kUmVzb2x2
ZVJlcXVlc3QocmVxdWVzdHNbN10sICdHRVQnLCAnL2pzb24vYnVpbGRlcnMvYW5vdGhlciUyMHRl
c3Rlci9wZW5kaW5nQnVpbGRzJyxbXSk7CisgICAgICAgICAgICByZXR1cm4gTW9ja1JlbW90ZUFQ
SS53YWl0Rm9yUmVxdWVzdCgpOworICAgICAgICB9KS50aGVuKCgpID0+IHsKKyAgICAgICAgICAg
IGFzc2VydC5lcXVhbChyZXF1ZXN0cy5sZW5ndGgsIDEwKTsKKyAgICAgICAgICAgIGFzc2VydEFu
ZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3RzWzhdLCAnR0VUJywgJy9qc29uL2J1aWxkZXJzL3NvbWUl
MjB0ZXN0ZXIvYnVpbGRzLz9zZWxlY3Q9LTEmc2VsZWN0PS0yJywgewogICAgICAgICAgICAgICAg
IFstMV06IE1vY2tEYXRhLnJ1bm5pbmdCdWlsZCh7YnVpbGRlcjogJ3NvbWUgdGVzdGVyJywgYnVp
bGRSZXF1ZXN0SWQ6IDV9KSwKICAgICAgICAgICAgICAgICBbLTJdOiBNb2NrRGF0YS5maW5pc2hl
ZEJ1aWxkKHtidWlsZGVyOiAnc29tZSB0ZXN0ZXInLCBidWlsZFJlcXVlc3RJZDogMX0pCiAgICAg
ICAgICAgICB9KTsKLSAgICAgICAgICAgIGFzc2VydEFuZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3Rz
WzddLCAnR0VUJywgJy9qc29uL2J1aWxkZXJzL2Fub3RoZXIlMjB0ZXN0ZXIvYnVpbGRzLz9zZWxl
Y3Q9LTEmc2VsZWN0PS0yJywge30pOworICAgICAgICAgICAgYXNzZXJ0QW5kUmVzb2x2ZVJlcXVl
c3QocmVxdWVzdHNbOV0sICdHRVQnLCAnL2pzb24vYnVpbGRlcnMvYW5vdGhlciUyMHRlc3Rlci9i
dWlsZHMvP3NlbGVjdD0tMSZzZWxlY3Q9LTInLCB7fSk7CiAgICAgICAgICAgICByZXR1cm4gc3lu
Y1Byb21pc2U7CiAgICAgICAgIH0pLnRoZW4oKCkgPT4gewogICAgICAgICAgICAgcmV0dXJuIFRl
c3RHcm91cC5mZXRjaEZvclRhc2sodGFza0lkLCB0cnVlKTsKQEAgLTM1NywzOSArMzYyLDQwIEBA
IGRlc2NyaWJlKCdzeW5jLWJ1aWxkYm90JywgZnVuY3Rpb24gKCkgewogICAgICAgICAgICAgYXNz
ZXJ0LmRlZXBFcXVhbChvdGhlckNvbW1pdFNldC5hbGxSb290RmlsZXMoKSwgW10pOwogCiAgICAg
ICAgICAgICBzeW5jUHJvbWlzZSA9IHRyaWdnZXJhYmxlLmluaXRTeW5jZXJzKCkudGhlbigoKSA9
PiB0cmlnZ2VyYWJsZS5zeW5jT25jZSgpKTsKKyAgICAgICAgICAgIGFzc2VydEFuZFJlc29sdmVS
ZXF1ZXN0KHJlcXVlc3RzWzFdLCAnR0VUJywgTW9ja0RhdGEuYnVpbGRib3QwOEJ1aWxkZXJzVVJM
KCksIE1vY2tEYXRhLm1vY2tCdWlsZGJvdDA4QnVpbGRlcnMoKSk7CiAgICAgICAgICAgICByZXR1
cm4gTW9ja1JlbW90ZUFQSS53YWl0Rm9yUmVxdWVzdCgpOwogICAgICAgICB9KS50aGVuKCgpID0+
IHsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXF1ZXN0cy5sZW5ndGgsIDMpOwotICAgICAg
ICAgICAgYXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNbMF0sICdHRVQnLCAnL2pzb24v
YnVpbGRlcnMvc29tZSUyMHRlc3Rlci9wZW5kaW5nQnVpbGRzJywgW10pOwotICAgICAgICAgICAg
YXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNbMV0sICdHRVQnLCAnL2pzb24vYnVpbGRl
cnMvc29tZSUyMGJ1aWxkZXIvcGVuZGluZ0J1aWxkcycsIFtdKTsKLSAgICAgICAgICAgIGFzc2Vy
dEFuZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3RzWzJdLCAnR0VUJywgJy9qc29uL2J1aWxkZXJzL290
aGVyJTIwYnVpbGRlci9wZW5kaW5nQnVpbGRzJywgW10pOworICAgICAgICAgICAgYXNzZXJ0LmVx
dWFsKHJlcXVlc3RzLmxlbmd0aCwgNSk7CisgICAgICAgICAgICBhc3NlcnRBbmRSZXNvbHZlUmVx
dWVzdChyZXF1ZXN0c1syXSwgJ0dFVCcsICcvanNvbi9idWlsZGVycy9zb21lJTIwdGVzdGVyL3Bl
bmRpbmdCdWlsZHMnLCBbXSk7CisgICAgICAgICAgICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVzdChy
ZXF1ZXN0c1szXSwgJ0dFVCcsICcvanNvbi9idWlsZGVycy9zb21lJTIwYnVpbGRlci9wZW5kaW5n
QnVpbGRzJywgW10pOworICAgICAgICAgICAgYXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVz
dHNbNF0sICdHRVQnLCAnL2pzb24vYnVpbGRlcnMvb3RoZXIlMjBidWlsZGVyL3BlbmRpbmdCdWls
ZHMnLCBbXSk7CiAgICAgICAgICAgICByZXR1cm4gTW9ja1JlbW90ZUFQSS53YWl0Rm9yUmVxdWVz
dCgpOwogICAgICAgICB9KS50aGVuKCgpID0+IHsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChy
ZXF1ZXN0cy5sZW5ndGgsIDYpOwotICAgICAgICAgICAgYXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3Qo
cmVxdWVzdHNbM10sICdHRVQnLCAnL2pzb24vYnVpbGRlcnMvc29tZSUyMHRlc3Rlci9idWlsZHMv
P3NlbGVjdD0tMSZzZWxlY3Q9LTInLCB7fSk7Ci0gICAgICAgICAgICBhc3NlcnRBbmRSZXNvbHZl
UmVxdWVzdChyZXF1ZXN0c1s0XSwgJ0dFVCcsICcvanNvbi9idWlsZGVycy9zb21lJTIwYnVpbGRl
ci9idWlsZHMvP3NlbGVjdD0tMSZzZWxlY3Q9LTInLCB7fSk7Ci0gICAgICAgICAgICBhc3NlcnRB
bmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1s1XSwgJ0dFVCcsICcvanNvbi9idWlsZGVycy9vdGhl
ciUyMGJ1aWxkZXIvYnVpbGRzLz9zZWxlY3Q9LTEmc2VsZWN0PS0yJywge30pOworICAgICAgICAg
ICAgYXNzZXJ0LmVxdWFsKHJlcXVlc3RzLmxlbmd0aCwgOCk7CisgICAgICAgICAgICBhc3NlcnRB
bmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1s1XSwgJ0dFVCcsICcvanNvbi9idWlsZGVycy9zb21l
JTIwdGVzdGVyL2J1aWxkcy8/c2VsZWN0PS0xJnNlbGVjdD0tMicsIHt9KTsKKyAgICAgICAgICAg
IGFzc2VydEFuZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3RzWzZdLCAnR0VUJywgJy9qc29uL2J1aWxk
ZXJzL3NvbWUlMjBidWlsZGVyL2J1aWxkcy8/c2VsZWN0PS0xJnNlbGVjdD0tMicsIHt9KTsKKyAg
ICAgICAgICAgIGFzc2VydEFuZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3RzWzddLCAnR0VUJywgJy9q
c29uL2J1aWxkZXJzL290aGVyJTIwYnVpbGRlci9idWlsZHMvP3NlbGVjdD0tMSZzZWxlY3Q9LTIn
LCB7fSk7CiAgICAgICAgICAgICByZXR1cm4gTW9ja1JlbW90ZUFQSS53YWl0Rm9yUmVxdWVzdCgp
OwogICAgICAgICB9KS50aGVuKCgpID0+IHsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXF1
ZXN0cy5sZW5ndGgsIDcpOwotICAgICAgICAgICAgYXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVx
dWVzdHNbNl0sICdQT1NUJywgJy9idWlsZGVycy9zb21lJTIwYnVpbGRlci9mb3JjZScsICdPSycp
OwotICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChyZXF1ZXN0c1s2XS5kYXRhLCB7J3drJzog
JzE5MTYyMicsICd3ay1wYXRjaCc6IFJlbW90ZUFQSS51cmwoJy9hcGkvdXBsb2FkZWQtZmlsZS8x
LmRhdCcpLAorICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlcXVlc3RzLmxlbmd0aCwgOSk7Cisg
ICAgICAgICAgICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1s4XSwgJ1BPU1QnLCAn
L2J1aWxkZXJzL3NvbWUlMjBidWlsZGVyL2ZvcmNlJywgJ09LJyk7CisgICAgICAgICAgICBhc3Nl
cnQuZGVlcEVxdWFsKHJlcXVlc3RzWzhdLmRhdGEsIHsnd2snOiAnMTkxNjIyJywgJ3drLXBhdGNo
JzogUmVtb3RlQVBJLnVybCgnL2FwaS91cGxvYWRlZC1maWxlLzEuZGF0JyksCiAgICAgICAgICAg
ICAgICAgJ2J1aWxkLXJlcXVlc3QtaWQnOiAnMScsICdmb3JjZXNjaGVkdWxlcic6ICdmb3JjZS1h
Yi1idWlsZHMnLCAnY2hlY2tib3gnOiAnYnVpbGQtd2snfSk7CiAgICAgICAgICAgICByZXR1cm4g
TW9ja1JlbW90ZUFQSS53YWl0Rm9yUmVxdWVzdCgpOwogICAgICAgICB9KS50aGVuKCgpID0+IHsK
LSAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXF1ZXN0cy5sZW5ndGgsIDEwKTsKLSAgICAgICAg
ICAgIGFzc2VydEFuZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3RzWzddLCAnR0VUJywgJy9qc29uL2J1
aWxkZXJzL3NvbWUlMjB0ZXN0ZXIvcGVuZGluZ0J1aWxkcycsIFtdKTsKLSAgICAgICAgICAgIGFz
c2VydEFuZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3RzWzhdLCAnR0VUJywgJy9qc29uL2J1aWxkZXJz
L3NvbWUlMjBidWlsZGVyL3BlbmRpbmdCdWlsZHMnLAorICAgICAgICAgICAgYXNzZXJ0LmVxdWFs
KHJlcXVlc3RzLmxlbmd0aCwgMTIpOworICAgICAgICAgICAgYXNzZXJ0QW5kUmVzb2x2ZVJlcXVl
c3QocmVxdWVzdHNbOV0sICdHRVQnLCAnL2pzb24vYnVpbGRlcnMvc29tZSUyMHRlc3Rlci9wZW5k
aW5nQnVpbGRzJywgW10pOworICAgICAgICAgICAgYXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVx
dWVzdHNbMTBdLCAnR0VUJywgJy9qc29uL2J1aWxkZXJzL3NvbWUlMjBidWlsZGVyL3BlbmRpbmdC
dWlsZHMnLAogICAgICAgICAgICAgICAgIFtNb2NrRGF0YS5wZW5kaW5nQnVpbGQoe2J1aWxkZXI6
ICdzb21lIGJ1aWxkZXInLCBidWlsZFJlcXVlc3RJZDogMX0pXSk7Ci0gICAgICAgICAgICBhc3Nl
cnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1s5XSwgJ0dFVCcsICcvanNvbi9idWlsZGVycy9v
dGhlciUyMGJ1aWxkZXIvcGVuZGluZ0J1aWxkcycsIFtdKTsKKyAgICAgICAgICAgIGFzc2VydEFu
ZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3RzWzExXSwgJ0dFVCcsICcvanNvbi9idWlsZGVycy9vdGhl
ciUyMGJ1aWxkZXIvcGVuZGluZ0J1aWxkcycsIFtdKTsKICAgICAgICAgICAgIHJldHVybiBNb2Nr
UmVtb3RlQVBJLndhaXRGb3JSZXF1ZXN0KCk7CiAgICAgICAgIH0pLnRoZW4oKCkgPT4gewotICAg
ICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlcXVlc3RzLmxlbmd0aCwgMTMpOwotICAgICAgICAgICAg
YXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNbMTBdLCAnR0VUJywgJy9qc29uL2J1aWxk
ZXJzL3NvbWUlMjB0ZXN0ZXIvYnVpbGRzLz9zZWxlY3Q9LTEmc2VsZWN0PS0yJywge30pOwotICAg
ICAgICAgICAgYXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNbMTFdLCAnR0VUJywgJy9q
c29uL2J1aWxkZXJzL3NvbWUlMjBidWlsZGVyL2J1aWxkcy8/c2VsZWN0PS0xJnNlbGVjdD0tMics
IHsKKyAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXF1ZXN0cy5sZW5ndGgsIDE1KTsKKyAgICAg
ICAgICAgIGFzc2VydEFuZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3RzWzEyXSwgJ0dFVCcsICcvanNv
bi9idWlsZGVycy9zb21lJTIwdGVzdGVyL2J1aWxkcy8/c2VsZWN0PS0xJnNlbGVjdD0tMicsIHt9
KTsKKyAgICAgICAgICAgIGFzc2VydEFuZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3RzWzEzXSwgJ0dF
VCcsICcvanNvbi9idWlsZGVycy9zb21lJTIwYnVpbGRlci9idWlsZHMvP3NlbGVjdD0tMSZzZWxl
Y3Q9LTInLCB7CiAgICAgICAgICAgICAgICAgWy0xXTogTW9ja0RhdGEucnVubmluZ0J1aWxkKHti
dWlsZGVyOiAnc29tZSBidWlsZGVyJywgYnVpbGRSZXF1ZXN0SWQ6IDF9KQogICAgICAgICAgICAg
fSk7Ci0gICAgICAgICAgICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1sxMl0sICdH
RVQnLCAnL2pzb24vYnVpbGRlcnMvb3RoZXIlMjBidWlsZGVyL2J1aWxkcy8/c2VsZWN0PS0xJnNl
bGVjdD0tMicsIHt9KTsKKyAgICAgICAgICAgIGFzc2VydEFuZFJlc29sdmVSZXF1ZXN0KHJlcXVl
c3RzWzE0XSwgJ0dFVCcsICcvanNvbi9idWlsZGVycy9vdGhlciUyMGJ1aWxkZXIvYnVpbGRzLz9z
ZWxlY3Q9LTEmc2VsZWN0PS0yJywge30pOwogICAgICAgICAgICAgcmV0dXJuIHN5bmNQcm9taXNl
OwogICAgICAgICB9KS50aGVuKCgpID0+IHsKICAgICAgICAgICAgIHJldHVybiBUZXN0R3JvdXAu
ZmV0Y2hGb3JUYXNrKHRhc2tJZCwgdHJ1ZSk7CkBAIC00NjgsNDAgKzQ3NCw0MSBAQCBkZXNjcmli
ZSgnc3luYy1idWlsZGJvdCcsIGZ1bmN0aW9uICgpIHsKIAogICAgICAgICAgICAgTW9ja1JlbW90
ZUFQSS5yZXNldCgpOwogICAgICAgICAgICAgc3luY1Byb21pc2UgPSB0cmlnZ2VyYWJsZS5pbml0
U3luY2VycygpLnRoZW4oKCkgPT4gdHJpZ2dlcmFibGUuc3luY09uY2UoKSk7CisgICAgICAgICAg
ICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1swXSwgJ0dFVCcsIE1vY2tEYXRhLmJ1
aWxkYm90MDhCdWlsZGVyc1VSTCgpLCBNb2NrRGF0YS5tb2NrQnVpbGRib3QwOEJ1aWxkZXJzKCkp
OwogICAgICAgICAgICAgcmV0dXJuIE1vY2tSZW1vdGVBUEkud2FpdEZvclJlcXVlc3QoKTsKICAg
ICAgICAgfSkudGhlbigoKSA9PiB7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVxdWVzdHMu
bGVuZ3RoLCAzKTsKLSAgICAgICAgICAgIGFzc2VydEFuZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3Rz
WzBdLCAnR0VUJywgJy9qc29uL2J1aWxkZXJzL3NvbWUlMjB0ZXN0ZXIvcGVuZGluZ0J1aWxkcycs
IFtdKTsKLSAgICAgICAgICAgIGFzc2VydEFuZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3RzWzFdLCAn
R0VUJywgJy9qc29uL2J1aWxkZXJzL3NvbWUlMjBidWlsZGVyL3BlbmRpbmdCdWlsZHMnLCBbXSk7
Ci0gICAgICAgICAgICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1syXSwgJ0dFVCcs
ICcvanNvbi9idWlsZGVycy9vdGhlciUyMGJ1aWxkZXIvcGVuZGluZ0J1aWxkcycsIFtdKTsKKyAg
ICAgICAgICAgIGFzc2VydC5lcXVhbChyZXF1ZXN0cy5sZW5ndGgsIDQpOworICAgICAgICAgICAg
YXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNbMV0sICdHRVQnLCAnL2pzb24vYnVpbGRl
cnMvc29tZSUyMHRlc3Rlci9wZW5kaW5nQnVpbGRzJywgW10pOworICAgICAgICAgICAgYXNzZXJ0
QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNbMl0sICdHRVQnLCAnL2pzb24vYnVpbGRlcnMvc29t
ZSUyMGJ1aWxkZXIvcGVuZGluZ0J1aWxkcycsIFtdKTsKKyAgICAgICAgICAgIGFzc2VydEFuZFJl
c29sdmVSZXF1ZXN0KHJlcXVlc3RzWzNdLCAnR0VUJywgJy9qc29uL2J1aWxkZXJzL290aGVyJTIw
YnVpbGRlci9wZW5kaW5nQnVpbGRzJywgW10pOwogICAgICAgICAgICAgcmV0dXJuIE1vY2tSZW1v
dGVBUEkud2FpdEZvclJlcXVlc3QoKTsKICAgICAgICAgfSkudGhlbigoKSA9PiB7Ci0gICAgICAg
ICAgICBhc3NlcnQuZXF1YWwocmVxdWVzdHMubGVuZ3RoLCA2KTsKLSAgICAgICAgICAgIGFzc2Vy
dEFuZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3RzWzNdLCAnR0VUJywgJy9qc29uL2J1aWxkZXJzL3Nv
bWUlMjB0ZXN0ZXIvYnVpbGRzLz9zZWxlY3Q9LTEmc2VsZWN0PS0yJywge30pOwotICAgICAgICAg
ICAgYXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNbNF0sICdHRVQnLCAnL2pzb24vYnVp
bGRlcnMvc29tZSUyMGJ1aWxkZXIvYnVpbGRzLz9zZWxlY3Q9LTEmc2VsZWN0PS0yJywgeworICAg
ICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlcXVlc3RzLmxlbmd0aCwgNyk7CisgICAgICAgICAgICBh
c3NlcnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1s0XSwgJ0dFVCcsICcvanNvbi9idWlsZGVy
cy9zb21lJTIwdGVzdGVyL2J1aWxkcy8/c2VsZWN0PS0xJnNlbGVjdD0tMicsIHt9KTsKKyAgICAg
ICAgICAgIGFzc2VydEFuZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3RzWzVdLCAnR0VUJywgJy9qc29u
L2J1aWxkZXJzL3NvbWUlMjBidWlsZGVyL2J1aWxkcy8/c2VsZWN0PS0xJnNlbGVjdD0tMicsIHsK
ICAgICAgICAgICAgICAgICBbLTFdOiBNb2NrRGF0YS5maW5pc2hlZEJ1aWxkKHtidWlsZGVyOiAn
c29tZSBidWlsZGVyJywgYnVpbGRSZXF1ZXN0SWQ6IDF9KQogICAgICAgICAgICAgfSk7Ci0gICAg
ICAgICAgICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1s1XSwgJ0dFVCcsICcvanNv
bi9idWlsZGVycy9vdGhlciUyMGJ1aWxkZXIvYnVpbGRzLz9zZWxlY3Q9LTEmc2VsZWN0PS0yJywg
e30pOworICAgICAgICAgICAgYXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNbNl0sICdH
RVQnLCAnL2pzb24vYnVpbGRlcnMvb3RoZXIlMjBidWlsZGVyL2J1aWxkcy8/c2VsZWN0PS0xJnNl
bGVjdD0tMicsIHt9KTsKICAgICAgICAgICAgIHJldHVybiBNb2NrUmVtb3RlQVBJLndhaXRGb3JS
ZXF1ZXN0KCk7CiAgICAgICAgIH0pLnRoZW4oKCkgPT4gewotICAgICAgICAgICAgYXNzZXJ0LmVx
dWFsKHJlcXVlc3RzLmxlbmd0aCwgNyk7Ci0gICAgICAgICAgICBhc3NlcnRBbmRSZXNvbHZlUmVx
dWVzdChyZXF1ZXN0c1s2XSwgJ1BPU1QnLCAnL2J1aWxkZXJzL3NvbWUlMjBidWlsZGVyL2ZvcmNl
JywgJ09LJyk7Ci0gICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKHJlcXVlc3RzWzZdLmRhdGEs
IHsnd2snOiAnMTkxNjIyJywgJ2J1aWxkLXJlcXVlc3QtaWQnOiAnMicsICdmb3JjZXNjaGVkdWxl
cic6ICdmb3JjZS1hYi1idWlsZHMnLCAnY2hlY2tib3gnOiAnYnVpbGQtd2snfSk7CisgICAgICAg
ICAgICBhc3NlcnQuZXF1YWwocmVxdWVzdHMubGVuZ3RoLCA4KTsKKyAgICAgICAgICAgIGFzc2Vy
dEFuZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3RzWzddLCAnUE9TVCcsICcvYnVpbGRlcnMvc29tZSUy
MGJ1aWxkZXIvZm9yY2UnLCAnT0snKTsKKyAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwocmVx
dWVzdHNbN10uZGF0YSwgeyd3ayc6ICcxOTE2MjInLCAnYnVpbGQtcmVxdWVzdC1pZCc6ICcyJywg
J2ZvcmNlc2NoZWR1bGVyJzogJ2ZvcmNlLWFiLWJ1aWxkcycsICdjaGVja2JveCc6ICdidWlsZC13
ayd9KTsKICAgICAgICAgICAgIHJldHVybiBNb2NrUmVtb3RlQVBJLndhaXRGb3JSZXF1ZXN0KCk7
CiAgICAgICAgIH0pLnRoZW4oKCkgPT4gewotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlcXVl
c3RzLmxlbmd0aCwgMTApOwotICAgICAgICAgICAgYXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVx
dWVzdHNbN10sICdHRVQnLCAnL2pzb24vYnVpbGRlcnMvc29tZSUyMHRlc3Rlci9wZW5kaW5nQnVp
bGRzJywgW10pOwotICAgICAgICAgICAgYXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNb
OF0sICdHRVQnLCAnL2pzb24vYnVpbGRlcnMvc29tZSUyMGJ1aWxkZXIvcGVuZGluZ0J1aWxkcycs
IFtdKTsKLSAgICAgICAgICAgIGFzc2VydEFuZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3RzWzldLCAn
R0VUJywgJy9qc29uL2J1aWxkZXJzL290aGVyJTIwYnVpbGRlci9wZW5kaW5nQnVpbGRzJywgW10p
OworICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlcXVlc3RzLmxlbmd0aCwgMTEpOworICAgICAg
ICAgICAgYXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNbOF0sICdHRVQnLCAnL2pzb24v
YnVpbGRlcnMvc29tZSUyMHRlc3Rlci9wZW5kaW5nQnVpbGRzJywgW10pOworICAgICAgICAgICAg
YXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNbOV0sICdHRVQnLCAnL2pzb24vYnVpbGRl
cnMvc29tZSUyMGJ1aWxkZXIvcGVuZGluZ0J1aWxkcycsIFtdKTsKKyAgICAgICAgICAgIGFzc2Vy
dEFuZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3RzWzEwXSwgJ0dFVCcsICcvanNvbi9idWlsZGVycy9v
dGhlciUyMGJ1aWxkZXIvcGVuZGluZ0J1aWxkcycsIFtdKTsKICAgICAgICAgICAgIHJldHVybiBN
b2NrUmVtb3RlQVBJLndhaXRGb3JSZXF1ZXN0KCk7CiAgICAgICAgIH0pLnRoZW4oKCkgPT4gewot
ICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlcXVlc3RzLmxlbmd0aCwgMTMpOwotICAgICAgICAg
ICAgYXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNbMTBdLCAnR0VUJywgJy9qc29uL2J1
aWxkZXJzL3NvbWUlMjB0ZXN0ZXIvYnVpbGRzLz9zZWxlY3Q9LTEmc2VsZWN0PS0yJywge30pOwot
ICAgICAgICAgICAgYXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNbMTFdLCAnR0VUJywg
Jy9qc29uL2J1aWxkZXJzL3NvbWUlMjBidWlsZGVyL2J1aWxkcy8/c2VsZWN0PS0xJnNlbGVjdD0t
MicsIHsKKyAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXF1ZXN0cy5sZW5ndGgsIDE0KTsKKyAg
ICAgICAgICAgIGFzc2VydEFuZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3RzWzExXSwgJ0dFVCcsICcv
anNvbi9idWlsZGVycy9zb21lJTIwdGVzdGVyL2J1aWxkcy8/c2VsZWN0PS0xJnNlbGVjdD0tMics
IHt9KTsKKyAgICAgICAgICAgIGFzc2VydEFuZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3RzWzEyXSwg
J0dFVCcsICcvanNvbi9idWlsZGVycy9zb21lJTIwYnVpbGRlci9idWlsZHMvP3NlbGVjdD0tMSZz
ZWxlY3Q9LTInLCB7CiAgICAgICAgICAgICAgICAgWy0xXTogTW9ja0RhdGEucnVubmluZ0J1aWxk
KHtidWlsZGVyOiAnc29tZSBidWlsZGVyJywgYnVpbGRSZXF1ZXN0SWQ6IDJ9KSwKICAgICAgICAg
ICAgICAgICBbLTJdOiBNb2NrRGF0YS5maW5pc2hlZEJ1aWxkKHtidWlsZGVyOiAnc29tZSBidWls
ZGVyJywgYnVpbGRSZXF1ZXN0SWQ6IDF9KSwKICAgICAgICAgICAgIH0pOwotICAgICAgICAgICAg
YXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNbMTJdLCAnR0VUJywgJy9qc29uL2J1aWxk
ZXJzL290aGVyJTIwYnVpbGRlci9idWlsZHMvP3NlbGVjdD0tMSZzZWxlY3Q9LTInLCB7fSk7Cisg
ICAgICAgICAgICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1sxM10sICdHRVQnLCAn
L2pzb24vYnVpbGRlcnMvb3RoZXIlMjBidWlsZGVyL2J1aWxkcy8/c2VsZWN0PS0xJnNlbGVjdD0t
MicsIHt9KTsKICAgICAgICAgICAgIHJldHVybiBzeW5jUHJvbWlzZTsKICAgICAgICAgfSkudGhl
bigoKSA9PiB7CiAgICAgICAgICAgICByZXR1cm4gVGVzdEdyb3VwLmZldGNoRm9yVGFzayh0YXNr
SWQsIHRydWUpOwpAQCAtNjI2LDM5ICs2MzMsNDAgQEAgZGVzY3JpYmUoJ3N5bmMtYnVpbGRib3Qn
LCBmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKG90aGVyQ29tbWl0
U2V0LmFsbFJvb3RGaWxlcygpLCBbXSk7CiAKICAgICAgICAgICAgIHN5bmNQcm9taXNlID0gdHJp
Z2dlcmFibGUuaW5pdFN5bmNlcnMoKS50aGVuKCgpID0+IHRyaWdnZXJhYmxlLnN5bmNPbmNlKCkp
OworICAgICAgICAgICAgYXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNbMV0sICdHRVQn
LCBNb2NrRGF0YS5idWlsZGJvdDA4QnVpbGRlcnNVUkwoKSwgTW9ja0RhdGEubW9ja0J1aWxkYm90
MDhCdWlsZGVycygpKTsKICAgICAgICAgICAgIHJldHVybiBNb2NrUmVtb3RlQVBJLndhaXRGb3JS
ZXF1ZXN0KCk7CiAgICAgICAgIH0pLnRoZW4oKCkgPT4gewotICAgICAgICAgICAgYXNzZXJ0LmVx
dWFsKHJlcXVlc3RzLmxlbmd0aCwgMyk7Ci0gICAgICAgICAgICBhc3NlcnRBbmRSZXNvbHZlUmVx
dWVzdChyZXF1ZXN0c1swXSwgJ0dFVCcsICcvanNvbi9idWlsZGVycy9zb21lJTIwdGVzdGVyL3Bl
bmRpbmdCdWlsZHMnLCBbXSk7Ci0gICAgICAgICAgICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVzdChy
ZXF1ZXN0c1sxXSwgJ0dFVCcsICcvanNvbi9idWlsZGVycy9zb21lJTIwYnVpbGRlci9wZW5kaW5n
QnVpbGRzJywgW10pOwotICAgICAgICAgICAgYXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVz
dHNbMl0sICdHRVQnLCAnL2pzb24vYnVpbGRlcnMvb3RoZXIlMjBidWlsZGVyL3BlbmRpbmdCdWls
ZHMnLCBbXSk7CisgICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVxdWVzdHMubGVuZ3RoLCA1KTsK
KyAgICAgICAgICAgIGFzc2VydEFuZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3RzWzJdLCAnR0VUJywg
Jy9qc29uL2J1aWxkZXJzL3NvbWUlMjB0ZXN0ZXIvcGVuZGluZ0J1aWxkcycsIFtdKTsKKyAgICAg
ICAgICAgIGFzc2VydEFuZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3RzWzNdLCAnR0VUJywgJy9qc29u
L2J1aWxkZXJzL3NvbWUlMjBidWlsZGVyL3BlbmRpbmdCdWlsZHMnLCBbXSk7CisgICAgICAgICAg
ICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1s0XSwgJ0dFVCcsICcvanNvbi9idWls
ZGVycy9vdGhlciUyMGJ1aWxkZXIvcGVuZGluZ0J1aWxkcycsIFtdKTsKICAgICAgICAgICAgIHJl
dHVybiBNb2NrUmVtb3RlQVBJLndhaXRGb3JSZXF1ZXN0KCk7CiAgICAgICAgIH0pLnRoZW4oKCkg
PT4gewotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlcXVlc3RzLmxlbmd0aCwgNik7Ci0gICAg
ICAgICAgICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1szXSwgJ0dFVCcsICcvanNv
bi9idWlsZGVycy9zb21lJTIwdGVzdGVyL2J1aWxkcy8/c2VsZWN0PS0xJnNlbGVjdD0tMicsIHt9
KTsKLSAgICAgICAgICAgIGFzc2VydEFuZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3RzWzRdLCAnR0VU
JywgJy9qc29uL2J1aWxkZXJzL3NvbWUlMjBidWlsZGVyL2J1aWxkcy8/c2VsZWN0PS0xJnNlbGVj
dD0tMicsIHt9KTsKLSAgICAgICAgICAgIGFzc2VydEFuZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3Rz
WzVdLCAnR0VUJywgJy9qc29uL2J1aWxkZXJzL290aGVyJTIwYnVpbGRlci9idWlsZHMvP3NlbGVj
dD0tMSZzZWxlY3Q9LTInLCB7fSk7CisgICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVxdWVzdHMu
bGVuZ3RoLCA4KTsKKyAgICAgICAgICAgIGFzc2VydEFuZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3Rz
WzVdLCAnR0VUJywgJy9qc29uL2J1aWxkZXJzL3NvbWUlMjB0ZXN0ZXIvYnVpbGRzLz9zZWxlY3Q9
LTEmc2VsZWN0PS0yJywge30pOworICAgICAgICAgICAgYXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3Qo
cmVxdWVzdHNbNl0sICdHRVQnLCAnL2pzb24vYnVpbGRlcnMvc29tZSUyMGJ1aWxkZXIvYnVpbGRz
Lz9zZWxlY3Q9LTEmc2VsZWN0PS0yJywge30pOworICAgICAgICAgICAgYXNzZXJ0QW5kUmVzb2x2
ZVJlcXVlc3QocmVxdWVzdHNbN10sICdHRVQnLCAnL2pzb24vYnVpbGRlcnMvb3RoZXIlMjBidWls
ZGVyL2J1aWxkcy8/c2VsZWN0PS0xJnNlbGVjdD0tMicsIHt9KTsKICAgICAgICAgICAgIHJldHVy
biBNb2NrUmVtb3RlQVBJLndhaXRGb3JSZXF1ZXN0KCk7CiAgICAgICAgIH0pLnRoZW4oKCkgPT4g
ewotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlcXVlc3RzLmxlbmd0aCwgNyk7Ci0gICAgICAg
ICAgICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1s2XSwgJ1BPU1QnLCAnL2J1aWxk
ZXJzL3NvbWUlMjBidWlsZGVyL2ZvcmNlJywgJ09LJyk7Ci0gICAgICAgICAgICBhc3NlcnQuZGVl
cEVxdWFsKHJlcXVlc3RzWzZdLmRhdGEsIHsnd2snOiAnMTkxNjIyJywgJ3drLXBhdGNoJzogUmVt
b3RlQVBJLnVybCgnL2FwaS91cGxvYWRlZC1maWxlLzEuZGF0JyksCisgICAgICAgICAgICBhc3Nl
cnQuZXF1YWwocmVxdWVzdHMubGVuZ3RoLCA5KTsKKyAgICAgICAgICAgIGFzc2VydEFuZFJlc29s
dmVSZXF1ZXN0KHJlcXVlc3RzWzhdLCAnUE9TVCcsICcvYnVpbGRlcnMvc29tZSUyMGJ1aWxkZXIv
Zm9yY2UnLCAnT0snKTsKKyAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwocmVxdWVzdHNbOF0u
ZGF0YSwgeyd3ayc6ICcxOTE2MjInLCAnd2stcGF0Y2gnOiBSZW1vdGVBUEkudXJsKCcvYXBpL3Vw
bG9hZGVkLWZpbGUvMS5kYXQnKSwKICAgICAgICAgICAgICAgICAnYnVpbGQtcmVxdWVzdC1pZCc6
ICcxJywgJ2ZvcmNlc2NoZWR1bGVyJzogJ2ZvcmNlLWFiLWJ1aWxkcycsICdjaGVja2JveCc6ICdi
dWlsZC13aycsICdwbGF0Zm9ybS1uYW1lJzogJ3NvbWUgcGxhdGZvcm0nfSk7CiAgICAgICAgICAg
ICByZXR1cm4gTW9ja1JlbW90ZUFQSS53YWl0Rm9yUmVxdWVzdCgpOwogICAgICAgICB9KS50aGVu
KCgpID0+IHsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXF1ZXN0cy5sZW5ndGgsIDEwKTsK
LSAgICAgICAgICAgIGFzc2VydEFuZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3RzWzddLCAnR0VUJywg
Jy9qc29uL2J1aWxkZXJzL3NvbWUlMjB0ZXN0ZXIvcGVuZGluZ0J1aWxkcycsIFtdKTsKLSAgICAg
ICAgICAgIGFzc2VydEFuZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3RzWzhdLCAnR0VUJywgJy9qc29u
L2J1aWxkZXJzL3NvbWUlMjBidWlsZGVyL3BlbmRpbmdCdWlsZHMnLAorICAgICAgICAgICAgYXNz
ZXJ0LmVxdWFsKHJlcXVlc3RzLmxlbmd0aCwgMTIpOworICAgICAgICAgICAgYXNzZXJ0QW5kUmVz
b2x2ZVJlcXVlc3QocmVxdWVzdHNbOV0sICdHRVQnLCAnL2pzb24vYnVpbGRlcnMvc29tZSUyMHRl
c3Rlci9wZW5kaW5nQnVpbGRzJywgW10pOworICAgICAgICAgICAgYXNzZXJ0QW5kUmVzb2x2ZVJl
cXVlc3QocmVxdWVzdHNbMTBdLCAnR0VUJywgJy9qc29uL2J1aWxkZXJzL3NvbWUlMjBidWlsZGVy
L3BlbmRpbmdCdWlsZHMnLAogICAgICAgICAgICAgICAgIFtNb2NrRGF0YS5wZW5kaW5nQnVpbGQo
e2J1aWxkZXI6ICdzb21lIGJ1aWxkZXInLCBidWlsZFJlcXVlc3RJZDogMX0pXSk7Ci0gICAgICAg
ICAgICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1s5XSwgJ0dFVCcsICcvanNvbi9i
dWlsZGVycy9vdGhlciUyMGJ1aWxkZXIvcGVuZGluZ0J1aWxkcycsIFtdKTsKKyAgICAgICAgICAg
IGFzc2VydEFuZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3RzWzExXSwgJ0dFVCcsICcvanNvbi9idWls
ZGVycy9vdGhlciUyMGJ1aWxkZXIvcGVuZGluZ0J1aWxkcycsIFtdKTsKICAgICAgICAgICAgIHJl
dHVybiBNb2NrUmVtb3RlQVBJLndhaXRGb3JSZXF1ZXN0KCk7CiAgICAgICAgIH0pLnRoZW4oKCkg
PT4gewotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlcXVlc3RzLmxlbmd0aCwgMTMpOwotICAg
ICAgICAgICAgYXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNbMTBdLCAnR0VUJywgJy9q
c29uL2J1aWxkZXJzL3NvbWUlMjB0ZXN0ZXIvYnVpbGRzLz9zZWxlY3Q9LTEmc2VsZWN0PS0yJywg
e30pOwotICAgICAgICAgICAgYXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNbMTFdLCAn
R0VUJywgJy9qc29uL2J1aWxkZXJzL3NvbWUlMjBidWlsZGVyL2J1aWxkcy8/c2VsZWN0PS0xJnNl
bGVjdD0tMicsIHsKKyAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXF1ZXN0cy5sZW5ndGgsIDE1
KTsKKyAgICAgICAgICAgIGFzc2VydEFuZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3RzWzEyXSwgJ0dF
VCcsICcvanNvbi9idWlsZGVycy9zb21lJTIwdGVzdGVyL2J1aWxkcy8/c2VsZWN0PS0xJnNlbGVj
dD0tMicsIHt9KTsKKyAgICAgICAgICAgIGFzc2VydEFuZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3Rz
WzEzXSwgJ0dFVCcsICcvanNvbi9idWlsZGVycy9zb21lJTIwYnVpbGRlci9idWlsZHMvP3NlbGVj
dD0tMSZzZWxlY3Q9LTInLCB7CiAgICAgICAgICAgICAgICAgWy0xXTogTW9ja0RhdGEucnVubmlu
Z0J1aWxkKHtidWlsZGVyOiAnc29tZSBidWlsZGVyJywgYnVpbGRSZXF1ZXN0SWQ6IDF9KQogICAg
ICAgICAgICAgfSk7Ci0gICAgICAgICAgICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0
c1sxMl0sICdHRVQnLCAnL2pzb24vYnVpbGRlcnMvb3RoZXIlMjBidWlsZGVyL2J1aWxkcy8/c2Vs
ZWN0PS0xJnNlbGVjdD0tMicsIHt9KTsKKyAgICAgICAgICAgIGFzc2VydEFuZFJlc29sdmVSZXF1
ZXN0KHJlcXVlc3RzWzE0XSwgJ0dFVCcsICcvanNvbi9idWlsZGVycy9vdGhlciUyMGJ1aWxkZXIv
YnVpbGRzLz9zZWxlY3Q9LTEmc2VsZWN0PS0yJywge30pOwogICAgICAgICAgICAgcmV0dXJuIHN5
bmNQcm9taXNlOwogICAgICAgICB9KS50aGVuKCgpID0+IHsKICAgICAgICAgICAgIHJldHVybiBU
ZXN0R3JvdXAuZmV0Y2hGb3JUYXNrKHRhc2tJZCwgdHJ1ZSk7CkBAIC03MzcsNDAgKzc0NSw0MSBA
QCBkZXNjcmliZSgnc3luYy1idWlsZGJvdCcsIGZ1bmN0aW9uICgpIHsKIAogICAgICAgICAgICAg
TW9ja1JlbW90ZUFQSS5yZXNldCgpOwogICAgICAgICAgICAgc3luY1Byb21pc2UgPSB0cmlnZ2Vy
YWJsZS5pbml0U3luY2VycygpLnRoZW4oKCkgPT4gdHJpZ2dlcmFibGUuc3luY09uY2UoKSk7Cisg
ICAgICAgICAgICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1swXSwgJ0dFVCcsIE1v
Y2tEYXRhLmJ1aWxkYm90MDhCdWlsZGVyc1VSTCgpLCBNb2NrRGF0YS5tb2NrQnVpbGRib3QwOEJ1
aWxkZXJzKCkpOwogICAgICAgICAgICAgcmV0dXJuIE1vY2tSZW1vdGVBUEkud2FpdEZvclJlcXVl
c3QoKTsKICAgICAgICAgfSkudGhlbigoKSA9PiB7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwo
cmVxdWVzdHMubGVuZ3RoLCAzKTsKLSAgICAgICAgICAgIGFzc2VydEFuZFJlc29sdmVSZXF1ZXN0
KHJlcXVlc3RzWzBdLCAnR0VUJywgJy9qc29uL2J1aWxkZXJzL3NvbWUlMjB0ZXN0ZXIvcGVuZGlu
Z0J1aWxkcycsIFtdKTsKLSAgICAgICAgICAgIGFzc2VydEFuZFJlc29sdmVSZXF1ZXN0KHJlcXVl
c3RzWzFdLCAnR0VUJywgJy9qc29uL2J1aWxkZXJzL3NvbWUlMjBidWlsZGVyL3BlbmRpbmdCdWls
ZHMnLCBbXSk7Ci0gICAgICAgICAgICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1sy
XSwgJ0dFVCcsICcvanNvbi9idWlsZGVycy9vdGhlciUyMGJ1aWxkZXIvcGVuZGluZ0J1aWxkcycs
IFtdKTsKKyAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXF1ZXN0cy5sZW5ndGgsIDQpOworICAg
ICAgICAgICAgYXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNbMV0sICdHRVQnLCAnL2pz
b24vYnVpbGRlcnMvc29tZSUyMHRlc3Rlci9wZW5kaW5nQnVpbGRzJywgW10pOworICAgICAgICAg
ICAgYXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNbMl0sICdHRVQnLCAnL2pzb24vYnVp
bGRlcnMvc29tZSUyMGJ1aWxkZXIvcGVuZGluZ0J1aWxkcycsIFtdKTsKKyAgICAgICAgICAgIGFz
c2VydEFuZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3RzWzNdLCAnR0VUJywgJy9qc29uL2J1aWxkZXJz
L290aGVyJTIwYnVpbGRlci9wZW5kaW5nQnVpbGRzJywgW10pOwogICAgICAgICAgICAgcmV0dXJu
IE1vY2tSZW1vdGVBUEkud2FpdEZvclJlcXVlc3QoKTsKICAgICAgICAgfSkudGhlbigoKSA9PiB7
Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVxdWVzdHMubGVuZ3RoLCA2KTsKLSAgICAgICAg
ICAgIGFzc2VydEFuZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3RzWzNdLCAnR0VUJywgJy9qc29uL2J1
aWxkZXJzL3NvbWUlMjB0ZXN0ZXIvYnVpbGRzLz9zZWxlY3Q9LTEmc2VsZWN0PS0yJywge30pOwot
ICAgICAgICAgICAgYXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNbNF0sICdHRVQnLCAn
L2pzb24vYnVpbGRlcnMvc29tZSUyMGJ1aWxkZXIvYnVpbGRzLz9zZWxlY3Q9LTEmc2VsZWN0PS0y
JywgeworICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlcXVlc3RzLmxlbmd0aCwgNyk7CisgICAg
ICAgICAgICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1s0XSwgJ0dFVCcsICcvanNv
bi9idWlsZGVycy9zb21lJTIwdGVzdGVyL2J1aWxkcy8/c2VsZWN0PS0xJnNlbGVjdD0tMicsIHt9
KTsKKyAgICAgICAgICAgIGFzc2VydEFuZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3RzWzVdLCAnR0VU
JywgJy9qc29uL2J1aWxkZXJzL3NvbWUlMjBidWlsZGVyL2J1aWxkcy8/c2VsZWN0PS0xJnNlbGVj
dD0tMicsIHsKICAgICAgICAgICAgICAgICBbLTFdOiBNb2NrRGF0YS5maW5pc2hlZEJ1aWxkKHti
dWlsZGVyOiAnc29tZSBidWlsZGVyJywgYnVpbGRSZXF1ZXN0SWQ6IDF9KQogICAgICAgICAgICAg
fSk7Ci0gICAgICAgICAgICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1s1XSwgJ0dF
VCcsICcvanNvbi9idWlsZGVycy9vdGhlciUyMGJ1aWxkZXIvYnVpbGRzLz9zZWxlY3Q9LTEmc2Vs
ZWN0PS0yJywge30pOworICAgICAgICAgICAgYXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVz
dHNbNl0sICdHRVQnLCAnL2pzb24vYnVpbGRlcnMvb3RoZXIlMjBidWlsZGVyL2J1aWxkcy8/c2Vs
ZWN0PS0xJnNlbGVjdD0tMicsIHt9KTsKICAgICAgICAgICAgIHJldHVybiBNb2NrUmVtb3RlQVBJ
LndhaXRGb3JSZXF1ZXN0KCk7CiAgICAgICAgIH0pLnRoZW4oKCkgPT4gewotICAgICAgICAgICAg
YXNzZXJ0LmVxdWFsKHJlcXVlc3RzLmxlbmd0aCwgNyk7Ci0gICAgICAgICAgICBhc3NlcnRBbmRS
ZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1s2XSwgJ1BPU1QnLCAnL2J1aWxkZXJzL3NvbWUlMjBidWls
ZGVyL2ZvcmNlJywgJ09LJyk7Ci0gICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKHJlcXVlc3Rz
WzZdLmRhdGEsIHsnd2snOiAnMTkxNjIyJywgJ2J1aWxkLXJlcXVlc3QtaWQnOiAnMicsICdmb3Jj
ZXNjaGVkdWxlcic6ICdmb3JjZS1hYi1idWlsZHMnLCAnY2hlY2tib3gnOiAnYnVpbGQtd2snLCAn
cGxhdGZvcm0tbmFtZSc6ICdzb21lIHBsYXRmb3JtJ30pOworICAgICAgICAgICAgYXNzZXJ0LmVx
dWFsKHJlcXVlc3RzLmxlbmd0aCwgOCk7CisgICAgICAgICAgICBhc3NlcnRBbmRSZXNvbHZlUmVx
dWVzdChyZXF1ZXN0c1s3XSwgJ1BPU1QnLCAnL2J1aWxkZXJzL3NvbWUlMjBidWlsZGVyL2ZvcmNl
JywgJ09LJyk7CisgICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKHJlcXVlc3RzWzddLmRhdGEs
IHsnd2snOiAnMTkxNjIyJywgJ2J1aWxkLXJlcXVlc3QtaWQnOiAnMicsICdmb3JjZXNjaGVkdWxl
cic6ICdmb3JjZS1hYi1idWlsZHMnLCAnY2hlY2tib3gnOiAnYnVpbGQtd2snLCAncGxhdGZvcm0t
bmFtZSc6ICdzb21lIHBsYXRmb3JtJ30pOwogICAgICAgICAgICAgcmV0dXJuIE1vY2tSZW1vdGVB
UEkud2FpdEZvclJlcXVlc3QoKTsKICAgICAgICAgfSkudGhlbigoKSA9PiB7Ci0gICAgICAgICAg
ICBhc3NlcnQuZXF1YWwocmVxdWVzdHMubGVuZ3RoLCAxMCk7Ci0gICAgICAgICAgICBhc3NlcnRB
bmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1s3XSwgJ0dFVCcsICcvanNvbi9idWlsZGVycy9zb21l
JTIwdGVzdGVyL3BlbmRpbmdCdWlsZHMnLCBbXSk7Ci0gICAgICAgICAgICBhc3NlcnRBbmRSZXNv
bHZlUmVxdWVzdChyZXF1ZXN0c1s4XSwgJ0dFVCcsICcvanNvbi9idWlsZGVycy9zb21lJTIwYnVp
bGRlci9wZW5kaW5nQnVpbGRzJywgW10pOwotICAgICAgICAgICAgYXNzZXJ0QW5kUmVzb2x2ZVJl
cXVlc3QocmVxdWVzdHNbOV0sICdHRVQnLCAnL2pzb24vYnVpbGRlcnMvb3RoZXIlMjBidWlsZGVy
L3BlbmRpbmdCdWlsZHMnLCBbXSk7CisgICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVxdWVzdHMu
bGVuZ3RoLCAxMSk7CisgICAgICAgICAgICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0
c1s4XSwgJ0dFVCcsICcvanNvbi9idWlsZGVycy9zb21lJTIwdGVzdGVyL3BlbmRpbmdCdWlsZHMn
LCBbXSk7CisgICAgICAgICAgICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1s5XSwg
J0dFVCcsICcvanNvbi9idWlsZGVycy9zb21lJTIwYnVpbGRlci9wZW5kaW5nQnVpbGRzJywgW10p
OworICAgICAgICAgICAgYXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNbMTBdLCAnR0VU
JywgJy9qc29uL2J1aWxkZXJzL290aGVyJTIwYnVpbGRlci9wZW5kaW5nQnVpbGRzJywgW10pOwog
ICAgICAgICAgICAgcmV0dXJuIE1vY2tSZW1vdGVBUEkud2FpdEZvclJlcXVlc3QoKTsKICAgICAg
ICAgfSkudGhlbigoKSA9PiB7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVxdWVzdHMubGVu
Z3RoLCAxMyk7Ci0gICAgICAgICAgICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1sx
MF0sICdHRVQnLCAnL2pzb24vYnVpbGRlcnMvc29tZSUyMHRlc3Rlci9idWlsZHMvP3NlbGVjdD0t
MSZzZWxlY3Q9LTInLCB7fSk7Ci0gICAgICAgICAgICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVzdChy
ZXF1ZXN0c1sxMV0sICdHRVQnLCAnL2pzb24vYnVpbGRlcnMvc29tZSUyMGJ1aWxkZXIvYnVpbGRz
Lz9zZWxlY3Q9LTEmc2VsZWN0PS0yJywgeworICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlcXVl
c3RzLmxlbmd0aCwgMTQpOworICAgICAgICAgICAgYXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVx
dWVzdHNbMTFdLCAnR0VUJywgJy9qc29uL2J1aWxkZXJzL3NvbWUlMjB0ZXN0ZXIvYnVpbGRzLz9z
ZWxlY3Q9LTEmc2VsZWN0PS0yJywge30pOworICAgICAgICAgICAgYXNzZXJ0QW5kUmVzb2x2ZVJl
cXVlc3QocmVxdWVzdHNbMTJdLCAnR0VUJywgJy9qc29uL2J1aWxkZXJzL3NvbWUlMjBidWlsZGVy
L2J1aWxkcy8/c2VsZWN0PS0xJnNlbGVjdD0tMicsIHsKICAgICAgICAgICAgICAgICBbLTFdOiBN
b2NrRGF0YS5ydW5uaW5nQnVpbGQoe2J1aWxkZXI6ICdzb21lIGJ1aWxkZXInLCBidWlsZFJlcXVl
c3RJZDogMn0pLAogICAgICAgICAgICAgICAgIFstMl06IE1vY2tEYXRhLmZpbmlzaGVkQnVpbGQo
e2J1aWxkZXI6ICdzb21lIGJ1aWxkZXInLCBidWlsZFJlcXVlc3RJZDogMX0pLAogICAgICAgICAg
ICAgfSk7Ci0gICAgICAgICAgICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1sxMl0s
ICdHRVQnLCAnL2pzb24vYnVpbGRlcnMvb3RoZXIlMjBidWlsZGVyL2J1aWxkcy8/c2VsZWN0PS0x
JnNlbGVjdD0tMicsIHt9KTsKKyAgICAgICAgICAgIGFzc2VydEFuZFJlc29sdmVSZXF1ZXN0KHJl
cXVlc3RzWzEzXSwgJ0dFVCcsICcvanNvbi9idWlsZGVycy9vdGhlciUyMGJ1aWxkZXIvYnVpbGRz
Lz9zZWxlY3Q9LTEmc2VsZWN0PS0yJywge30pOwogICAgICAgICAgICAgcmV0dXJuIHN5bmNQcm9t
aXNlOwogICAgICAgICB9KS50aGVuKCgpID0+IHsKICAgICAgICAgICAgIHJldHVybiBUZXN0R3Jv
dXAuZmV0Y2hGb3JUYXNrKHRhc2tJZCwgdHJ1ZSk7CkBAIC05MTEsNDQgKzkyMCw0NSBAQCBkZXNj
cmliZSgnc3luYy1idWlsZGJvdCcsIGZ1bmN0aW9uICgpIHsKICAgICAgICAgICAgIGFzc2VydC5l
cXVhbChvdGhlclJvb3RzLmxlbmd0aCwgMSk7CiAgICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFs
KG90aGVyUm9vdHNbMF0uZmlsZW5hbWUoKSwgJ3Jvb3Q0Ni5kYXQnKTsKICAgICAgICAgICAgIHN5
bmNQcm9taXNlID0gdHJpZ2dlcmFibGUuaW5pdFN5bmNlcnMoKS50aGVuKCgpID0+IHRyaWdnZXJh
YmxlLnN5bmNPbmNlKCkpOworICAgICAgICAgICAgYXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVx
dWVzdHNbMV0sICdHRVQnLCBNb2NrRGF0YS5idWlsZGJvdDA4QnVpbGRlcnNVUkwoKSwgTW9ja0Rh
dGEubW9ja0J1aWxkYm90MDhCdWlsZGVycygpKTsKICAgICAgICAgICAgIHJldHVybiBNb2NrUmVt
b3RlQVBJLndhaXRGb3JSZXF1ZXN0KCk7CiAgICAgICAgIH0pLnRoZW4oKCkgPT4gewotICAgICAg
ICAgICAgYXNzZXJ0LmVxdWFsKHJlcXVlc3RzLmxlbmd0aCwgMyk7Ci0gICAgICAgICAgICBhc3Nl
cnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1swXSwgJ0dFVCcsICcvanNvbi9idWlsZGVycy9z
b21lJTIwdGVzdGVyL3BlbmRpbmdCdWlsZHMnLCBbXSk7Ci0gICAgICAgICAgICBhc3NlcnRBbmRS
ZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1sxXSwgJ0dFVCcsICcvanNvbi9idWlsZGVycy9zb21lJTIw
YnVpbGRlci9wZW5kaW5nQnVpbGRzJywgW10pOwotICAgICAgICAgICAgYXNzZXJ0QW5kUmVzb2x2
ZVJlcXVlc3QocmVxdWVzdHNbMl0sICdHRVQnLCAnL2pzb24vYnVpbGRlcnMvb3RoZXIlMjBidWls
ZGVyL3BlbmRpbmdCdWlsZHMnLCBbXSk7CisgICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVxdWVz
dHMubGVuZ3RoLCA1KTsKKyAgICAgICAgICAgIGFzc2VydEFuZFJlc29sdmVSZXF1ZXN0KHJlcXVl
c3RzWzJdLCAnR0VUJywgJy9qc29uL2J1aWxkZXJzL3NvbWUlMjB0ZXN0ZXIvcGVuZGluZ0J1aWxk
cycsIFtdKTsKKyAgICAgICAgICAgIGFzc2VydEFuZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3RzWzNd
LCAnR0VUJywgJy9qc29uL2J1aWxkZXJzL3NvbWUlMjBidWlsZGVyL3BlbmRpbmdCdWlsZHMnLCBb
XSk7CisgICAgICAgICAgICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1s0XSwgJ0dF
VCcsICcvanNvbi9idWlsZGVycy9vdGhlciUyMGJ1aWxkZXIvcGVuZGluZ0J1aWxkcycsIFtdKTsK
ICAgICAgICAgICAgIHJldHVybiBNb2NrUmVtb3RlQVBJLndhaXRGb3JSZXF1ZXN0KCk7CiAgICAg
ICAgIH0pLnRoZW4oKCkgPT4gewotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlcXVlc3RzLmxl
bmd0aCwgNik7Ci0gICAgICAgICAgICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1sz
XSwgJ0dFVCcsICcvanNvbi9idWlsZGVycy9zb21lJTIwdGVzdGVyL2J1aWxkcy8/c2VsZWN0PS0x
JnNlbGVjdD0tMicsIHt9KTsKLSAgICAgICAgICAgIGFzc2VydEFuZFJlc29sdmVSZXF1ZXN0KHJl
cXVlc3RzWzRdLCAnR0VUJywgJy9qc29uL2J1aWxkZXJzL3NvbWUlMjBidWlsZGVyL2J1aWxkcy8/
c2VsZWN0PS0xJnNlbGVjdD0tMicsIHsKKyAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXF1ZXN0
cy5sZW5ndGgsIDgpOworICAgICAgICAgICAgYXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVz
dHNbNV0sICdHRVQnLCAnL2pzb24vYnVpbGRlcnMvc29tZSUyMHRlc3Rlci9idWlsZHMvP3NlbGVj
dD0tMSZzZWxlY3Q9LTInLCB7fSk7CisgICAgICAgICAgICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVz
dChyZXF1ZXN0c1s2XSwgJ0dFVCcsICcvanNvbi9idWlsZGVycy9zb21lJTIwYnVpbGRlci9idWls
ZHMvP3NlbGVjdD0tMSZzZWxlY3Q9LTInLCB7CiAgICAgICAgICAgICAgICAgWy0xXTogTW9ja0Rh
dGEuZmluaXNoZWRCdWlsZCh7YnVpbGRlcjogJ3NvbWUgYnVpbGRlcicsIGJ1aWxkUmVxdWVzdElk
OiAxfSksCiAgICAgICAgICAgICAgICAgWy0yXTogTW9ja0RhdGEuZmluaXNoZWRCdWlsZCh7YnVp
bGRlcjogJ3NvbWUgYnVpbGRlcicsIGJ1aWxkUmVxdWVzdElkOiAyfSksCiAgICAgICAgICAgICB9
KTsKLSAgICAgICAgICAgIGFzc2VydEFuZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3RzWzVdLCAnR0VU
JywgJy9qc29uL2J1aWxkZXJzL290aGVyJTIwYnVpbGRlci9idWlsZHMvP3NlbGVjdD0tMSZzZWxl
Y3Q9LTInLCB7fSk7CisgICAgICAgICAgICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0
c1s3XSwgJ0dFVCcsICcvanNvbi9idWlsZGVycy9vdGhlciUyMGJ1aWxkZXIvYnVpbGRzLz9zZWxl
Y3Q9LTEmc2VsZWN0PS0yJywge30pOwogICAgICAgICAgICAgcmV0dXJuIE1vY2tSZW1vdGVBUEku
d2FpdEZvclJlcXVlc3QoKTsKICAgICAgICAgfSkudGhlbigoKSA9PiB7Ci0gICAgICAgICAgICBh
c3NlcnQuZXF1YWwocmVxdWVzdHMubGVuZ3RoLCA3KTsKLSAgICAgICAgICAgIGFzc2VydEFuZFJl
c29sdmVSZXF1ZXN0KHJlcXVlc3RzWzZdLCAnUE9TVCcsICcvYnVpbGRlcnMvc29tZSUyMHRlc3Rl
ci9mb3JjZScsICdPSycpOwotICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChyZXF1ZXN0c1s2
XS5kYXRhLCB7J3Rlc3QnOiAnc29tZS10ZXN0JywgJ3drJzogJzE5MTYyMicsICdidWlsZC1yZXF1
ZXN0LWlkJzogJzMnLCAnZm9yY2VzY2hlZHVsZXInOiAnZm9yY2UtYWItdGVzdHMnLAorICAgICAg
ICAgICAgYXNzZXJ0LmVxdWFsKHJlcXVlc3RzLmxlbmd0aCwgOSk7CisgICAgICAgICAgICBhc3Nl
cnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1s4XSwgJ1BPU1QnLCAnL2J1aWxkZXJzL3NvbWUl
MjB0ZXN0ZXIvZm9yY2UnLCAnT0snKTsKKyAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwocmVx
dWVzdHNbOF0uZGF0YSwgeyd0ZXN0JzogJ3NvbWUtdGVzdCcsICd3ayc6ICcxOTE2MjInLCAnYnVp
bGQtcmVxdWVzdC1pZCc6ICczJywgJ2ZvcmNlc2NoZWR1bGVyJzogJ2ZvcmNlLWFiLXRlc3RzJywK
ICAgICAgICAgICAgICAgICAncm9vdHMnOiBKU09OLnN0cmluZ2lmeShbe3VybDogZmlyc3RSb290
LnVybCgpfV0pfSk7CiAgICAgICAgICAgICByZXR1cm4gTW9ja1JlbW90ZUFQSS53YWl0Rm9yUmVx
dWVzdCgpOwogICAgICAgICB9KS50aGVuKCgpID0+IHsKLSAgICAgICAgICAgIGFzc2VydC5lcXVh
bChyZXF1ZXN0cy5sZW5ndGgsIDEwKTsKLSAgICAgICAgICAgIGFzc2VydEFuZFJlc29sdmVSZXF1
ZXN0KHJlcXVlc3RzWzddLCAnR0VUJywgJy9qc29uL2J1aWxkZXJzL3NvbWUlMjB0ZXN0ZXIvcGVu
ZGluZ0J1aWxkcycsIFsKKyAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXF1ZXN0cy5sZW5ndGgs
IDEyKTsKKyAgICAgICAgICAgIGFzc2VydEFuZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3RzWzldLCAn
R0VUJywgJy9qc29uL2J1aWxkZXJzL3NvbWUlMjB0ZXN0ZXIvcGVuZGluZ0J1aWxkcycsIFsKICAg
ICAgICAgICAgICAgICBNb2NrRGF0YS5wZW5kaW5nQnVpbGQoe2J1aWxkZXI6ICdzb21lIHRlc3Rl
cicsIGJ1aWxkUmVxdWVzdElkOiAzfSksCiAgICAgICAgICAgICBdKTsKLSAgICAgICAgICAgIGFz
c2VydEFuZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3RzWzhdLCAnR0VUJywgJy9qc29uL2J1aWxkZXJz
L3NvbWUlMjBidWlsZGVyL3BlbmRpbmdCdWlsZHMnLCBbXSk7Ci0gICAgICAgICAgICBhc3NlcnRB
bmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1s5XSwgJ0dFVCcsICcvanNvbi9idWlsZGVycy9vdGhl
ciUyMGJ1aWxkZXIvcGVuZGluZ0J1aWxkcycsIFtdKTsKKyAgICAgICAgICAgIGFzc2VydEFuZFJl
c29sdmVSZXF1ZXN0KHJlcXVlc3RzWzEwXSwgJ0dFVCcsICcvanNvbi9idWlsZGVycy9zb21lJTIw
YnVpbGRlci9wZW5kaW5nQnVpbGRzJywgW10pOworICAgICAgICAgICAgYXNzZXJ0QW5kUmVzb2x2
ZVJlcXVlc3QocmVxdWVzdHNbMTFdLCAnR0VUJywgJy9qc29uL2J1aWxkZXJzL290aGVyJTIwYnVp
bGRlci9wZW5kaW5nQnVpbGRzJywgW10pOwogICAgICAgICAgICAgcmV0dXJuIE1vY2tSZW1vdGVB
UEkud2FpdEZvclJlcXVlc3QoKTsKICAgICAgICAgfSkudGhlbigoKSA9PiB7Ci0gICAgICAgICAg
ICBhc3NlcnQuZXF1YWwocmVxdWVzdHMubGVuZ3RoLCAxMyk7Ci0gICAgICAgICAgICBhc3NlcnRB
bmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1sxMF0sICdHRVQnLCAnL2pzb24vYnVpbGRlcnMvc29t
ZSUyMHRlc3Rlci9idWlsZHMvP3NlbGVjdD0tMSZzZWxlY3Q9LTInLCB7fSk7Ci0gICAgICAgICAg
ICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1sxMV0sICdHRVQnLCAnL2pzb24vYnVp
bGRlcnMvc29tZSUyMGJ1aWxkZXIvYnVpbGRzLz9zZWxlY3Q9LTEmc2VsZWN0PS0yJywgeworICAg
ICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlcXVlc3RzLmxlbmd0aCwgMTUpOworICAgICAgICAgICAg
YXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNbMTJdLCAnR0VUJywgJy9qc29uL2J1aWxk
ZXJzL3NvbWUlMjB0ZXN0ZXIvYnVpbGRzLz9zZWxlY3Q9LTEmc2VsZWN0PS0yJywge30pOworICAg
ICAgICAgICAgYXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNbMTNdLCAnR0VUJywgJy9q
c29uL2J1aWxkZXJzL3NvbWUlMjBidWlsZGVyL2J1aWxkcy8/c2VsZWN0PS0xJnNlbGVjdD0tMics
IHsKICAgICAgICAgICAgICAgICBbLTFdOiBNb2NrRGF0YS5maW5pc2hlZEJ1aWxkKHtidWlsZGVy
OiAnc29tZSBidWlsZGVyJywgYnVpbGRSZXF1ZXN0SWQ6IDF9KSwKICAgICAgICAgICAgICAgICBb
LTJdOiBNb2NrRGF0YS5maW5pc2hlZEJ1aWxkKHtidWlsZGVyOiAnc29tZSBidWlsZGVyJywgYnVp
bGRSZXF1ZXN0SWQ6IDJ9KSwKICAgICAgICAgICAgIH0pOwotICAgICAgICAgICAgYXNzZXJ0QW5k
UmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNbMTJdLCAnR0VUJywgJy9qc29uL2J1aWxkZXJzL290aGVy
JTIwYnVpbGRlci9idWlsZHMvP3NlbGVjdD0tMSZzZWxlY3Q9LTInLCB7fSk7CisgICAgICAgICAg
ICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1sxNF0sICdHRVQnLCAnL2pzb24vYnVp
bGRlcnMvb3RoZXIlMjBidWlsZGVyL2J1aWxkcy8/c2VsZWN0PS0xJnNlbGVjdD0tMicsIHt9KTsK
ICAgICAgICAgICAgIHJldHVybiBzeW5jUHJvbWlzZTsKICAgICAgICAgfSk7CiAgICAgfSk7CkBA
IC05ODIsMzYgKzk5MiwzNyBAQCBkZXNjcmliZSgnc3luYy1idWlsZGJvdCcsIGZ1bmN0aW9uICgp
IHsKICAgICAgICAgICAgIGFzc2VydC5lcXVhbChvdGhlckJ1aWxkUmVxdWVzdC5idWlsZElkKCks
IG51bGwpOwogCiAgICAgICAgICAgICBzeW5jUHJvbWlzZSA9IHRyaWdnZXJhYmxlLmluaXRTeW5j
ZXJzKCkudGhlbigoKSA9PiB0cmlnZ2VyYWJsZS5zeW5jT25jZSgpKTsKKyAgICAgICAgICAgIGFz
c2VydEFuZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3RzWzFdLCAnR0VUJywgTW9ja0RhdGEuYnVpbGRi
b3QwOEJ1aWxkZXJzVVJMKCksIE1vY2tEYXRhLm1vY2tCdWlsZGJvdDA4QnVpbGRlcnMoKSk7CiAg
ICAgICAgICAgICByZXR1cm4gUHJvbWlzZS5hbGwoW01vY2tSZW1vdGVBUEkud2FpdEZvclJlcXVl
c3QoKSwgdXBsb2FkUm9vdCgxLCAxMjMpXSk7CiAgICAgICAgIH0pLnRoZW4oKCkgPT4gewotICAg
ICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlcXVlc3RzLmxlbmd0aCwgMyk7Ci0gICAgICAgICAgICBh
c3NlcnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1swXSwgJ0dFVCcsICcvanNvbi9idWlsZGVy
cy9zb21lJTIwdGVzdGVyL3BlbmRpbmdCdWlsZHMnLCBbXSk7Ci0gICAgICAgICAgICBhc3NlcnRB
bmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1sxXSwgJ0dFVCcsICcvanNvbi9idWlsZGVycy9zb21l
JTIwYnVpbGRlci9wZW5kaW5nQnVpbGRzJywgW10pOwotICAgICAgICAgICAgYXNzZXJ0QW5kUmVz
b2x2ZVJlcXVlc3QocmVxdWVzdHNbMl0sICdHRVQnLCAnL2pzb24vYnVpbGRlcnMvb3RoZXIlMjBi
dWlsZGVyL3BlbmRpbmdCdWlsZHMnLCBbXSk7CisgICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVx
dWVzdHMubGVuZ3RoLCA1KTsKKyAgICAgICAgICAgIGFzc2VydEFuZFJlc29sdmVSZXF1ZXN0KHJl
cXVlc3RzWzJdLCAnR0VUJywgJy9qc29uL2J1aWxkZXJzL3NvbWUlMjB0ZXN0ZXIvcGVuZGluZ0J1
aWxkcycsIFtdKTsKKyAgICAgICAgICAgIGFzc2VydEFuZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3Rz
WzNdLCAnR0VUJywgJy9qc29uL2J1aWxkZXJzL3NvbWUlMjBidWlsZGVyL3BlbmRpbmdCdWlsZHMn
LCBbXSk7CisgICAgICAgICAgICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1s0XSwg
J0dFVCcsICcvanNvbi9idWlsZGVycy9vdGhlciUyMGJ1aWxkZXIvcGVuZGluZ0J1aWxkcycsIFtd
KTsKICAgICAgICAgICAgIHJldHVybiBNb2NrUmVtb3RlQVBJLndhaXRGb3JSZXF1ZXN0KCk7CiAg
ICAgICAgIH0pLnRoZW4oKCkgPT4gewotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlcXVlc3Rz
Lmxlbmd0aCwgNik7Ci0gICAgICAgICAgICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0
c1szXSwgJ0dFVCcsICcvanNvbi9idWlsZGVycy9zb21lJTIwdGVzdGVyL2J1aWxkcy8/c2VsZWN0
PS0xJnNlbGVjdD0tMicsIHt9KTsKLSAgICAgICAgICAgIGFzc2VydEFuZFJlc29sdmVSZXF1ZXN0
KHJlcXVlc3RzWzRdLCAnR0VUJywgJy9qc29uL2J1aWxkZXJzL3NvbWUlMjBidWlsZGVyL2J1aWxk
cy8/c2VsZWN0PS0xJnNlbGVjdD0tMicsIHsKKyAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXF1
ZXN0cy5sZW5ndGgsIDgpOworICAgICAgICAgICAgYXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVx
dWVzdHNbNV0sICdHRVQnLCAnL2pzb24vYnVpbGRlcnMvc29tZSUyMHRlc3Rlci9idWlsZHMvP3Nl
bGVjdD0tMSZzZWxlY3Q9LTInLCB7fSk7CisgICAgICAgICAgICBhc3NlcnRBbmRSZXNvbHZlUmVx
dWVzdChyZXF1ZXN0c1s2XSwgJ0dFVCcsICcvanNvbi9idWlsZGVycy9zb21lJTIwYnVpbGRlci9i
dWlsZHMvP3NlbGVjdD0tMSZzZWxlY3Q9LTInLCB7CiAgICAgICAgICAgICAgICAgWy0xXTogTW9j
a0RhdGEucnVubmluZ0J1aWxkKHtidWlsZGVyOiAnc29tZSBidWlsZGVyJywgYnVpbGRSZXF1ZXN0
SWQ6IDJ9KSwKICAgICAgICAgICAgICAgICBbLTJdOiBNb2NrRGF0YS5maW5pc2hlZEJ1aWxkKHti
dWlsZGVyOiAnc29tZSBidWlsZGVyJywgYnVpbGRSZXF1ZXN0SWQ6IDF9KSwKICAgICAgICAgICAg
IH0pOwotICAgICAgICAgICAgYXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNbNV0sICdH
RVQnLCAnL2pzb24vYnVpbGRlcnMvb3RoZXIlMjBidWlsZGVyL2J1aWxkcy8/c2VsZWN0PS0xJnNl
bGVjdD0tMicsIHt9KTsKKyAgICAgICAgICAgIGFzc2VydEFuZFJlc29sdmVSZXF1ZXN0KHJlcXVl
c3RzWzddLCAnR0VUJywgJy9qc29uL2J1aWxkZXJzL290aGVyJTIwYnVpbGRlci9idWlsZHMvP3Nl
bGVjdD0tMSZzZWxlY3Q9LTInLCB7fSk7CiAgICAgICAgICAgICByZXR1cm4gTW9ja1JlbW90ZUFQ
SS53YWl0Rm9yUmVxdWVzdCgpOwogICAgICAgICB9KS50aGVuKCgpID0+IHsKLSAgICAgICAgICAg
IGFzc2VydC5lcXVhbChyZXF1ZXN0cy5sZW5ndGgsIDkpOwotICAgICAgICAgICAgYXNzZXJ0QW5k
UmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNbNl0sICdHRVQnLCAnL2pzb24vYnVpbGRlcnMvc29tZSUy
MHRlc3Rlci9wZW5kaW5nQnVpbGRzJywgW10pOwotICAgICAgICAgICAgYXNzZXJ0QW5kUmVzb2x2
ZVJlcXVlc3QocmVxdWVzdHNbN10sICdHRVQnLCAnL2pzb24vYnVpbGRlcnMvc29tZSUyMGJ1aWxk
ZXIvcGVuZGluZ0J1aWxkcycsIFtdKTsKLSAgICAgICAgICAgIGFzc2VydEFuZFJlc29sdmVSZXF1
ZXN0KHJlcXVlc3RzWzhdLCAnR0VUJywgJy9qc29uL2J1aWxkZXJzL290aGVyJTIwYnVpbGRlci9w
ZW5kaW5nQnVpbGRzJywgW10pOworICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlcXVlc3RzLmxl
bmd0aCwgMTEpOworICAgICAgICAgICAgYXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNb
OF0sICdHRVQnLCAnL2pzb24vYnVpbGRlcnMvc29tZSUyMHRlc3Rlci9wZW5kaW5nQnVpbGRzJywg
W10pOworICAgICAgICAgICAgYXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNbOV0sICdH
RVQnLCAnL2pzb24vYnVpbGRlcnMvc29tZSUyMGJ1aWxkZXIvcGVuZGluZ0J1aWxkcycsIFtdKTsK
KyAgICAgICAgICAgIGFzc2VydEFuZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3RzWzEwXSwgJ0dFVCcs
ICcvanNvbi9idWlsZGVycy9vdGhlciUyMGJ1aWxkZXIvcGVuZGluZ0J1aWxkcycsIFtdKTsKICAg
ICAgICAgICAgIHJldHVybiBNb2NrUmVtb3RlQVBJLndhaXRGb3JSZXF1ZXN0KCk7CiAgICAgICAg
IH0pLnRoZW4oKCkgPT4gewotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlcXVlc3RzLmxlbmd0
aCwgMTIpOwotICAgICAgICAgICAgYXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNbOV0s
ICdHRVQnLCAnL2pzb24vYnVpbGRlcnMvc29tZSUyMHRlc3Rlci9idWlsZHMvP3NlbGVjdD0tMSZz
ZWxlY3Q9LTInLCB7fSk7Ci0gICAgICAgICAgICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1
ZXN0c1sxMF0sICdHRVQnLCAnL2pzb24vYnVpbGRlcnMvc29tZSUyMGJ1aWxkZXIvYnVpbGRzLz9z
ZWxlY3Q9LTEmc2VsZWN0PS0yJywgeworICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlcXVlc3Rz
Lmxlbmd0aCwgMTQpOworICAgICAgICAgICAgYXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVz
dHNbMTFdLCAnR0VUJywgJy9qc29uL2J1aWxkZXJzL3NvbWUlMjB0ZXN0ZXIvYnVpbGRzLz9zZWxl
Y3Q9LTEmc2VsZWN0PS0yJywge30pOworICAgICAgICAgICAgYXNzZXJ0QW5kUmVzb2x2ZVJlcXVl
c3QocmVxdWVzdHNbMTJdLCAnR0VUJywgJy9qc29uL2J1aWxkZXJzL3NvbWUlMjBidWlsZGVyL2J1
aWxkcy8/c2VsZWN0PS0xJnNlbGVjdD0tMicsIHsKICAgICAgICAgICAgICAgICBbLTFdOiBNb2Nr
RGF0YS5ydW5uaW5nQnVpbGQoe2J1aWxkZXI6ICdzb21lIGJ1aWxkZXInLCBidWlsZFJlcXVlc3RJ
ZDogMiwgYnVpbGROdW1iZXI6IDEwMDJ9KSwKICAgICAgICAgICAgICAgICBbLTJdOiBNb2NrRGF0
YS5maW5pc2hlZEJ1aWxkKHtidWlsZGVyOiAnc29tZSBidWlsZGVyJywgYnVpbGRSZXF1ZXN0SWQ6
IDF9KSwKICAgICAgICAgICAgIH0pOwotICAgICAgICAgICAgYXNzZXJ0QW5kUmVzb2x2ZVJlcXVl
c3QocmVxdWVzdHNbMTFdLCAnR0VUJywgJy9qc29uL2J1aWxkZXJzL290aGVyJTIwYnVpbGRlci9i
dWlsZHMvP3NlbGVjdD0tMSZzZWxlY3Q9LTInLCB7fSk7CisgICAgICAgICAgICBhc3NlcnRBbmRS
ZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1sxM10sICdHRVQnLCAnL2pzb24vYnVpbGRlcnMvb3RoZXIl
MjBidWlsZGVyL2J1aWxkcy8/c2VsZWN0PS0xJnNlbGVjdD0tMicsIHt9KTsKICAgICAgICAgICAg
IHJldHVybiBzeW5jUHJvbWlzZTsKICAgICAgICAgfSkudGhlbigoKSA9PiB7CiAgICAgICAgICAg
ICByZXR1cm4gVGVzdEdyb3VwLmZldGNoRm9yVGFzayh0YXNrSWQsIHRydWUpOwpAQCAtMTA2Niwz
MiArMTA3NywzMyBAQCBkZXNjcmliZSgnc3luYy1idWlsZGJvdCcsIGZ1bmN0aW9uICgpIHsKICAg
ICAgICAgICAgIGFzc2VydC5lcXVhbChvdGhlckJ1aWxkUmVxdWVzdC5idWlsZElkKCksIG51bGwp
OwogCiAgICAgICAgICAgICBzeW5jUHJvbWlzZSA9IHRyaWdnZXJhYmxlLmluaXRTeW5jZXJzKCku
dGhlbigoKSA9PiB0cmlnZ2VyYWJsZS5zeW5jT25jZSgpKTsKKyAgICAgICAgICAgIGFzc2VydEFu
ZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3RzWzFdLCAnR0VUJywgTW9ja0RhdGEuYnVpbGRib3QwOEJ1
aWxkZXJzVVJMKCksIE1vY2tEYXRhLm1vY2tCdWlsZGJvdDA4QnVpbGRlcnMoKSk7CiAgICAgICAg
ICAgICByZXR1cm4gTW9ja1JlbW90ZUFQSS53YWl0Rm9yUmVxdWVzdCgpOwogICAgICAgICB9KS50
aGVuKCgpID0+IHsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXF1ZXN0cy5sZW5ndGgsIDMp
OwotICAgICAgICAgICAgYXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNbMF0sICdHRVQn
LCAnL2pzb24vYnVpbGRlcnMvc29tZSUyMHRlc3Rlci9wZW5kaW5nQnVpbGRzJywgW10pOwotICAg
ICAgICAgICAgYXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNbMV0sICdHRVQnLCAnL2pz
b24vYnVpbGRlcnMvc29tZSUyMGJ1aWxkZXIvcGVuZGluZ0J1aWxkcycsIFtdKTsKLSAgICAgICAg
ICAgIGFzc2VydEFuZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3RzWzJdLCAnR0VUJywgJy9qc29uL2J1
aWxkZXJzL290aGVyJTIwYnVpbGRlci9wZW5kaW5nQnVpbGRzJywgW10pOworICAgICAgICAgICAg
YXNzZXJ0LmVxdWFsKHJlcXVlc3RzLmxlbmd0aCwgNSk7CisgICAgICAgICAgICBhc3NlcnRBbmRS
ZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1syXSwgJ0dFVCcsICcvanNvbi9idWlsZGVycy9zb21lJTIw
dGVzdGVyL3BlbmRpbmdCdWlsZHMnLCBbXSk7CisgICAgICAgICAgICBhc3NlcnRBbmRSZXNvbHZl
UmVxdWVzdChyZXF1ZXN0c1szXSwgJ0dFVCcsICcvanNvbi9idWlsZGVycy9zb21lJTIwYnVpbGRl
ci9wZW5kaW5nQnVpbGRzJywgW10pOworICAgICAgICAgICAgYXNzZXJ0QW5kUmVzb2x2ZVJlcXVl
c3QocmVxdWVzdHNbNF0sICdHRVQnLCAnL2pzb24vYnVpbGRlcnMvb3RoZXIlMjBidWlsZGVyL3Bl
bmRpbmdCdWlsZHMnLCBbXSk7CiAgICAgICAgICAgICByZXR1cm4gTW9ja1JlbW90ZUFQSS53YWl0
Rm9yUmVxdWVzdCgpOwogICAgICAgICB9KS50aGVuKCgpID0+IHsKLSAgICAgICAgICAgIGFzc2Vy
dC5lcXVhbChyZXF1ZXN0cy5sZW5ndGgsIDYpOwotICAgICAgICAgICAgYXNzZXJ0QW5kUmVzb2x2
ZVJlcXVlc3QocmVxdWVzdHNbM10sICdHRVQnLCAnL2pzb24vYnVpbGRlcnMvc29tZSUyMHRlc3Rl
ci9idWlsZHMvP3NlbGVjdD0tMSZzZWxlY3Q9LTInLCB7fSk7Ci0gICAgICAgICAgICBhc3NlcnRB
bmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1s0XSwgJ0dFVCcsICcvanNvbi9idWlsZGVycy9zb21l
JTIwYnVpbGRlci9idWlsZHMvP3NlbGVjdD0tMSZzZWxlY3Q9LTInLCB7fSk7Ci0gICAgICAgICAg
ICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1s1XSwgJ0dFVCcsICcvanNvbi9idWls
ZGVycy9vdGhlciUyMGJ1aWxkZXIvYnVpbGRzLz9zZWxlY3Q9LTEmc2VsZWN0PS0yJywgeworICAg
ICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlcXVlc3RzLmxlbmd0aCwgOCk7CisgICAgICAgICAgICBh
c3NlcnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1s1XSwgJ0dFVCcsICcvanNvbi9idWlsZGVy
cy9zb21lJTIwdGVzdGVyL2J1aWxkcy8/c2VsZWN0PS0xJnNlbGVjdD0tMicsIHt9KTsKKyAgICAg
ICAgICAgIGFzc2VydEFuZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3RzWzZdLCAnR0VUJywgJy9qc29u
L2J1aWxkZXJzL3NvbWUlMjBidWlsZGVyL2J1aWxkcy8/c2VsZWN0PS0xJnNlbGVjdD0tMicsIHt9
KTsKKyAgICAgICAgICAgIGFzc2VydEFuZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3RzWzddLCAnR0VU
JywgJy9qc29uL2J1aWxkZXJzL290aGVyJTIwYnVpbGRlci9idWlsZHMvP3NlbGVjdD0tMSZzZWxl
Y3Q9LTInLCB7CiAgICAgICAgICAgICAgICAgWy0xXTogTW9ja0RhdGEuZmluaXNoZWRCdWlsZCh7
YnVpbGRlcjogJ290aGVyIGJ1aWxkZXInLCBidWlsZFJlcXVlc3RJZDogMSwgYnVpbGROdW1iZXI6
IDMxMn0pLAogICAgICAgICAgICAgfSk7CiAgICAgICAgICAgICByZXR1cm4gTW9ja1JlbW90ZUFQ
SS53YWl0Rm9yUmVxdWVzdCgpOwogICAgICAgICB9KS50aGVuKCgpID0+IHsKLSAgICAgICAgICAg
IGFzc2VydC5lcXVhbChyZXF1ZXN0cy5sZW5ndGgsIDkpOwotICAgICAgICAgICAgYXNzZXJ0QW5k
UmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNbNl0sICdHRVQnLCAnL2pzb24vYnVpbGRlcnMvc29tZSUy
MHRlc3Rlci9wZW5kaW5nQnVpbGRzJywgW10pOwotICAgICAgICAgICAgYXNzZXJ0QW5kUmVzb2x2
ZVJlcXVlc3QocmVxdWVzdHNbN10sICdHRVQnLCAnL2pzb24vYnVpbGRlcnMvc29tZSUyMGJ1aWxk
ZXIvcGVuZGluZ0J1aWxkcycsIFtdKTsKLSAgICAgICAgICAgIGFzc2VydEFuZFJlc29sdmVSZXF1
ZXN0KHJlcXVlc3RzWzhdLCAnR0VUJywgJy9qc29uL2J1aWxkZXJzL290aGVyJTIwYnVpbGRlci9w
ZW5kaW5nQnVpbGRzJywgW10pOworICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlcXVlc3RzLmxl
bmd0aCwgMTEpOworICAgICAgICAgICAgYXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNb
OF0sICdHRVQnLCAnL2pzb24vYnVpbGRlcnMvc29tZSUyMHRlc3Rlci9wZW5kaW5nQnVpbGRzJywg
W10pOworICAgICAgICAgICAgYXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNbOV0sICdH
RVQnLCAnL2pzb24vYnVpbGRlcnMvc29tZSUyMGJ1aWxkZXIvcGVuZGluZ0J1aWxkcycsIFtdKTsK
KyAgICAgICAgICAgIGFzc2VydEFuZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3RzWzEwXSwgJ0dFVCcs
ICcvanNvbi9idWlsZGVycy9vdGhlciUyMGJ1aWxkZXIvcGVuZGluZ0J1aWxkcycsIFtdKTsKICAg
ICAgICAgICAgIHJldHVybiBNb2NrUmVtb3RlQVBJLndhaXRGb3JSZXF1ZXN0KCk7CiAgICAgICAg
IH0pLnRoZW4oKCkgPT4gewotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlcXVlc3RzLmxlbmd0
aCwgMTIpOwotICAgICAgICAgICAgYXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNbOV0s
ICdHRVQnLCAnL2pzb24vYnVpbGRlcnMvc29tZSUyMHRlc3Rlci9idWlsZHMvP3NlbGVjdD0tMSZz
ZWxlY3Q9LTInLCB7fSk7Ci0gICAgICAgICAgICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1
ZXN0c1sxMF0sICdHRVQnLCAnL2pzb24vYnVpbGRlcnMvc29tZSUyMGJ1aWxkZXIvYnVpbGRzLz9z
ZWxlY3Q9LTEmc2VsZWN0PS0yJywge30pOwotICAgICAgICAgICAgYXNzZXJ0QW5kUmVzb2x2ZVJl
cXVlc3QocmVxdWVzdHNbMTFdLCAnR0VUJywgJy9qc29uL2J1aWxkZXJzL290aGVyJTIwYnVpbGRl
ci9idWlsZHMvP3NlbGVjdD0tMSZzZWxlY3Q9LTInLCB7CisgICAgICAgICAgICBhc3NlcnQuZXF1
YWwocmVxdWVzdHMubGVuZ3RoLCAxNCk7CisgICAgICAgICAgICBhc3NlcnRBbmRSZXNvbHZlUmVx
dWVzdChyZXF1ZXN0c1sxMV0sICdHRVQnLCAnL2pzb24vYnVpbGRlcnMvc29tZSUyMHRlc3Rlci9i
dWlsZHMvP3NlbGVjdD0tMSZzZWxlY3Q9LTInLCB7fSk7CisgICAgICAgICAgICBhc3NlcnRBbmRS
ZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1sxMl0sICdHRVQnLCAnL2pzb24vYnVpbGRlcnMvc29tZSUy
MGJ1aWxkZXIvYnVpbGRzLz9zZWxlY3Q9LTEmc2VsZWN0PS0yJywge30pOworICAgICAgICAgICAg
YXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNbMTNdLCAnR0VUJywgJy9qc29uL2J1aWxk
ZXJzL290aGVyJTIwYnVpbGRlci9idWlsZHMvP3NlbGVjdD0tMSZzZWxlY3Q9LTInLCB7CiAgICAg
ICAgICAgICAgICAgWy0xXTogTW9ja0RhdGEuZmluaXNoZWRCdWlsZCh7YnVpbGRlcjogJ290aGVy
IGJ1aWxkZXInLCBidWlsZFJlcXVlc3RJZDogMSwgYnVpbGROdW1iZXI6IDMxMn0pLAogICAgICAg
ICAgICAgfSk7CiAgICAgICAgICAgICByZXR1cm4gc3luY1Byb21pc2U7CkBAIC0xMTcyLDM4ICsx
MTg0LDM5IEBAIGRlc2NyaWJlKCdzeW5jLWJ1aWxkYm90JywgZnVuY3Rpb24gKCkgewogICAgICAg
ICAgICAgYXNzZXJ0LmRlZXBFcXVhbChvdGhlckNvbW1pdFNldC5hbGxSb290RmlsZXMoKSwgW10p
OwogCiAgICAgICAgICAgICBzeW5jUHJvbWlzZSA9IHRyaWdnZXJhYmxlLmluaXRTeW5jZXJzKCku
dGhlbigoKSA9PiB0cmlnZ2VyYWJsZS5zeW5jT25jZSgpKTsKKyAgICAgICAgICAgIGFzc2VydEFu
ZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3RzWzFdLCAnR0VUJywgTW9ja0RhdGEuYnVpbGRib3QwOEJ1
aWxkZXJzVVJMKCksIE1vY2tEYXRhLm1vY2tCdWlsZGJvdDA4QnVpbGRlcnMoKSk7CiAgICAgICAg
ICAgICByZXR1cm4gTW9ja1JlbW90ZUFQSS53YWl0Rm9yUmVxdWVzdCgpOwogICAgICAgICB9KS50
aGVuKCgpID0+IHsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXF1ZXN0cy5sZW5ndGgsIDMp
OwotICAgICAgICAgICAgYXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNbMF0sICdHRVQn
LCAnL2pzb24vYnVpbGRlcnMvc29tZSUyMHRlc3Rlci9wZW5kaW5nQnVpbGRzJywgW10pOwotICAg
ICAgICAgICAgYXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNbMV0sICdHRVQnLCAnL2pz
b24vYnVpbGRlcnMvc29tZSUyMGJ1aWxkZXIvcGVuZGluZ0J1aWxkcycsIFtdKTsKLSAgICAgICAg
ICAgIGFzc2VydEFuZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3RzWzJdLCAnR0VUJywgJy9qc29uL2J1
aWxkZXJzL290aGVyJTIwYnVpbGRlci9wZW5kaW5nQnVpbGRzJywgW10pOworICAgICAgICAgICAg
YXNzZXJ0LmVxdWFsKHJlcXVlc3RzLmxlbmd0aCwgNSk7CisgICAgICAgICAgICBhc3NlcnRBbmRS
ZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1syXSwgJ0dFVCcsICcvanNvbi9idWlsZGVycy9zb21lJTIw
dGVzdGVyL3BlbmRpbmdCdWlsZHMnLCBbXSk7CisgICAgICAgICAgICBhc3NlcnRBbmRSZXNvbHZl
UmVxdWVzdChyZXF1ZXN0c1szXSwgJ0dFVCcsICcvanNvbi9idWlsZGVycy9zb21lJTIwYnVpbGRl
ci9wZW5kaW5nQnVpbGRzJywgW10pOworICAgICAgICAgICAgYXNzZXJ0QW5kUmVzb2x2ZVJlcXVl
c3QocmVxdWVzdHNbNF0sICdHRVQnLCAnL2pzb24vYnVpbGRlcnMvb3RoZXIlMjBidWlsZGVyL3Bl
bmRpbmdCdWlsZHMnLCBbXSk7CiAgICAgICAgICAgICByZXR1cm4gTW9ja1JlbW90ZUFQSS53YWl0
Rm9yUmVxdWVzdCgpOwogICAgICAgICB9KS50aGVuKCgpID0+IHsKLSAgICAgICAgICAgIGFzc2Vy
dC5lcXVhbChyZXF1ZXN0cy5sZW5ndGgsIDYpOwotICAgICAgICAgICAgYXNzZXJ0QW5kUmVzb2x2
ZVJlcXVlc3QocmVxdWVzdHNbM10sICdHRVQnLCAnL2pzb24vYnVpbGRlcnMvc29tZSUyMHRlc3Rl
ci9idWlsZHMvP3NlbGVjdD0tMSZzZWxlY3Q9LTInLCB7fSk7Ci0gICAgICAgICAgICBhc3NlcnRB
bmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1s0XSwgJ0dFVCcsICcvanNvbi9idWlsZGVycy9zb21l
JTIwYnVpbGRlci9idWlsZHMvP3NlbGVjdD0tMSZzZWxlY3Q9LTInLCB7fSk7Ci0gICAgICAgICAg
ICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1s1XSwgJ0dFVCcsICcvanNvbi9idWls
ZGVycy9vdGhlciUyMGJ1aWxkZXIvYnVpbGRzLz9zZWxlY3Q9LTEmc2VsZWN0PS0yJywge30pOwor
ICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlcXVlc3RzLmxlbmd0aCwgOCk7CisgICAgICAgICAg
ICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1s1XSwgJ0dFVCcsICcvanNvbi9idWls
ZGVycy9zb21lJTIwdGVzdGVyL2J1aWxkcy8/c2VsZWN0PS0xJnNlbGVjdD0tMicsIHt9KTsKKyAg
ICAgICAgICAgIGFzc2VydEFuZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3RzWzZdLCAnR0VUJywgJy9q
c29uL2J1aWxkZXJzL3NvbWUlMjBidWlsZGVyL2J1aWxkcy8/c2VsZWN0PS0xJnNlbGVjdD0tMics
IHt9KTsKKyAgICAgICAgICAgIGFzc2VydEFuZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3RzWzddLCAn
R0VUJywgJy9qc29uL2J1aWxkZXJzL290aGVyJTIwYnVpbGRlci9idWlsZHMvP3NlbGVjdD0tMSZz
ZWxlY3Q9LTInLCB7fSk7CiAgICAgICAgICAgICByZXR1cm4gTW9ja1JlbW90ZUFQSS53YWl0Rm9y
UmVxdWVzdCgpOwogICAgICAgICB9KS50aGVuKCgpID0+IHsKLSAgICAgICAgICAgIGFzc2VydC5l
cXVhbChyZXF1ZXN0cy5sZW5ndGgsIDcpOwotICAgICAgICAgICAgYXNzZXJ0QW5kUmVzb2x2ZVJl
cXVlc3QocmVxdWVzdHNbNl0sICdQT1NUJywgJy9idWlsZGVycy9zb21lJTIwYnVpbGRlci9mb3Jj
ZScsICdPSycpOwotICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChyZXF1ZXN0c1s2XS5kYXRh
LCB7J3drJzogJzE5MTYyMicsICdidWlsZC1yZXF1ZXN0LWlkJzogJzEnLCAnZm9yY2VzY2hlZHVs
ZXInOiAnZm9yY2UtYWItYnVpbGRzJywgJ293bmVkLWNvbW1pdHMnOiBgeyJXZWJLaXQiOlt7InJl
dmlzaW9uIjoib3duZWQtanNjLTYxNjEiLCJyZXBvc2l0b3J5IjoiSmF2YVNjcmlwdENvcmUiLCJv
d25lclJldmlzaW9uIjoiMTkxNjIyIn1dfWB9KTsKKyAgICAgICAgICAgIGFzc2VydC5lcXVhbChy
ZXF1ZXN0cy5sZW5ndGgsIDkpOworICAgICAgICAgICAgYXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3Qo
cmVxdWVzdHNbOF0sICdQT1NUJywgJy9idWlsZGVycy9zb21lJTIwYnVpbGRlci9mb3JjZScsICdP
SycpOworICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChyZXF1ZXN0c1s4XS5kYXRhLCB7J3dr
JzogJzE5MTYyMicsICdidWlsZC1yZXF1ZXN0LWlkJzogJzEnLCAnZm9yY2VzY2hlZHVsZXInOiAn
Zm9yY2UtYWItYnVpbGRzJywgJ293bmVkLWNvbW1pdHMnOiBgeyJXZWJLaXQiOlt7InJldmlzaW9u
Ijoib3duZWQtanNjLTYxNjEiLCJyZXBvc2l0b3J5IjoiSmF2YVNjcmlwdENvcmUiLCJvd25lclJl
dmlzaW9uIjoiMTkxNjIyIn1dfWB9KTsKICAgICAgICAgICAgIHJldHVybiBNb2NrUmVtb3RlQVBJ
LndhaXRGb3JSZXF1ZXN0KCk7CiAgICAgICAgIH0pLnRoZW4oKCkgPT4gewotICAgICAgICAgICAg
YXNzZXJ0LmVxdWFsKHJlcXVlc3RzLmxlbmd0aCwgMTApOwotICAgICAgICAgICAgYXNzZXJ0QW5k
UmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNbN10sICdHRVQnLCAnL2pzb24vYnVpbGRlcnMvc29tZSUy
MHRlc3Rlci9wZW5kaW5nQnVpbGRzJywgW10pOwotICAgICAgICAgICAgYXNzZXJ0QW5kUmVzb2x2
ZVJlcXVlc3QocmVxdWVzdHNbOF0sICdHRVQnLCAnL2pzb24vYnVpbGRlcnMvc29tZSUyMGJ1aWxk
ZXIvcGVuZGluZ0J1aWxkcycsCisgICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVxdWVzdHMubGVu
Z3RoLCAxMik7CisgICAgICAgICAgICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1s5
XSwgJ0dFVCcsICcvanNvbi9idWlsZGVycy9zb21lJTIwdGVzdGVyL3BlbmRpbmdCdWlsZHMnLCBb
XSk7CisgICAgICAgICAgICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1sxMF0sICdH
RVQnLCAnL2pzb24vYnVpbGRlcnMvc29tZSUyMGJ1aWxkZXIvcGVuZGluZ0J1aWxkcycsCiAgICAg
ICAgICAgICAgICAgW01vY2tEYXRhLnBlbmRpbmdCdWlsZCh7YnVpbGRlcjogJ3NvbWUgYnVpbGRl
cicsIGJ1aWxkUmVxdWVzdElkOiAxfSldKTsKLSAgICAgICAgICAgIGFzc2VydEFuZFJlc29sdmVS
ZXF1ZXN0KHJlcXVlc3RzWzldLCAnR0VUJywgJy9qc29uL2J1aWxkZXJzL290aGVyJTIwYnVpbGRl
ci9wZW5kaW5nQnVpbGRzJywgW10pOworICAgICAgICAgICAgYXNzZXJ0QW5kUmVzb2x2ZVJlcXVl
c3QocmVxdWVzdHNbMTFdLCAnR0VUJywgJy9qc29uL2J1aWxkZXJzL290aGVyJTIwYnVpbGRlci9w
ZW5kaW5nQnVpbGRzJywgW10pOwogICAgICAgICAgICAgcmV0dXJuIE1vY2tSZW1vdGVBUEkud2Fp
dEZvclJlcXVlc3QoKTsKICAgICAgICAgfSkudGhlbigoKSA9PiB7Ci0gICAgICAgICAgICBhc3Nl
cnQuZXF1YWwocmVxdWVzdHMubGVuZ3RoLCAxMyk7Ci0gICAgICAgICAgICBhc3NlcnRBbmRSZXNv
bHZlUmVxdWVzdChyZXF1ZXN0c1sxMF0sICdHRVQnLCAnL2pzb24vYnVpbGRlcnMvc29tZSUyMHRl
c3Rlci9idWlsZHMvP3NlbGVjdD0tMSZzZWxlY3Q9LTInLCB7fSk7Ci0gICAgICAgICAgICBhc3Nl
cnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1sxMV0sICdHRVQnLCAnL2pzb24vYnVpbGRlcnMv
c29tZSUyMGJ1aWxkZXIvYnVpbGRzLz9zZWxlY3Q9LTEmc2VsZWN0PS0yJywgeworICAgICAgICAg
ICAgYXNzZXJ0LmVxdWFsKHJlcXVlc3RzLmxlbmd0aCwgMTUpOworICAgICAgICAgICAgYXNzZXJ0
QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNbMTJdLCAnR0VUJywgJy9qc29uL2J1aWxkZXJzL3Nv
bWUlMjB0ZXN0ZXIvYnVpbGRzLz9zZWxlY3Q9LTEmc2VsZWN0PS0yJywge30pOworICAgICAgICAg
ICAgYXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNbMTNdLCAnR0VUJywgJy9qc29uL2J1
aWxkZXJzL3NvbWUlMjBidWlsZGVyL2J1aWxkcy8/c2VsZWN0PS0xJnNlbGVjdD0tMicsIHsKICAg
ICAgICAgICAgICAgICBbLTFdOiBNb2NrRGF0YS5ydW5uaW5nQnVpbGQoe2J1aWxkZXI6ICdzb21l
IGJ1aWxkZXInLCBidWlsZFJlcXVlc3RJZDogMX0pCiAgICAgICAgICAgICB9KTsKLSAgICAgICAg
ICAgIGFzc2VydEFuZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3RzWzEyXSwgJ0dFVCcsICcvanNvbi9i
dWlsZGVycy9vdGhlciUyMGJ1aWxkZXIvYnVpbGRzLz9zZWxlY3Q9LTEmc2VsZWN0PS0yJywge30p
OworICAgICAgICAgICAgYXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNbMTRdLCAnR0VU
JywgJy9qc29uL2J1aWxkZXJzL290aGVyJTIwYnVpbGRlci9idWlsZHMvP3NlbGVjdD0tMSZzZWxl
Y3Q9LTInLCB7fSk7CiAgICAgICAgICAgICByZXR1cm4gc3luY1Byb21pc2U7CiAgICAgICAgIH0p
LnRoZW4oKCkgPT4gewogICAgICAgICAgICAgcmV0dXJuIFRlc3RHcm91cC5mZXRjaEZvclRhc2so
dGFza0lkLCB0cnVlKTsKQEAgLTEyOTEsNDAgKzEzMDQsNDEgQEAgZGVzY3JpYmUoJ3N5bmMtYnVp
bGRib3QnLCBmdW5jdGlvbiAoKSB7CiAKICAgICAgICAgICAgIE1vY2tSZW1vdGVBUEkucmVzZXQo
KTsKICAgICAgICAgICAgIHN5bmNQcm9taXNlID0gdHJpZ2dlcmFibGUuaW5pdFN5bmNlcnMoKS50
aGVuKCgpID0+IHRyaWdnZXJhYmxlLnN5bmNPbmNlKCkpOworICAgICAgICAgICAgYXNzZXJ0QW5k
UmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNbMF0sICdHRVQnLCBNb2NrRGF0YS5idWlsZGJvdDA4QnVp
bGRlcnNVUkwoKSwgTW9ja0RhdGEubW9ja0J1aWxkYm90MDhCdWlsZGVycygpKTsKICAgICAgICAg
ICAgIHJldHVybiBNb2NrUmVtb3RlQVBJLndhaXRGb3JSZXF1ZXN0KCk7CiAgICAgICAgIH0pLnRo
ZW4oKCkgPT4gewotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlcXVlc3RzLmxlbmd0aCwgMyk7
Ci0gICAgICAgICAgICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1swXSwgJ0dFVCcs
ICcvanNvbi9idWlsZGVycy9zb21lJTIwdGVzdGVyL3BlbmRpbmdCdWlsZHMnLCBbXSk7Ci0gICAg
ICAgICAgICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1sxXSwgJ0dFVCcsICcvanNv
bi9idWlsZGVycy9zb21lJTIwYnVpbGRlci9wZW5kaW5nQnVpbGRzJywgW10pOwotICAgICAgICAg
ICAgYXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNbMl0sICdHRVQnLCAnL2pzb24vYnVp
bGRlcnMvb3RoZXIlMjBidWlsZGVyL3BlbmRpbmdCdWlsZHMnLCBbXSk7CisgICAgICAgICAgICBh
c3NlcnQuZXF1YWwocmVxdWVzdHMubGVuZ3RoLCA0KTsKKyAgICAgICAgICAgIGFzc2VydEFuZFJl
c29sdmVSZXF1ZXN0KHJlcXVlc3RzWzFdLCAnR0VUJywgJy9qc29uL2J1aWxkZXJzL3NvbWUlMjB0
ZXN0ZXIvcGVuZGluZ0J1aWxkcycsIFtdKTsKKyAgICAgICAgICAgIGFzc2VydEFuZFJlc29sdmVS
ZXF1ZXN0KHJlcXVlc3RzWzJdLCAnR0VUJywgJy9qc29uL2J1aWxkZXJzL3NvbWUlMjBidWlsZGVy
L3BlbmRpbmdCdWlsZHMnLCBbXSk7CisgICAgICAgICAgICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVz
dChyZXF1ZXN0c1szXSwgJ0dFVCcsICcvanNvbi9idWlsZGVycy9vdGhlciUyMGJ1aWxkZXIvcGVu
ZGluZ0J1aWxkcycsIFtdKTsKICAgICAgICAgICAgIHJldHVybiBNb2NrUmVtb3RlQVBJLndhaXRG
b3JSZXF1ZXN0KCk7CiAgICAgICAgIH0pLnRoZW4oKCkgPT4gewotICAgICAgICAgICAgYXNzZXJ0
LmVxdWFsKHJlcXVlc3RzLmxlbmd0aCwgNik7Ci0gICAgICAgICAgICBhc3NlcnRBbmRSZXNvbHZl
UmVxdWVzdChyZXF1ZXN0c1szXSwgJ0dFVCcsICcvanNvbi9idWlsZGVycy9zb21lJTIwdGVzdGVy
L2J1aWxkcy8/c2VsZWN0PS0xJnNlbGVjdD0tMicsIHt9KTsKLSAgICAgICAgICAgIGFzc2VydEFu
ZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3RzWzRdLCAnR0VUJywgJy9qc29uL2J1aWxkZXJzL3NvbWUl
MjBidWlsZGVyL2J1aWxkcy8/c2VsZWN0PS0xJnNlbGVjdD0tMicsIHsKKyAgICAgICAgICAgIGFz
c2VydC5lcXVhbChyZXF1ZXN0cy5sZW5ndGgsIDcpOworICAgICAgICAgICAgYXNzZXJ0QW5kUmVz
b2x2ZVJlcXVlc3QocmVxdWVzdHNbNF0sICdHRVQnLCAnL2pzb24vYnVpbGRlcnMvc29tZSUyMHRl
c3Rlci9idWlsZHMvP3NlbGVjdD0tMSZzZWxlY3Q9LTInLCB7fSk7CisgICAgICAgICAgICBhc3Nl
cnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1s1XSwgJ0dFVCcsICcvanNvbi9idWlsZGVycy9z
b21lJTIwYnVpbGRlci9idWlsZHMvP3NlbGVjdD0tMSZzZWxlY3Q9LTInLCB7CiAgICAgICAgICAg
ICAgICAgWy0xXTogTW9ja0RhdGEuZmluaXNoZWRCdWlsZCh7YnVpbGRlcjogJ3NvbWUgYnVpbGRl
cicsIGJ1aWxkUmVxdWVzdElkOiAxfSkKICAgICAgICAgICAgIH0pOwotICAgICAgICAgICAgYXNz
ZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNbNV0sICdHRVQnLCAnL2pzb24vYnVpbGRlcnMv
b3RoZXIlMjBidWlsZGVyL2J1aWxkcy8/c2VsZWN0PS0xJnNlbGVjdD0tMicsIHt9KTsKKyAgICAg
ICAgICAgIGFzc2VydEFuZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3RzWzZdLCAnR0VUJywgJy9qc29u
L2J1aWxkZXJzL290aGVyJTIwYnVpbGRlci9idWlsZHMvP3NlbGVjdD0tMSZzZWxlY3Q9LTInLCB7
fSk7CiAgICAgICAgICAgICByZXR1cm4gTW9ja1JlbW90ZUFQSS53YWl0Rm9yUmVxdWVzdCgpOwog
ICAgICAgICB9KS50aGVuKCgpID0+IHsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXF1ZXN0
cy5sZW5ndGgsIDcpOwotICAgICAgICAgICAgYXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVz
dHNbNl0sICdQT1NUJywgJy9idWlsZGVycy9zb21lJTIwYnVpbGRlci9mb3JjZScsICdPSycpOwot
ICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChyZXF1ZXN0c1s2XS5kYXRhLCB7J3drJzogJzE5
MjczNicsICdidWlsZC1yZXF1ZXN0LWlkJzogJzInLCAnZm9yY2VzY2hlZHVsZXInOiAnZm9yY2Ut
YWItYnVpbGRzJywgJ293bmVkLWNvbW1pdHMnOiBgeyJXZWJLaXQiOlt7InJldmlzaW9uIjoib3du
ZWQtanNjLTkxOTEiLCJyZXBvc2l0b3J5IjoiSmF2YVNjcmlwdENvcmUiLCJvd25lclJldmlzaW9u
IjoiMTkyNzM2In1dfWB9KTsKKyAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXF1ZXN0cy5sZW5n
dGgsIDgpOworICAgICAgICAgICAgYXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNbN10s
ICdQT1NUJywgJy9idWlsZGVycy9zb21lJTIwYnVpbGRlci9mb3JjZScsICdPSycpOworICAgICAg
ICAgICAgYXNzZXJ0LmRlZXBFcXVhbChyZXF1ZXN0c1s3XS5kYXRhLCB7J3drJzogJzE5MjczNics
ICdidWlsZC1yZXF1ZXN0LWlkJzogJzInLCAnZm9yY2VzY2hlZHVsZXInOiAnZm9yY2UtYWItYnVp
bGRzJywgJ293bmVkLWNvbW1pdHMnOiBgeyJXZWJLaXQiOlt7InJldmlzaW9uIjoib3duZWQtanNj
LTkxOTEiLCJyZXBvc2l0b3J5IjoiSmF2YVNjcmlwdENvcmUiLCJvd25lclJldmlzaW9uIjoiMTky
NzM2In1dfWB9KTsKICAgICAgICAgICAgIHJldHVybiBNb2NrUmVtb3RlQVBJLndhaXRGb3JSZXF1
ZXN0KCk7CiAgICAgICAgIH0pLnRoZW4oKCkgPT4gewotICAgICAgICAgICAgYXNzZXJ0LmVxdWFs
KHJlcXVlc3RzLmxlbmd0aCwgMTApOwotICAgICAgICAgICAgYXNzZXJ0QW5kUmVzb2x2ZVJlcXVl
c3QocmVxdWVzdHNbN10sICdHRVQnLCAnL2pzb24vYnVpbGRlcnMvc29tZSUyMHRlc3Rlci9wZW5k
aW5nQnVpbGRzJywgW10pOwotICAgICAgICAgICAgYXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVx
dWVzdHNbOF0sICdHRVQnLCAnL2pzb24vYnVpbGRlcnMvc29tZSUyMGJ1aWxkZXIvcGVuZGluZ0J1
aWxkcycsIFtdKTsKLSAgICAgICAgICAgIGFzc2VydEFuZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3Rz
WzldLCAnR0VUJywgJy9qc29uL2J1aWxkZXJzL290aGVyJTIwYnVpbGRlci9wZW5kaW5nQnVpbGRz
JywgW10pOworICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlcXVlc3RzLmxlbmd0aCwgMTEpOwor
ICAgICAgICAgICAgYXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNbOF0sICdHRVQnLCAn
L2pzb24vYnVpbGRlcnMvc29tZSUyMHRlc3Rlci9wZW5kaW5nQnVpbGRzJywgW10pOworICAgICAg
ICAgICAgYXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNbOV0sICdHRVQnLCAnL2pzb24v
YnVpbGRlcnMvc29tZSUyMGJ1aWxkZXIvcGVuZGluZ0J1aWxkcycsIFtdKTsKKyAgICAgICAgICAg
IGFzc2VydEFuZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3RzWzEwXSwgJ0dFVCcsICcvanNvbi9idWls
ZGVycy9vdGhlciUyMGJ1aWxkZXIvcGVuZGluZ0J1aWxkcycsIFtdKTsKICAgICAgICAgICAgIHJl
dHVybiBNb2NrUmVtb3RlQVBJLndhaXRGb3JSZXF1ZXN0KCk7CiAgICAgICAgIH0pLnRoZW4oKCkg
PT4gewotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlcXVlc3RzLmxlbmd0aCwgMTMpOwotICAg
ICAgICAgICAgYXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNbMTBdLCAnR0VUJywgJy9q
c29uL2J1aWxkZXJzL3NvbWUlMjB0ZXN0ZXIvYnVpbGRzLz9zZWxlY3Q9LTEmc2VsZWN0PS0yJywg
e30pOwotICAgICAgICAgICAgYXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNbMTFdLCAn
R0VUJywgJy9qc29uL2J1aWxkZXJzL3NvbWUlMjBidWlsZGVyL2J1aWxkcy8/c2VsZWN0PS0xJnNl
bGVjdD0tMicsIHsKKyAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXF1ZXN0cy5sZW5ndGgsIDE0
KTsKKyAgICAgICAgICAgIGFzc2VydEFuZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3RzWzExXSwgJ0dF
VCcsICcvanNvbi9idWlsZGVycy9zb21lJTIwdGVzdGVyL2J1aWxkcy8/c2VsZWN0PS0xJnNlbGVj
dD0tMicsIHt9KTsKKyAgICAgICAgICAgIGFzc2VydEFuZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3Rz
WzEyXSwgJ0dFVCcsICcvanNvbi9idWlsZGVycy9zb21lJTIwYnVpbGRlci9idWlsZHMvP3NlbGVj
dD0tMSZzZWxlY3Q9LTInLCB7CiAgICAgICAgICAgICAgICAgWy0xXTogTW9ja0RhdGEucnVubmlu
Z0J1aWxkKHtidWlsZGVyOiAnc29tZSBidWlsZGVyJywgYnVpbGRSZXF1ZXN0SWQ6IDJ9KSwKICAg
ICAgICAgICAgICAgICBbLTJdOiBNb2NrRGF0YS5maW5pc2hlZEJ1aWxkKHtidWlsZGVyOiAnc29t
ZSBidWlsZGVyJywgYnVpbGRSZXF1ZXN0SWQ6IDF9KSwKICAgICAgICAgICAgIH0pOwotICAgICAg
ICAgICAgYXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNbMTJdLCAnR0VUJywgJy9qc29u
L2J1aWxkZXJzL290aGVyJTIwYnVpbGRlci9idWlsZHMvP3NlbGVjdD0tMSZzZWxlY3Q9LTInLCB7
fSk7CisgICAgICAgICAgICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1sxM10sICdH
RVQnLCAnL2pzb24vYnVpbGRlcnMvb3RoZXIlMjBidWlsZGVyL2J1aWxkcy8/c2VsZWN0PS0xJnNl
bGVjdD0tMicsIHt9KTsKICAgICAgICAgICAgIHJldHVybiBzeW5jUHJvbWlzZTsKICAgICAgICAg
fSkudGhlbigoKSA9PiB7CiAgICAgICAgICAgICByZXR1cm4gVGVzdEdyb3VwLmZldGNoRm9yVGFz
ayh0YXNrSWQsIHRydWUpOwpAQCAtMTQ2NywzOCArMTQ4MSwzOSBAQCBkZXNjcmliZSgnc3luYy1i
dWlsZGJvdCcsIGZ1bmN0aW9uICgpIHsKICAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwob3Ro
ZXJDb21taXRTZXQuYWxsUm9vdEZpbGVzKCksIFtdKTsKIAogICAgICAgICAgICAgc3luY1Byb21p
c2UgPSB0cmlnZ2VyYWJsZS5pbml0U3luY2VycygpLnRoZW4oKCkgPT4gdHJpZ2dlcmFibGUuc3lu
Y09uY2UoKSk7CisgICAgICAgICAgICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1sx
XSwgJ0dFVCcsIE1vY2tEYXRhLmJ1aWxkYm90MDhCdWlsZGVyc1VSTCgpLCBNb2NrRGF0YS5tb2Nr
QnVpbGRib3QwOEJ1aWxkZXJzKCkpOwogICAgICAgICAgICAgcmV0dXJuIE1vY2tSZW1vdGVBUEku
d2FpdEZvclJlcXVlc3QoKTsKICAgICAgICAgfSkudGhlbigoKSA9PiB7Ci0gICAgICAgICAgICBh
c3NlcnQuZXF1YWwocmVxdWVzdHMubGVuZ3RoLCAzKTsKLSAgICAgICAgICAgIGFzc2VydEFuZFJl
c29sdmVSZXF1ZXN0KHJlcXVlc3RzWzBdLCAnR0VUJywgJy9qc29uL2J1aWxkZXJzL3NvbWUlMjB0
ZXN0ZXIvcGVuZGluZ0J1aWxkcycsIFtdKTsKLSAgICAgICAgICAgIGFzc2VydEFuZFJlc29sdmVS
ZXF1ZXN0KHJlcXVlc3RzWzFdLCAnR0VUJywgJy9qc29uL2J1aWxkZXJzL3NvbWUlMjBidWlsZGVy
L3BlbmRpbmdCdWlsZHMnLCBbXSk7Ci0gICAgICAgICAgICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVz
dChyZXF1ZXN0c1syXSwgJ0dFVCcsICcvanNvbi9idWlsZGVycy9vdGhlciUyMGJ1aWxkZXIvcGVu
ZGluZ0J1aWxkcycsIFtdKTsKKyAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXF1ZXN0cy5sZW5n
dGgsIDUpOworICAgICAgICAgICAgYXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNbMl0s
ICdHRVQnLCAnL2pzb24vYnVpbGRlcnMvc29tZSUyMHRlc3Rlci9wZW5kaW5nQnVpbGRzJywgW10p
OworICAgICAgICAgICAgYXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNbM10sICdHRVQn
LCAnL2pzb24vYnVpbGRlcnMvc29tZSUyMGJ1aWxkZXIvcGVuZGluZ0J1aWxkcycsIFtdKTsKKyAg
ICAgICAgICAgIGFzc2VydEFuZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3RzWzRdLCAnR0VUJywgJy9q
c29uL2J1aWxkZXJzL290aGVyJTIwYnVpbGRlci9wZW5kaW5nQnVpbGRzJywgW10pOwogICAgICAg
ICAgICAgcmV0dXJuIE1vY2tSZW1vdGVBUEkud2FpdEZvclJlcXVlc3QoKTsKICAgICAgICAgfSku
dGhlbigoKSA9PiB7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVxdWVzdHMubGVuZ3RoLCA2
KTsKLSAgICAgICAgICAgIGFzc2VydEFuZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3RzWzNdLCAnR0VU
JywgJy9qc29uL2J1aWxkZXJzL3NvbWUlMjB0ZXN0ZXIvYnVpbGRzLz9zZWxlY3Q9LTEmc2VsZWN0
PS0yJywge30pOwotICAgICAgICAgICAgYXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNb
NF0sICdHRVQnLCAnL2pzb24vYnVpbGRlcnMvc29tZSUyMGJ1aWxkZXIvYnVpbGRzLz9zZWxlY3Q9
LTEmc2VsZWN0PS0yJywge30pOwotICAgICAgICAgICAgYXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3Qo
cmVxdWVzdHNbNV0sICdHRVQnLCAnL2pzb24vYnVpbGRlcnMvb3RoZXIlMjBidWlsZGVyL2J1aWxk
cy8/c2VsZWN0PS0xJnNlbGVjdD0tMicsIHt9KTsKKyAgICAgICAgICAgIGFzc2VydC5lcXVhbChy
ZXF1ZXN0cy5sZW5ndGgsIDgpOworICAgICAgICAgICAgYXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3Qo
cmVxdWVzdHNbNV0sICdHRVQnLCAnL2pzb24vYnVpbGRlcnMvc29tZSUyMHRlc3Rlci9idWlsZHMv
P3NlbGVjdD0tMSZzZWxlY3Q9LTInLCB7fSk7CisgICAgICAgICAgICBhc3NlcnRBbmRSZXNvbHZl
UmVxdWVzdChyZXF1ZXN0c1s2XSwgJ0dFVCcsICcvanNvbi9idWlsZGVycy9zb21lJTIwYnVpbGRl
ci9idWlsZHMvP3NlbGVjdD0tMSZzZWxlY3Q9LTInLCB7fSk7CisgICAgICAgICAgICBhc3NlcnRB
bmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1s3XSwgJ0dFVCcsICcvanNvbi9idWlsZGVycy9vdGhl
ciUyMGJ1aWxkZXIvYnVpbGRzLz9zZWxlY3Q9LTEmc2VsZWN0PS0yJywge30pOwogICAgICAgICAg
ICAgcmV0dXJuIE1vY2tSZW1vdGVBUEkud2FpdEZvclJlcXVlc3QoKTsKICAgICAgICAgfSkudGhl
bigoKSA9PiB7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVxdWVzdHMubGVuZ3RoLCA3KTsK
LSAgICAgICAgICAgIGFzc2VydEFuZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3RzWzZdLCAnUE9TVCcs
ICcvYnVpbGRlcnMvc29tZSUyMGJ1aWxkZXIvZm9yY2UnLCAnT0snKTsKLSAgICAgICAgICAgIGFz
c2VydC5kZWVwRXF1YWwocmVxdWVzdHNbNl0uZGF0YSwgeyd3ayc6ICcxOTE2MjInLCAnYnVpbGQt
cmVxdWVzdC1pZCc6ICcxJywgJ2ZvcmNlc2NoZWR1bGVyJzogJ2ZvcmNlLWFiLWJ1aWxkcycsICdv
d25lZC1jb21taXRzJzogYHsiV2ViS2l0IjpbeyJyZXZpc2lvbiI6Im93bmVkLWpzYy02MTYxIiwi
cmVwb3NpdG9yeSI6IkphdmFTY3JpcHRDb3JlIiwib3duZXJSZXZpc2lvbiI6IjE5MTYyMiJ9XX1g
fSk7CisgICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVxdWVzdHMubGVuZ3RoLCA5KTsKKyAgICAg
ICAgICAgIGFzc2VydEFuZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3RzWzhdLCAnUE9TVCcsICcvYnVp
bGRlcnMvc29tZSUyMGJ1aWxkZXIvZm9yY2UnLCAnT0snKTsKKyAgICAgICAgICAgIGFzc2VydC5k
ZWVwRXF1YWwocmVxdWVzdHNbOF0uZGF0YSwgeyd3ayc6ICcxOTE2MjInLCAnYnVpbGQtcmVxdWVz
dC1pZCc6ICcxJywgJ2ZvcmNlc2NoZWR1bGVyJzogJ2ZvcmNlLWFiLWJ1aWxkcycsICdvd25lZC1j
b21taXRzJzogYHsiV2ViS2l0IjpbeyJyZXZpc2lvbiI6Im93bmVkLWpzYy02MTYxIiwicmVwb3Np
dG9yeSI6IkphdmFTY3JpcHRDb3JlIiwib3duZXJSZXZpc2lvbiI6IjE5MTYyMiJ9XX1gfSk7CiAg
ICAgICAgICAgICByZXR1cm4gTW9ja1JlbW90ZUFQSS53YWl0Rm9yUmVxdWVzdCgpOwogICAgICAg
ICB9KS50aGVuKCgpID0+IHsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXF1ZXN0cy5sZW5n
dGgsIDEwKTsKLSAgICAgICAgICAgIGFzc2VydEFuZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3RzWzdd
LCAnR0VUJywgJy9qc29uL2J1aWxkZXJzL3NvbWUlMjB0ZXN0ZXIvcGVuZGluZ0J1aWxkcycsIFtd
KTsKLSAgICAgICAgICAgIGFzc2VydEFuZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3RzWzhdLCAnR0VU
JywgJy9qc29uL2J1aWxkZXJzL3NvbWUlMjBidWlsZGVyL3BlbmRpbmdCdWlsZHMnLAorICAgICAg
ICAgICAgYXNzZXJ0LmVxdWFsKHJlcXVlc3RzLmxlbmd0aCwgMTIpOworICAgICAgICAgICAgYXNz
ZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNbOV0sICdHRVQnLCAnL2pzb24vYnVpbGRlcnMv
c29tZSUyMHRlc3Rlci9wZW5kaW5nQnVpbGRzJywgW10pOworICAgICAgICAgICAgYXNzZXJ0QW5k
UmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNbMTBdLCAnR0VUJywgJy9qc29uL2J1aWxkZXJzL3NvbWUl
MjBidWlsZGVyL3BlbmRpbmdCdWlsZHMnLAogICAgICAgICAgICAgICAgIFtNb2NrRGF0YS5wZW5k
aW5nQnVpbGQoe2J1aWxkZXI6ICdzb21lIGJ1aWxkZXInLCBidWlsZFJlcXVlc3RJZDogMX0pXSk7
Ci0gICAgICAgICAgICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1s5XSwgJ0dFVCcs
ICcvanNvbi9idWlsZGVycy9vdGhlciUyMGJ1aWxkZXIvcGVuZGluZ0J1aWxkcycsIFtdKTsKKyAg
ICAgICAgICAgIGFzc2VydEFuZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3RzWzExXSwgJ0dFVCcsICcv
anNvbi9idWlsZGVycy9vdGhlciUyMGJ1aWxkZXIvcGVuZGluZ0J1aWxkcycsIFtdKTsKICAgICAg
ICAgICAgIHJldHVybiBNb2NrUmVtb3RlQVBJLndhaXRGb3JSZXF1ZXN0KCk7CiAgICAgICAgIH0p
LnRoZW4oKCkgPT4gewotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlcXVlc3RzLmxlbmd0aCwg
MTMpOwotICAgICAgICAgICAgYXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNbMTBdLCAn
R0VUJywgJy9qc29uL2J1aWxkZXJzL3NvbWUlMjB0ZXN0ZXIvYnVpbGRzLz9zZWxlY3Q9LTEmc2Vs
ZWN0PS0yJywge30pOwotICAgICAgICAgICAgYXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVz
dHNbMTFdLCAnR0VUJywgJy9qc29uL2J1aWxkZXJzL3NvbWUlMjBidWlsZGVyL2J1aWxkcy8/c2Vs
ZWN0PS0xJnNlbGVjdD0tMicsIHsKKyAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXF1ZXN0cy5s
ZW5ndGgsIDE1KTsKKyAgICAgICAgICAgIGFzc2VydEFuZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3Rz
WzEyXSwgJ0dFVCcsICcvanNvbi9idWlsZGVycy9zb21lJTIwdGVzdGVyL2J1aWxkcy8/c2VsZWN0
PS0xJnNlbGVjdD0tMicsIHt9KTsKKyAgICAgICAgICAgIGFzc2VydEFuZFJlc29sdmVSZXF1ZXN0
KHJlcXVlc3RzWzEzXSwgJ0dFVCcsICcvanNvbi9idWlsZGVycy9zb21lJTIwYnVpbGRlci9idWls
ZHMvP3NlbGVjdD0tMSZzZWxlY3Q9LTInLCB7CiAgICAgICAgICAgICAgICAgWy0xXTogTW9ja0Rh
dGEucnVubmluZ0J1aWxkKHtidWlsZGVyOiAnc29tZSBidWlsZGVyJywgYnVpbGRSZXF1ZXN0SWQ6
IDF9KQogICAgICAgICAgICAgfSk7Ci0gICAgICAgICAgICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVz
dChyZXF1ZXN0c1sxMl0sICdHRVQnLCAnL2pzb24vYnVpbGRlcnMvb3RoZXIlMjBidWlsZGVyL2J1
aWxkcy8/c2VsZWN0PS0xJnNlbGVjdD0tMicsIHt9KTsKKyAgICAgICAgICAgIGFzc2VydEFuZFJl
c29sdmVSZXF1ZXN0KHJlcXVlc3RzWzE0XSwgJ0dFVCcsICcvanNvbi9idWlsZGVycy9vdGhlciUy
MGJ1aWxkZXIvYnVpbGRzLz9zZWxlY3Q9LTEmc2VsZWN0PS0yJywge30pOwogICAgICAgICAgICAg
cmV0dXJuIHN5bmNQcm9taXNlOwogICAgICAgICB9KS50aGVuKCgpID0+IHsKICAgICAgICAgICAg
IHJldHVybiBUZXN0R3JvdXAuZmV0Y2hGb3JUYXNrKHRhc2tJZCwgdHJ1ZSk7CkBAIC0xNjI3LDQw
ICsxNjQyLDQxIEBAIGRlc2NyaWJlKCdzeW5jLWJ1aWxkYm90JywgZnVuY3Rpb24gKCkgewogCiAg
ICAgICAgICAgICBNb2NrUmVtb3RlQVBJLnJlc2V0KCk7CiAgICAgICAgICAgICBzeW5jUHJvbWlz
ZSA9IHRyaWdnZXJhYmxlLmluaXRTeW5jZXJzKCkudGhlbigoKSA9PiB0cmlnZ2VyYWJsZS5zeW5j
T25jZSgpKTsKKyAgICAgICAgICAgIGFzc2VydEFuZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3RzWzBd
LCAnR0VUJywgTW9ja0RhdGEuYnVpbGRib3QwOEJ1aWxkZXJzVVJMKCksIE1vY2tEYXRhLm1vY2tC
dWlsZGJvdDA4QnVpbGRlcnMoKSk7CiAgICAgICAgICAgICByZXR1cm4gTW9ja1JlbW90ZUFQSS53
YWl0Rm9yUmVxdWVzdCgpOwogICAgICAgICB9KS50aGVuKCgpID0+IHsKLSAgICAgICAgICAgIGFz
c2VydC5lcXVhbChyZXF1ZXN0cy5sZW5ndGgsIDMpOwotICAgICAgICAgICAgYXNzZXJ0QW5kUmVz
b2x2ZVJlcXVlc3QocmVxdWVzdHNbMF0sICdHRVQnLCAnL2pzb24vYnVpbGRlcnMvc29tZSUyMHRl
c3Rlci9wZW5kaW5nQnVpbGRzJywgW10pOwotICAgICAgICAgICAgYXNzZXJ0QW5kUmVzb2x2ZVJl
cXVlc3QocmVxdWVzdHNbMV0sICdHRVQnLCAnL2pzb24vYnVpbGRlcnMvc29tZSUyMGJ1aWxkZXIv
cGVuZGluZ0J1aWxkcycsIFtdKTsKLSAgICAgICAgICAgIGFzc2VydEFuZFJlc29sdmVSZXF1ZXN0
KHJlcXVlc3RzWzJdLCAnR0VUJywgJy9qc29uL2J1aWxkZXJzL290aGVyJTIwYnVpbGRlci9wZW5k
aW5nQnVpbGRzJywgW10pOworICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlcXVlc3RzLmxlbmd0
aCwgNCk7CisgICAgICAgICAgICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1sxXSwg
J0dFVCcsICcvanNvbi9idWlsZGVycy9zb21lJTIwdGVzdGVyL3BlbmRpbmdCdWlsZHMnLCBbXSk7
CisgICAgICAgICAgICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1syXSwgJ0dFVCcs
ICcvanNvbi9idWlsZGVycy9zb21lJTIwYnVpbGRlci9wZW5kaW5nQnVpbGRzJywgW10pOworICAg
ICAgICAgICAgYXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNbM10sICdHRVQnLCAnL2pz
b24vYnVpbGRlcnMvb3RoZXIlMjBidWlsZGVyL3BlbmRpbmdCdWlsZHMnLCBbXSk7CiAgICAgICAg
ICAgICByZXR1cm4gTW9ja1JlbW90ZUFQSS53YWl0Rm9yUmVxdWVzdCgpOwogICAgICAgICB9KS50
aGVuKCgpID0+IHsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXF1ZXN0cy5sZW5ndGgsIDYp
OwotICAgICAgICAgICAgYXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNbM10sICdHRVQn
LCAnL2pzb24vYnVpbGRlcnMvc29tZSUyMHRlc3Rlci9idWlsZHMvP3NlbGVjdD0tMSZzZWxlY3Q9
LTInLCB7fSk7Ci0gICAgICAgICAgICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1s0
XSwgJ0dFVCcsICcvanNvbi9idWlsZGVycy9zb21lJTIwYnVpbGRlci9idWlsZHMvP3NlbGVjdD0t
MSZzZWxlY3Q9LTInLCB7CisgICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVxdWVzdHMubGVuZ3Ro
LCA3KTsKKyAgICAgICAgICAgIGFzc2VydEFuZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3RzWzRdLCAn
R0VUJywgJy9qc29uL2J1aWxkZXJzL3NvbWUlMjB0ZXN0ZXIvYnVpbGRzLz9zZWxlY3Q9LTEmc2Vs
ZWN0PS0yJywge30pOworICAgICAgICAgICAgYXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVz
dHNbNV0sICdHRVQnLCAnL2pzb24vYnVpbGRlcnMvc29tZSUyMGJ1aWxkZXIvYnVpbGRzLz9zZWxl
Y3Q9LTEmc2VsZWN0PS0yJywgewogICAgICAgICAgICAgICAgIFstMV06IE1vY2tEYXRhLmZpbmlz
aGVkQnVpbGQoe2J1aWxkZXI6ICdzb21lIGJ1aWxkZXInLCBidWlsZFJlcXVlc3RJZDogMX0pCiAg
ICAgICAgICAgICB9KTsKLSAgICAgICAgICAgIGFzc2VydEFuZFJlc29sdmVSZXF1ZXN0KHJlcXVl
c3RzWzVdLCAnR0VUJywgJy9qc29uL2J1aWxkZXJzL290aGVyJTIwYnVpbGRlci9idWlsZHMvP3Nl
bGVjdD0tMSZzZWxlY3Q9LTInLCB7fSk7CisgICAgICAgICAgICBhc3NlcnRBbmRSZXNvbHZlUmVx
dWVzdChyZXF1ZXN0c1s2XSwgJ0dFVCcsICcvanNvbi9idWlsZGVycy9vdGhlciUyMGJ1aWxkZXIv
YnVpbGRzLz9zZWxlY3Q9LTEmc2VsZWN0PS0yJywge30pOwogICAgICAgICAgICAgcmV0dXJuIE1v
Y2tSZW1vdGVBUEkud2FpdEZvclJlcXVlc3QoKTsKICAgICAgICAgfSkudGhlbigoKSA9PiB7Ci0g
ICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVxdWVzdHMubGVuZ3RoLCA3KTsKLSAgICAgICAgICAg
IGFzc2VydEFuZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3RzWzZdLCAnUE9TVCcsICcvYnVpbGRlcnMv
c29tZSUyMGJ1aWxkZXIvZm9yY2UnLCAnT0snKTsKLSAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1
YWwocmVxdWVzdHNbNl0uZGF0YSwgeyd3ayc6ICcxOTI3MzYnLCAnYnVpbGQtcmVxdWVzdC1pZCc6
ICcyJywgJ2ZvcmNlc2NoZWR1bGVyJzogJ2ZvcmNlLWFiLWJ1aWxkcycsICdvd25lZC1jb21taXRz
JzogYHsiV2ViS2l0IjpbeyJyZXZpc2lvbiI6Im93bmVkLWpzYy05MTkxIiwicmVwb3NpdG9yeSI6
IkphdmFTY3JpcHRDb3JlIiwib3duZXJSZXZpc2lvbiI6IjE5MjczNiJ9XX1gfSk7CisgICAgICAg
ICAgICBhc3NlcnQuZXF1YWwocmVxdWVzdHMubGVuZ3RoLCA4KTsKKyAgICAgICAgICAgIGFzc2Vy
dEFuZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3RzWzddLCAnUE9TVCcsICcvYnVpbGRlcnMvc29tZSUy
MGJ1aWxkZXIvZm9yY2UnLCAnT0snKTsKKyAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwocmVx
dWVzdHNbN10uZGF0YSwgeyd3ayc6ICcxOTI3MzYnLCAnYnVpbGQtcmVxdWVzdC1pZCc6ICcyJywg
J2ZvcmNlc2NoZWR1bGVyJzogJ2ZvcmNlLWFiLWJ1aWxkcycsICdvd25lZC1jb21taXRzJzogYHsi
V2ViS2l0IjpbeyJyZXZpc2lvbiI6Im93bmVkLWpzYy05MTkxIiwicmVwb3NpdG9yeSI6IkphdmFT
Y3JpcHRDb3JlIiwib3duZXJSZXZpc2lvbiI6IjE5MjczNiJ9XX1gfSk7CiAgICAgICAgICAgICBy
ZXR1cm4gTW9ja1JlbW90ZUFQSS53YWl0Rm9yUmVxdWVzdCgpOwogICAgICAgICB9KS50aGVuKCgp
ID0+IHsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXF1ZXN0cy5sZW5ndGgsIDEwKTsKLSAg
ICAgICAgICAgIGFzc2VydEFuZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3RzWzddLCAnR0VUJywgJy9q
c29uL2J1aWxkZXJzL3NvbWUlMjB0ZXN0ZXIvcGVuZGluZ0J1aWxkcycsIFtdKTsKLSAgICAgICAg
ICAgIGFzc2VydEFuZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3RzWzhdLCAnR0VUJywgJy9qc29uL2J1
aWxkZXJzL3NvbWUlMjBidWlsZGVyL3BlbmRpbmdCdWlsZHMnLCBbXSk7Ci0gICAgICAgICAgICBh
c3NlcnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1s5XSwgJ0dFVCcsICcvanNvbi9idWlsZGVy
cy9vdGhlciUyMGJ1aWxkZXIvcGVuZGluZ0J1aWxkcycsIFtdKTsKKyAgICAgICAgICAgIGFzc2Vy
dC5lcXVhbChyZXF1ZXN0cy5sZW5ndGgsIDExKTsKKyAgICAgICAgICAgIGFzc2VydEFuZFJlc29s
dmVSZXF1ZXN0KHJlcXVlc3RzWzhdLCAnR0VUJywgJy9qc29uL2J1aWxkZXJzL3NvbWUlMjB0ZXN0
ZXIvcGVuZGluZ0J1aWxkcycsIFtdKTsKKyAgICAgICAgICAgIGFzc2VydEFuZFJlc29sdmVSZXF1
ZXN0KHJlcXVlc3RzWzldLCAnR0VUJywgJy9qc29uL2J1aWxkZXJzL3NvbWUlMjBidWlsZGVyL3Bl
bmRpbmdCdWlsZHMnLCBbXSk7CisgICAgICAgICAgICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVzdChy
ZXF1ZXN0c1sxMF0sICdHRVQnLCAnL2pzb24vYnVpbGRlcnMvb3RoZXIlMjBidWlsZGVyL3BlbmRp
bmdCdWlsZHMnLCBbXSk7CiAgICAgICAgICAgICByZXR1cm4gTW9ja1JlbW90ZUFQSS53YWl0Rm9y
UmVxdWVzdCgpOwogICAgICAgICB9KS50aGVuKCgpID0+IHsKLSAgICAgICAgICAgIGFzc2VydC5l
cXVhbChyZXF1ZXN0cy5sZW5ndGgsIDEzKTsKLSAgICAgICAgICAgIGFzc2VydEFuZFJlc29sdmVS
ZXF1ZXN0KHJlcXVlc3RzWzEwXSwgJ0dFVCcsICcvanNvbi9idWlsZGVycy9zb21lJTIwdGVzdGVy
L2J1aWxkcy8/c2VsZWN0PS0xJnNlbGVjdD0tMicsIHt9KTsKLSAgICAgICAgICAgIGFzc2VydEFu
ZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3RzWzExXSwgJ0dFVCcsICcvanNvbi9idWlsZGVycy9zb21l
JTIwYnVpbGRlci9idWlsZHMvP3NlbGVjdD0tMSZzZWxlY3Q9LTInLCB7CisgICAgICAgICAgICBh
c3NlcnQuZXF1YWwocmVxdWVzdHMubGVuZ3RoLCAxNCk7CisgICAgICAgICAgICBhc3NlcnRBbmRS
ZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1sxMV0sICdHRVQnLCAnL2pzb24vYnVpbGRlcnMvc29tZSUy
MHRlc3Rlci9idWlsZHMvP3NlbGVjdD0tMSZzZWxlY3Q9LTInLCB7fSk7CisgICAgICAgICAgICBh
c3NlcnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1sxMl0sICdHRVQnLCAnL2pzb24vYnVpbGRl
cnMvc29tZSUyMGJ1aWxkZXIvYnVpbGRzLz9zZWxlY3Q9LTEmc2VsZWN0PS0yJywgewogICAgICAg
ICAgICAgICAgIFstMV06IE1vY2tEYXRhLnJ1bm5pbmdCdWlsZCh7YnVpbGRlcjogJ3NvbWUgYnVp
bGRlcicsIGJ1aWxkUmVxdWVzdElkOiAyfSksCiAgICAgICAgICAgICAgICAgWy0yXTogTW9ja0Rh
dGEuZmluaXNoZWRCdWlsZCh7YnVpbGRlcjogJ3NvbWUgYnVpbGRlcicsIGJ1aWxkUmVxdWVzdElk
OiAxfSksCiAgICAgICAgICAgICB9KTsKLSAgICAgICAgICAgIGFzc2VydEFuZFJlc29sdmVSZXF1
ZXN0KHJlcXVlc3RzWzEyXSwgJ0dFVCcsICcvanNvbi9idWlsZGVycy9vdGhlciUyMGJ1aWxkZXIv
YnVpbGRzLz9zZWxlY3Q9LTEmc2VsZWN0PS0yJywge30pOworICAgICAgICAgICAgYXNzZXJ0QW5k
UmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNbMTNdLCAnR0VUJywgJy9qc29uL2J1aWxkZXJzL290aGVy
JTIwYnVpbGRlci9idWlsZHMvP3NlbGVjdD0tMSZzZWxlY3Q9LTInLCB7fSk7CiAgICAgICAgICAg
ICByZXR1cm4gc3luY1Byb21pc2U7CiAgICAgICAgIH0pLnRoZW4oKCkgPT4gewogICAgICAgICAg
ICAgcmV0dXJuIFRlc3RHcm91cC5mZXRjaEZvclRhc2sodGFza0lkLCB0cnVlKTsKSW5kZXg6IFdl
YnNpdGVzL3BlcmYud2Via2l0Lm9yZy9zZXJ2ZXItdGVzdHMvcmVzb3VyY2VzL21vY2stZGF0YS5q
cwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBXZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvc2VydmVyLXRlc3RzL3Jl
c291cmNlcy9tb2NrLWRhdGEuanMJKHJldmlzaW9uIDIyNDcwOCkKKysrIFdlYnNpdGVzL3BlcmYu
d2Via2l0Lm9yZy9zZXJ2ZXItdGVzdHMvcmVzb3VyY2VzL21vY2stZGF0YS5qcwkod29ya2luZyBj
b3B5KQpAQCAtMTcsNiArMTcsOCBAQCBNb2NrRGF0YSA9IHsKICAgICBqc2NSZXBvc2l0b3J5SWQo
KSB7IHJldHVybiAyMjI7IH0sCiAgICAgZ2l0V2Via2l0UmVwb3NpdG9yeUlkKCkgeyByZXR1cm4g
MTExOyB9LAogICAgIHNoYXJlZFJlcG9zaXRvcnlJZCgpIHsgcmV0dXJuIDE0OyB9LAorICAgIGJ1
aWxkYm90MDhCdWlsZGVyc1VSTCgpIHtyZXR1cm4gJy9qc29uL2J1aWxkZXJzJ30sCisgICAgYnVp
bGRib3QwOUJ1aWxkZXJzVVJMKCkge3JldHVybiAnL2FwaS92Mi9idWlsZGVycyd9LAogICAgIGFk
ZE1vY2tDb25maWd1cmF0aW9uOiBmdW5jdGlvbiAoZGIpCiAgICAgewogICAgICAgICByZXR1cm4g
UHJvbWlzZS5hbGwoWwpAQCAtMjIwLDYgKzIyMiw2MCBAQCBNb2NrRGF0YSA9IHsKICAgICAgICAg
ICAgIF0KICAgICAgICAgfQogICAgIH0sCisgICAgbW9ja0J1aWxkYm90MDhCdWlsZGVyczogZnVu
Y3Rpb24gKCkKKyAgICB7CisgICAgICAgIHJldHVybiB7CisgICAgICAgICAgICAic29tZSBidWls
ZGVyIjogeworICAgICAgICAgICAgICAgICJzbGF2ZXMiOiBbICJzb21lLXNsYXZlLTEiIF0KKyAg
ICAgICAgICAgIH0sCisgICAgICAgICAgICAic29tZS1idWlsZGVyLTEiOiB7CisgICAgICAgICAg
ICAgICAgInNsYXZlcyI6IFsgInNvbWUtc2xhdmUtMiIgXQorICAgICAgICAgICAgfSwKKyAgICAg
ICAgICAgICJzb21lIGJ1aWxkZXIgMiI6IHsKKyAgICAgICAgICAgICAgICAic2xhdmVzIjogWyAi
c29tZS1zbGF2ZS0zIiBdCisgICAgICAgICAgICB9LAorICAgICAgICAgICAgIm90aGVyIGJ1aWxk
ZXIiOiB7CisgICAgICAgICAgICAgICAgInNsYXZlcyI6IFsgInNvbWUtc2xhdmUtNCIgXQorICAg
ICAgICAgICAgfSwKKyAgICAgICAgICAgICJzb21lIHRlc3RlciI6IHsKKyAgICAgICAgICAgICAg
ICAic2xhdmVzIjogWyAic29tZS1zbGF2ZS01IiBdCisgICAgICAgICAgICB9LAorICAgICAgICAg
ICAgImFub3RoZXIgdGVzdGVyIjogeworICAgICAgICAgICAgICAgICJzbGF2ZXMiOiBbICJzb21l
LXNsYXZlLTYiIF0KKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgIH0sCisgICAgbW9ja0J1
aWxkYm90MDlCdWlsZGVyczogZnVuY3Rpb24gKCkKKyAgICB7CisgICAgICAgIHJldHVybiB7Cisg
ICAgICAgICAgICAiYnVpbGRlcnMiOiBbCisgICAgICAgICAgICAgICAgeworICAgICAgICAgICAg
ICAgICAgICAiYnVpbGRlcmlkIjogMSwKKyAgICAgICAgICAgICAgICAgICAgIm5hbWUiOiAic29t
ZSBidWlsZGVyIiwKKyAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgICAgIHsKKyAgICAg
ICAgICAgICAgICAgICAgImJ1aWxkZXJpZCI6IDIsCisgICAgICAgICAgICAgICAgICAgICJuYW1l
IjogInNvbWUtYnVpbGRlci0xIiwKKyAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgICAg
IHsKKyAgICAgICAgICAgICAgICAgICAgImJ1aWxkZXJpZCI6IDMsCisgICAgICAgICAgICAgICAg
ICAgICJuYW1lIjogInNvbWUgYnVpbGRlciAyIiwKKyAgICAgICAgICAgICAgICB9LAorICAgICAg
ICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAgICAgImJ1aWxkZXJpZCI6IDQsCisgICAgICAg
ICAgICAgICAgICAgICJuYW1lIjogIm90aGVyIGJ1aWxkZXIiLAorICAgICAgICAgICAgICAgIH0s
CisgICAgICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICAgICAiYnVpbGRlcmlkIjogNSwK
KyAgICAgICAgICAgICAgICAgICAgIm5hbWUiOiAic29tZSB0ZXN0ZXIiLAorICAgICAgICAgICAg
ICAgIH0sCisgICAgICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICAgICAiYnVpbGRlcmlk
IjogNiwKKyAgICAgICAgICAgICAgICAgICAgIm5hbWUiOiAiYW5vdGhlciB0ZXN0ZXIiLAorICAg
ICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfQorICAgIH0sCiAgICAgcGVu
ZGluZ0J1aWxkKG9wdGlvbnMpCiAgICAgewogICAgICAgICBvcHRpb25zID0gb3B0aW9ucyB8fCB7
fTsKSW5kZXg6IFdlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy90b29scy9qcy9idWlsZGJvdC1zeW5j
ZXIuanMKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL3Rvb2xzL2pzL2J1
aWxkYm90LXN5bmNlci5qcwkocmV2aXNpb24gMjI0NzA4KQorKysgV2Vic2l0ZXMvcGVyZi53ZWJr
aXQub3JnL3Rvb2xzL2pzL2J1aWxkYm90LXN5bmNlci5qcwkod29ya2luZyBjb3B5KQpAQCAtMzE3
LDggKzMxNyw5IEBAIGNsYXNzIEJ1aWxkYm90U3luY2VyIHsKICAgICAgICAgcmV0dXJuIHJldmlz
aW9uU2V0OwogICAgIH0KIAotICAgIHN0YXRpYyBfbG9hZENvbmZpZyhyZW1vdGUsIGNvbmZpZykK
KyAgICBzdGF0aWMgX2xvYWRDb25maWcocmVtb3RlLCBjb25maWcsIGJ1aWxkZXJOYW1lVG9JRE1h
cCkKICAgICB7CisgICAgICAgIGFzc2VydChidWlsZGVyTmFtZVRvSURNYXApOwogICAgICAgICBj
b25zdCB0eXBlcyA9IGNvbmZpZ1sndHlwZXMnXSB8fCB7fTsKICAgICAgICAgY29uc3QgYnVpbGRl
cnMgPSBjb25maWdbJ2J1aWxkZXJzJ10gfHwge307CiAKQEAgLTM0OCw3ICszNDksNyBAQCBjbGFz
cyBCdWlsZGJvdFN5bmNlciB7CiAgICAgICAgIH0KIAogICAgICAgICBhc3NlcnQoQXJyYXkuaXNB
cnJheShjb25maWdbJ3Rlc3RDb25maWd1cmF0aW9ucyddKSwgYFRoZSB0ZXN0IGNvbmZpZ3VyYXRp
b24gbXVzdCBiZSBhbiBhcnJheWApOwotICAgICAgICB0aGlzLl9yZXNvbHZlQnVpbGRlcnNXaXRo
UGxhdGZvcm1zKCd0ZXN0JywgY29uZmlnWyd0ZXN0Q29uZmlndXJhdGlvbnMnXSwgYnVpbGRlcnMp
LmZvckVhY2goKGVudHJ5LCBjb25maWd1cmF0aW9uSW5kZXgpID0+IHsKKyAgICAgICAgdGhpcy5f
cmVzb2x2ZUJ1aWxkZXJzV2l0aFBsYXRmb3JtcygndGVzdCcsIGNvbmZpZ1sndGVzdENvbmZpZ3Vy
YXRpb25zJ10sIGJ1aWxkZXJzLCBidWlsZGVyTmFtZVRvSURNYXApLmZvckVhY2goKGVudHJ5LCBj
b25maWd1cmF0aW9uSW5kZXgpID0+IHsKICAgICAgICAgICAgIGFzc2VydChBcnJheS5pc0FycmF5
KGVudHJ5Wyd0eXBlcyddKSwgYFRoZSB0ZXN0IGNvbmZpZ3VyYXRpb24gJHtjb25maWd1cmF0aW9u
SW5kZXh9IGRvZXMgbm90IHNwZWNpZnkgInR5cGVzIiBhcyBhbiBhcnJheWApOwogICAgICAgICAg
ICAgZm9yIChjb25zdCB0eXBlIG9mIGVudHJ5Wyd0eXBlcyddKSB7CiAgICAgICAgICAgICAgICAg
Y29uc3QgdHlwZUNvbmZpZyA9IHRoaXMuX3ZhbGlkYXRlQW5kTWVyZ2VDb25maWcoe30sIGVudHJ5
LmJ1aWxkZXJDb25maWcpOwpAQCAtMzY2LDcgKzM2Nyw3IEBAIGNsYXNzIEJ1aWxkYm90U3luY2Vy
IHsKICAgICAgICAgY29uc3QgYnVpbGRDb25maWd1cmF0aW9ucyA9IGNvbmZpZ1snYnVpbGRDb25m
aWd1cmF0aW9ucyddOwogICAgICAgICBpZiAoYnVpbGRDb25maWd1cmF0aW9ucykgewogICAgICAg
ICAgICAgYXNzZXJ0KEFycmF5LmlzQXJyYXkoYnVpbGRDb25maWd1cmF0aW9ucyksIGBUaGUgdGVz
dCBjb25maWd1cmF0aW9uIG11c3QgYmUgYW4gYXJyYXlgKTsKLSAgICAgICAgICAgIHRoaXMuX3Jl
c29sdmVCdWlsZGVyc1dpdGhQbGF0Zm9ybXMoJ3Rlc3QnLCBidWlsZENvbmZpZ3VyYXRpb25zLCBi
dWlsZGVycykuZm9yRWFjaCgoZW50cnksIGNvbmZpZ3VyYXRpb25JbmRleCkgPT4geworICAgICAg
ICAgICAgdGhpcy5fcmVzb2x2ZUJ1aWxkZXJzV2l0aFBsYXRmb3JtcygndGVzdCcsIGJ1aWxkQ29u
ZmlndXJhdGlvbnMsIGJ1aWxkZXJzLCBidWlsZGVyTmFtZVRvSURNYXApLmZvckVhY2goKGVudHJ5
LCBjb25maWd1cmF0aW9uSW5kZXgpID0+IHsKICAgICAgICAgICAgICAgICBjb25zdCBzeW5jZXIg
PSBlbnN1cmVCdWlsZGJvdFN5bmNlcihlbnRyeS5idWlsZGVyQ29uZmlnKTsKICAgICAgICAgICAg
ICAgICBhc3NlcnQoIXN5bmNlci5pc1Rlc3RlcigpLCBgVGhlIGJ1aWxkIGNvbmZpZ3VyYXRpb24g
JHtjb25maWd1cmF0aW9uSW5kZXh9IHVzZXMgYSB0ZXN0ZXI6ICR7c3luY2VyLmJ1aWxkZXJOYW1l
KCl9YCk7CiAgICAgICAgICAgICAgICAgc3luY2VyLmFkZEJ1aWxkQ29uZmlndXJhdGlvbihlbnRy
eS5wbGF0Zm9ybSwgZW50cnkuYnVpbGRlckNvbmZpZy5wcm9wZXJ0aWVzKTsKQEAgLTM3Niw3ICsz
NzcsNyBAQCBjbGFzcyBCdWlsZGJvdFN5bmNlciB7CiAgICAgICAgIHJldHVybiBBcnJheS5mcm9t
KHN5bmNlckJ5QnVpbGRlci52YWx1ZXMoKSk7CiAgICAgfQogCi0gICAgc3RhdGljIF9yZXNvbHZl
QnVpbGRlcnNXaXRoUGxhdGZvcm1zKGNvbmZpZ3VyYXRpb25UeXBlLCBjb25maWd1cmF0aW9uTGlz
dCwgYnVpbGRlcnMpCisgICAgc3RhdGljIF9yZXNvbHZlQnVpbGRlcnNXaXRoUGxhdGZvcm1zKGNv
bmZpZ3VyYXRpb25UeXBlLCBjb25maWd1cmF0aW9uTGlzdCwgYnVpbGRlcnMsIGJ1aWxkZXJOYW1l
VG9JRE1hcCkKICAgICB7CiAgICAgICAgIGNvbnN0IHJlc29sdmVkQ29uZmlndXJhdGlvbnMgPSBb
XTsKICAgICAgICAgbGV0IGNvbmZpZ3VyYXRpb25JbmRleCA9IDA7CkBAIC0zODgsNiArMzg5LDgg
QEAgY2xhc3MgQnVpbGRib3RTeW5jZXIgewogICAgICAgICAgICAgICAgIGNvbnN0IG1hdGNoaW5n
QnVpbGRlciA9IGJ1aWxkZXJzW2J1aWxkZXJLZXldOwogICAgICAgICAgICAgICAgIGFzc2VydCht
YXRjaGluZ0J1aWxkZXIsIGAiJHtidWlsZGVyS2V5fSIgaXMgbm90IGEgdmFsaWQgYnVpbGRlciBp
biB0aGUgY29uZmlndXJhdGlvbmApOwogICAgICAgICAgICAgICAgIGFzc2VydCgnYnVpbGRlcicg
aW4gbWF0Y2hpbmdCdWlsZGVyLCBgQnVpbGRlciAke2J1aWxkZXJLZXl9IGRvZXMgbm90IHNwZWNp
ZnkgYSBidWlsZGJvdCBidWlsZGVyIG5hbWVgKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQobWF0
Y2hpbmdCdWlsZGVyLmJ1aWxkZXIgaW4gYnVpbGRlck5hbWVUb0lETWFwLCBgQnVpbGRlciAke21h
dGNoaW5nQnVpbGRlci5idWlsZGVyfSBub3QgZm91bmQgaW4gQnVpbGRib3QgY29uZmlndXJhdGlv
bi5gKTsKKyAgICAgICAgICAgICAgICBtYXRjaGluZ0J1aWxkZXJbJ2J1aWxkZXJJRCddID0gYnVp
bGRlck5hbWVUb0lETWFwW21hdGNoaW5nQnVpbGRlci5idWlsZGVyXTsKICAgICAgICAgICAgICAg
ICBjb25zdCBidWlsZGVyQ29uZmlnID0gdGhpcy5fdmFsaWRhdGVBbmRNZXJnZUNvbmZpZyh7fSwg
bWF0Y2hpbmdCdWlsZGVyKTsKICAgICAgICAgICAgICAgICBmb3IgKGNvbnN0IHBsYXRmb3JtTmFt
ZSBvZiBlbnRyeVsncGxhdGZvcm1zJ10pIHsKICAgICAgICAgICAgICAgICAgICAgY29uc3QgcGxh
dGZvcm0gPSBQbGF0Zm9ybS5maW5kQnlOYW1lKHBsYXRmb3JtTmFtZSk7CkBAIC01NjUsNiArNTY4
LDEwIEBAIGNsYXNzIEJ1aWxkYm90U3luY2VyIHsKICAgICAgICAgICAgICAgICBhc3NlcnQuZXF1
YWwodHlwZW9mKHZhbHVlKSwgJ3N0cmluZycsIGAke25hbWV9IHNob3VsZCBiZSBvZiBzdHJpbmcg
dHlwZWApOwogICAgICAgICAgICAgICAgIGNvbmZpZ1tuYW1lXSA9IHZhbHVlOwogICAgICAgICAg
ICAgICAgIGJyZWFrOworICAgICAgICAgICAgY2FzZSAnYnVpbGRlcklEJzoKKyAgICAgICAgICAg
ICAgICBhc3NlcnQodmFsdWUsICdidWlsZGVySUQgc2hvdWxkIG5vdCBiZSB1bmRlZmluZWQuJyk7
CisgICAgICAgICAgICAgICAgY29uZmlnW25hbWVdID0gdmFsdWU7CisgICAgICAgICAgICAgICAg
YnJlYWs7CiAgICAgICAgICAgICBkZWZhdWx0OgogICAgICAgICAgICAgICAgIGFzc2VydChmYWxz
ZSwgYFVucmVjb2duaXplZCBwYXJhbWV0ZXIgIiR7bmFtZX0iYCk7CiAgICAgICAgICAgICB9Cklu
ZGV4OiBXZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvdG9vbHMvanMvYnVpbGRib3QtdHJpZ2dlcmFi
bGUuanMKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL3Rvb2xzL2pzL2J1
aWxkYm90LXRyaWdnZXJhYmxlLmpzCShyZXZpc2lvbiAyMjQ3MDgpCisrKyBXZWJzaXRlcy9wZXJm
LndlYmtpdC5vcmcvdG9vbHMvanMvYnVpbGRib3QtdHJpZ2dlcmFibGUuanMJKHdvcmtpbmcgY29w
eSkKQEAgLTI3LDExICsyNywzNCBAQCBjbGFzcyBCdWlsZGJvdFRyaWdnZXJhYmxlIHsKICAgICAg
ICAgdGhpcy5fbG9nZ2VyID0gbG9nZ2VyIHx8IHtsb2c6ICgpID0+IHsgfSwgZXJyb3I6ICgpID0+
IHsgfX07CiAgICAgfQogCisgICAgLy8gVGhpcyBtZXRob2QgaGFuZGxlcyBCdWlsZGJvdCAwLjkg
ZGF0YSBmb3JtYXQgCisgICAgZ2V0QnVpbGRlck5hbWVUb0lETWFwKCkgeworICAgICAgICByZXR1
cm4gdGhpcy5fYnVpbGRib3RSZW1vdGUuZ2V0SlNPTigiL2FwaS92Mi9idWlsZGVycyIpLnRoZW4o
KGNvbnRlbnQpID0+IHsKKyAgICAgICAgICAgIGFzc2VydChjb250ZW50LmJ1aWxkZXJzIGluc3Rh
bmNlb2YgQXJyYXkpOworCisgICAgICAgICAgICBjb25zdCBidWlsZGVyTmFtZVRvSURNYXAgPSB7
fTsgCisgICAgICAgICAgICBmb3IgKGNvbnN0IGJ1aWxkZXIgb2YgY29udGVudC5idWlsZGVycykK
KyAgICAgICAgICAgICAgICBidWlsZGVyTmFtZVRvSURNYXBbYnVpbGRlci5uYW1lXSA9IGJ1aWxk
ZXIuYnVpbGRlcmlkOworCisgICAgICAgICAgICByZXR1cm4gYnVpbGRlck5hbWVUb0lETWFwOwor
ICAgICAgICB9KTsKKyAgICB9CisKKyAgICAvLyBUaGlzIG1ldGhvZCBoYW5kbGVzIEJ1aWxkYm90
IDAuOCBkYXRhIGZvcm1hdCAKKyAgICBnZXRCdWlsZGVyTmFtZVRvSURNYXBEZXByZWNhdGVkKCkg
eworICAgICAgICByZXR1cm4gdGhpcy5fYnVpbGRib3RSZW1vdGUuZ2V0SlNPTigiL2pzb24vYnVp
bGRlcnMiKS50aGVuKChjb250ZW50KSA9PiB7CisgICAgICAgICAgICBjb25zdCBidWlsZGVyTmFt
ZVRvSURNYXAgPSB7fTsKKyAgICAgICAgICAgIGZvciAobGV0IGJ1aWxkZXIgaW4gY29udGVudCkg
eworICAgICAgICAgICAgICAgIGJ1aWxkZXJOYW1lVG9JRE1hcFtidWlsZGVyXSA9IGJ1aWxkZXI7
CisgICAgICAgICAgICB9CisgICAgICAgICAgICByZXR1cm4gYnVpbGRlck5hbWVUb0lETWFwOwor
ICAgICAgICB9KTsKKyAgICB9CisKICAgICBpbml0U3luY2VycygpCiAgICAgewotICAgICAgICBy
ZXR1cm4gbmV3IFByb21pc2UoKHJlc29sdmUsIHJlamVjdCkgPT4gewotICAgICAgICAgICAgdGhp
cy5fc3luY2VycyA9IEJ1aWxkYm90U3luY2VyLl9sb2FkQ29uZmlnKHRoaXMuX2J1aWxkYm90UmVt
b3RlLCB0aGlzLl9jb25maWcpOwotICAgICAgICAgICAgc2V0VGltZW91dChyZXNvbHZlLCAwKTsK
KyAgICAgICAgcmV0dXJuIHRoaXMuZ2V0QnVpbGRlck5hbWVUb0lETWFwRGVwcmVjYXRlZCgpLnRo
ZW4oKGJ1aWxkZXJOYW1lVG9JRE1hcCkgPT4geworICAgICAgICAgICAgdGhpcy5fc3luY2VycyA9
IEJ1aWxkYm90U3luY2VyLl9sb2FkQ29uZmlnKHRoaXMuX2J1aWxkYm90UmVtb3RlLCB0aGlzLl9j
b25maWcsIGJ1aWxkZXJOYW1lVG9JRE1hcCk7CiAgICAgICAgIH0pOwogICAgIH0KIApJbmRleDog
V2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL3VuaXQtdGVzdHMvYnVpbGRib3Qtc3luY2VyLXRlc3Rz
LmpzCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFdlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy91bml0LXRlc3RzL2J1
aWxkYm90LXN5bmNlci10ZXN0cy5qcwkocmV2aXNpb24gMjI0NzA4KQorKysgV2Vic2l0ZXMvcGVy
Zi53ZWJraXQub3JnL3VuaXQtdGVzdHMvYnVpbGRib3Qtc3luY2VyLXRlc3RzLmpzCSh3b3JraW5n
IGNvcHkpCkBAIC04NSwxNSArODUsMTUgQEAgZnVuY3Rpb24gc2FtcGxlaU9TQ29uZmlnV2l0aEV4
cGFuc2lvbnMoKQogICAgICAgICB9LAogICAgICAgICAiYnVpbGRlcnMiOiB7CiAgICAgICAgICAg
ICAiaXBob25lIjogewotICAgICAgICAgICAgICAgICJidWlsZGVyIjogImlQaG9uZSBBQiBUZXN0
cyIsCisgICAgICAgICAgICAgICAgImJ1aWxkZXIiOiAiaVBob25lLUFCLVRlc3RzIiwKICAgICAg
ICAgICAgICAgICAicHJvcGVydGllcyI6IHsiZm9yY2VzY2hlZHVsZXIiOiAiZm9yY2UtaXBob25l
LWFiLXRlc3RzIn0sCiAgICAgICAgICAgICB9LAogICAgICAgICAgICAgImlwaG9uZS0yIjogewot
ICAgICAgICAgICAgICAgICJidWlsZGVyIjogImlQaG9uZSAyIEFCIFRlc3RzIiwKKyAgICAgICAg
ICAgICAgICAiYnVpbGRlciI6ICJpUGhvbmUtMi1BQi1UZXN0cyIsCiAgICAgICAgICAgICAgICAg
InByb3BlcnRpZXMiOiB7ImZvcmNlc2NoZWR1bGVyIjogImZvcmNlLWlwaG9uZS0yLWFiLXRlc3Rz
In0sCiAgICAgICAgICAgICB9LAogICAgICAgICAgICAgImlwYWQiOiB7Ci0gICAgICAgICAgICAg
ICAgImJ1aWxkZXIiOiAiaVBhZCBBQiBUZXN0cyIsCisgICAgICAgICAgICAgICAgImJ1aWxkZXIi
OiAiaVBhZC1BQi1UZXN0cyIsCiAgICAgICAgICAgICAgICAgInByb3BlcnRpZXMiOiB7ImZvcmNl
c2NoZWR1bGVyIjogImZvcmNlLWlwYWQtYWItdGVzdHMifSwKICAgICAgICAgICAgIH0sCiAgICAg
ICAgIH0sCkBAIC0xNDMsNiArMTQzLDE5IEBAIGZ1bmN0aW9uIHNtYWxsQ29uZmlndXJhdGlvbigp
CiAgICAgfTsKIH0KIAorZnVuY3Rpb24gYnVpbGRlck5hbWVUb0lETWFwKCkKK3sKKyAgICByZXR1
cm4geworICAgICAgICAnc29tZSBidWlsZGVyJyA6ICcxMDAnLAorICAgICAgICAnQUJUZXN0LWlQ
aG9uZS1SdW5CZW5jaG1hcmstVGVzdHMnOiAnMTAxJywKKyAgICAgICAgJ0FCVGVzdC1pUGFkLVJ1
bkJlbmNobWFyay1UZXN0cyc6ICcxMDInLAorICAgICAgICAnQUJUZXN0LWlPUy1CdWlsZGVyJzog
JzEwMycsCisgICAgICAgICdpUGhvbmUtQUItVGVzdHMnIDogJzEwNCcsCisgICAgICAgICdpUGhv
bmUtMi1BQi1UZXN0cyc6ICcxMDUnLAorICAgICAgICAnaVBhZC1BQi1UZXN0cyc6ICcxMDYnCisg
ICAgfSAgICAKK30KKwogZnVuY3Rpb24gc21hbGxQZW5kaW5nQnVpbGQoKQogewogICAgIHJldHVy
biB7CkBAIC00NzcsMzkgKzQ5MCwzOSBAQCBkZXNjcmliZSgnQnVpbGRib3RTeW5jZXInLCAoKSA9
PiB7CiAgICAgZGVzY3JpYmUoJ19sb2FkQ29uZmlnJywgKCkgPT4gewogCiAgICAgICAgIGl0KCdz
aG91bGQgY3JlYXRlIEJ1aWxkYm90U3luY2VyIG9iamVjdHMgZm9yIGEgY29uZmlndXJhdGlvbiB0
aGF0IHNwZWNpZnkgYWxsIHJlcXVpcmVkIG9wdGlvbnMnLCAoKSA9PiB7Ci0gICAgICAgICAgICBh
c3NlcnQuZXF1YWwoQnVpbGRib3RTeW5jZXIuX2xvYWRDb25maWcoTW9ja1JlbW90ZUFQSSwgc21h
bGxDb25maWd1cmF0aW9uKCkpLmxlbmd0aCwgMSk7CisgICAgICAgICAgICBhc3NlcnQuZXF1YWwo
QnVpbGRib3RTeW5jZXIuX2xvYWRDb25maWcoTW9ja1JlbW90ZUFQSSwgc21hbGxDb25maWd1cmF0
aW9uKCksIGJ1aWxkZXJOYW1lVG9JRE1hcCgpKS5sZW5ndGgsIDEpOwogICAgICAgICB9KTsKIAog
ICAgICAgICBpdCgnc2hvdWxkIHRocm93IHdoZW4gc29tZSByZXF1aXJlZCBvcHRpb25zIGFyZSBt
aXNzaW5nJywgKCkgPT4gewogICAgICAgICAgICAgYXNzZXJ0LnRocm93cygoKSA9PiB7CiAgICAg
ICAgICAgICAgICAgY29uc3QgY29uZmlnID0gc21hbGxDb25maWd1cmF0aW9uKCk7CiAgICAgICAg
ICAgICAgICAgZGVsZXRlIGNvbmZpZy5idWlsZGVyczsKLSAgICAgICAgICAgICAgICBCdWlsZGJv
dFN5bmNlci5fbG9hZENvbmZpZyhNb2NrUmVtb3RlQVBJLCBjb25maWcpOworICAgICAgICAgICAg
ICAgIEJ1aWxkYm90U3luY2VyLl9sb2FkQ29uZmlnKE1vY2tSZW1vdGVBUEksIGNvbmZpZywgYnVp
bGRlck5hbWVUb0lETWFwKCkpOwogICAgICAgICAgICAgfSwgLyJzb21lLWJ1aWxkZXIiIGlzIG5v
dCBhIHZhbGlkIGJ1aWxkZXIgaW4gdGhlIGNvbmZpZ3VyYXRpb24vKTsKICAgICAgICAgICAgIGFz
c2VydC50aHJvd3MoKCkgPT4gewogICAgICAgICAgICAgICAgIGNvbnN0IGNvbmZpZyA9IHNtYWxs
Q29uZmlndXJhdGlvbigpOwogICAgICAgICAgICAgICAgIGRlbGV0ZSBjb25maWcudHlwZXM7Ci0g
ICAgICAgICAgICAgICAgQnVpbGRib3RTeW5jZXIuX2xvYWRDb25maWcoTW9ja1JlbW90ZUFQSSwg
Y29uZmlnKTsKKyAgICAgICAgICAgICAgICBCdWlsZGJvdFN5bmNlci5fbG9hZENvbmZpZyhNb2Nr
UmVtb3RlQVBJLCBjb25maWcsIGJ1aWxkZXJOYW1lVG9JRE1hcCgpKTsKICAgICAgICAgICAgIH0s
IC8ic29tZS10ZXN0IiBpcyBub3QgYSB2YWxpZCB0eXBlIGluIHRoZSBjb25maWd1cmF0aW9uLyk7
CiAgICAgICAgICAgICBhc3NlcnQudGhyb3dzKCgpID0+IHsKICAgICAgICAgICAgICAgICBjb25z
dCBjb25maWcgPSBzbWFsbENvbmZpZ3VyYXRpb24oKTsKICAgICAgICAgICAgICAgICBkZWxldGUg
Y29uZmlnLnRlc3RDb25maWd1cmF0aW9uc1swXS5idWlsZGVyczsKLSAgICAgICAgICAgICAgICBC
dWlsZGJvdFN5bmNlci5fbG9hZENvbmZpZyhNb2NrUmVtb3RlQVBJLCBjb25maWcpOworICAgICAg
ICAgICAgICAgIEJ1aWxkYm90U3luY2VyLl9sb2FkQ29uZmlnKE1vY2tSZW1vdGVBUEksIGNvbmZp
ZywgYnVpbGRlck5hbWVUb0lETWFwKCkpOwogICAgICAgICAgICAgfSwgL1RoZSB0ZXN0IGNvbmZp
Z3VyYXRpb24gMSBkb2VzIG5vdCBzcGVjaWZ5ICJidWlsZGVycyIgYXMgYW4gYXJyYXkvKTsKICAg
ICAgICAgICAgIGFzc2VydC50aHJvd3MoKCkgPT4gewogICAgICAgICAgICAgICAgIGNvbnN0IGNv
bmZpZyA9IHNtYWxsQ29uZmlndXJhdGlvbigpOwogICAgICAgICAgICAgICAgIGRlbGV0ZSBjb25m
aWcudGVzdENvbmZpZ3VyYXRpb25zWzBdLnBsYXRmb3JtczsKLSAgICAgICAgICAgICAgICBCdWls
ZGJvdFN5bmNlci5fbG9hZENvbmZpZyhNb2NrUmVtb3RlQVBJLCBjb25maWcpOworICAgICAgICAg
ICAgICAgIEJ1aWxkYm90U3luY2VyLl9sb2FkQ29uZmlnKE1vY2tSZW1vdGVBUEksIGNvbmZpZywg
YnVpbGRlck5hbWVUb0lETWFwKCkpOwogICAgICAgICAgICAgfSwgL1RoZSB0ZXN0IGNvbmZpZ3Vy
YXRpb24gMSBkb2VzIG5vdCBzcGVjaWZ5ICJwbGF0Zm9ybXMiIGFzIGFuIGFycmF5Lyk7CiAgICAg
ICAgICAgICBhc3NlcnQudGhyb3dzKCgpID0+IHsKICAgICAgICAgICAgICAgICBjb25zdCBjb25m
aWcgPSBzbWFsbENvbmZpZ3VyYXRpb24oKTsKICAgICAgICAgICAgICAgICBkZWxldGUgY29uZmln
LnRlc3RDb25maWd1cmF0aW9uc1swXS50eXBlczsKLSAgICAgICAgICAgICAgICBCdWlsZGJvdFN5
bmNlci5fbG9hZENvbmZpZyhNb2NrUmVtb3RlQVBJLCBjb25maWcpOworICAgICAgICAgICAgICAg
IEJ1aWxkYm90U3luY2VyLl9sb2FkQ29uZmlnKE1vY2tSZW1vdGVBUEksIGNvbmZpZywgYnVpbGRl
ck5hbWVUb0lETWFwKCkpOwogICAgICAgICAgICAgfSwgL1RoZSB0ZXN0IGNvbmZpZ3VyYXRpb24g
MCBkb2VzIG5vdCBzcGVjaWZ5ICJ0eXBlcyIgYXMgYW4gYXJyYXkvKTsKICAgICAgICAgICAgIGFz
c2VydC50aHJvd3MoKCkgPT4gewogICAgICAgICAgICAgICAgIGNvbnN0IGNvbmZpZyA9IHNtYWxs
Q29uZmlndXJhdGlvbigpOwogICAgICAgICAgICAgICAgIGRlbGV0ZSBjb25maWcuYnVpbGRSZXF1
ZXN0QXJndW1lbnQ7Ci0gICAgICAgICAgICAgICAgQnVpbGRib3RTeW5jZXIuX2xvYWRDb25maWco
TW9ja1JlbW90ZUFQSSwgY29uZmlnKTsKKyAgICAgICAgICAgICAgICBCdWlsZGJvdFN5bmNlci5f
bG9hZENvbmZpZyhNb2NrUmVtb3RlQVBJLCBjb25maWcsIGJ1aWxkZXJOYW1lVG9JRE1hcCgpKTsK
ICAgICAgICAgICAgIH0sIC9idWlsZFJlcXVlc3RBcmd1bWVudCBtdXN0IHNwZWNpZnkgdGhlIG5h
bWUgb2YgdGhlIHByb3BlcnR5IHVzZWQgdG8gc3RvcmUgdGhlIGJ1aWxkIHJlcXVlc3QgSUQvKTsK
ICAgICAgICAgfSk7CiAKQEAgLTUxNywxMiArNTMwLDEyIEBAIGRlc2NyaWJlKCdCdWlsZGJvdFN5
bmNlcicsICgpID0+IHsKICAgICAgICAgICAgIGFzc2VydC50aHJvd3MoKCkgPT4gewogICAgICAg
ICAgICAgICAgIGNvbnN0IGNvbmZpZyA9IHNtYWxsQ29uZmlndXJhdGlvbigpOwogICAgICAgICAg
ICAgICAgIGNvbmZpZy50ZXN0Q29uZmlndXJhdGlvbnNbMF0udHlwZXMgPSAnc29tZSB0ZXN0JzsK
LSAgICAgICAgICAgICAgICBCdWlsZGJvdFN5bmNlci5fbG9hZENvbmZpZyhNb2NrUmVtb3RlQVBJ
LCBjb25maWcpOworICAgICAgICAgICAgICAgIEJ1aWxkYm90U3luY2VyLl9sb2FkQ29uZmlnKE1v
Y2tSZW1vdGVBUEksIGNvbmZpZywgYnVpbGRlck5hbWVUb0lETWFwKCkpOwogICAgICAgICAgICAg
fSwgL1RoZSB0ZXN0IGNvbmZpZ3VyYXRpb24gMCBkb2VzIG5vdCBzcGVjaWZ5ICJ0eXBlcyIgYXMg
YW4gYXJyYXkvKTsKICAgICAgICAgICAgIGFzc2VydC50aHJvd3MoKCkgPT4gewogICAgICAgICAg
ICAgICAgIGNvbnN0IGNvbmZpZyA9IHNtYWxsQ29uZmlndXJhdGlvbigpOwogICAgICAgICAgICAg
ICAgIGNvbmZpZy50ZXN0Q29uZmlndXJhdGlvbnNbMF0udHlwZXMgPSBbMV07Ci0gICAgICAgICAg
ICAgICAgQnVpbGRib3RTeW5jZXIuX2xvYWRDb25maWcoTW9ja1JlbW90ZUFQSSwgY29uZmlnKTsK
KyAgICAgICAgICAgICAgICBCdWlsZGJvdFN5bmNlci5fbG9hZENvbmZpZyhNb2NrUmVtb3RlQVBJ
LCBjb25maWcsIGJ1aWxkZXJOYW1lVG9JRE1hcCgpKTsKICAgICAgICAgICAgIH0sIC8iMSIgaXMg
bm90IGEgdmFsaWQgdHlwZSBpbiB0aGUgY29uZmlndXJhdGlvbi8pOwogICAgICAgICB9KTsKIApA
QCAtNTMwLDEyICs1NDMsMTIgQEAgZGVzY3JpYmUoJ0J1aWxkYm90U3luY2VyJywgKCkgPT4gewog
ICAgICAgICAgICAgYXNzZXJ0LnRocm93cygoKSA9PiB7CiAgICAgICAgICAgICAgICAgY29uc3Qg
Y29uZmlnID0gc21hbGxDb25maWd1cmF0aW9uKCk7CiAgICAgICAgICAgICAgICAgY29uZmlnLmJ1
aWxkZXJzW09iamVjdC5rZXlzKGNvbmZpZy5idWlsZGVycylbMF1dLnByb3BlcnRpZXMgPSAnaGVs
bG8nOwotICAgICAgICAgICAgICAgIEJ1aWxkYm90U3luY2VyLl9sb2FkQ29uZmlnKE1vY2tSZW1v
dGVBUEksIGNvbmZpZyk7CisgICAgICAgICAgICAgICAgQnVpbGRib3RTeW5jZXIuX2xvYWRDb25m
aWcoTW9ja1JlbW90ZUFQSSwgY29uZmlnLCBidWlsZGVyTmFtZVRvSURNYXAoKSk7CiAgICAgICAg
ICAgICB9LCAvQnVpbGQgcHJvcGVydGllcyBzaG91bGQgYmUgYSBkaWN0aW9uYXJ5Lyk7CiAgICAg
ICAgICAgICBhc3NlcnQudGhyb3dzKCgpID0+IHsKICAgICAgICAgICAgICAgICBjb25zdCBjb25m
aWcgPSBzbWFsbENvbmZpZ3VyYXRpb24oKTsKICAgICAgICAgICAgICAgICBjb25maWcudHlwZXNb
T2JqZWN0LmtleXMoY29uZmlnLnR5cGVzKVswXV0ucHJvcGVydGllcyA9ICdoZWxsbyc7Ci0gICAg
ICAgICAgICAgICAgQnVpbGRib3RTeW5jZXIuX2xvYWRDb25maWcoTW9ja1JlbW90ZUFQSSwgY29u
ZmlnKTsKKyAgICAgICAgICAgICAgICBCdWlsZGJvdFN5bmNlci5fbG9hZENvbmZpZyhNb2NrUmVt
b3RlQVBJLCBjb25maWcsIGJ1aWxkZXJOYW1lVG9JRE1hcCgpKTsKICAgICAgICAgICAgIH0sIC9C
dWlsZCBwcm9wZXJ0aWVzIHNob3VsZCBiZSBhIGRpY3Rpb25hcnkvKTsKICAgICAgICAgfSk7CiAK
QEAgLTU0NCwxMyArNTU3LDEzIEBAIGRlc2NyaWJlKCdCdWlsZGJvdFN5bmNlcicsICgpID0+IHsK
ICAgICAgICAgICAgICAgICBjb25zdCBjb25maWcgPSBzbWFsbENvbmZpZ3VyYXRpb24oKTsKICAg
ICAgICAgICAgICAgICBjb25zdCBmaXJzdFR5cGUgPSBPYmplY3Qua2V5cyhjb25maWcudHlwZXMp
WzBdOwogICAgICAgICAgICAgICAgIGNvbmZpZy50eXBlc1tmaXJzdFR5cGVdLnRlc3RQcm9wZXJ0
aWVzID0ge307Ci0gICAgICAgICAgICAgICAgQnVpbGRib3RTeW5jZXIuX2xvYWRDb25maWcoTW9j
a1JlbW90ZUFQSSwgY29uZmlnKTsKKyAgICAgICAgICAgICAgICBCdWlsZGJvdFN5bmNlci5fbG9h
ZENvbmZpZyhNb2NrUmVtb3RlQVBJLCBjb25maWcsIGJ1aWxkZXJOYW1lVG9JRE1hcCgpKTsKICAg
ICAgICAgICAgIH0sIC9VbnJlY29nbml6ZWQgcGFyYW1ldGVyICJ0ZXN0UHJvcGVydGllcyIvKTsK
ICAgICAgICAgICAgIGFzc2VydC50aHJvd3MoKCkgPT4gewogICAgICAgICAgICAgICAgIGNvbnN0
IGNvbmZpZyA9IHNtYWxsQ29uZmlndXJhdGlvbigpOwogICAgICAgICAgICAgICAgIGNvbnN0IGZp
cnN0QnVpbGRlciA9IE9iamVjdC5rZXlzKGNvbmZpZy5idWlsZGVycylbMF07CiAgICAgICAgICAg
ICAgICAgY29uZmlnLmJ1aWxkZXJzW2ZpcnN0QnVpbGRlcl0udGVzdFByb3BlcnRpZXMgPSB7fTsK
LSAgICAgICAgICAgICAgICBCdWlsZGJvdFN5bmNlci5fbG9hZENvbmZpZyhNb2NrUmVtb3RlQVBJ
LCBjb25maWcpOworICAgICAgICAgICAgICAgIEJ1aWxkYm90U3luY2VyLl9sb2FkQ29uZmlnKE1v
Y2tSZW1vdGVBUEksIGNvbmZpZywgYnVpbGRlck5hbWVUb0lETWFwKCkpOwogICAgICAgICAgICAg
fSwgL1VucmVjb2duaXplZCBwYXJhbWV0ZXIgInRlc3RQcm9wZXJ0aWVzIi8pOwogICAgICAgICB9
KTsKIApAQCAtNTU5LDEzICs1NzIsMTMgQEAgZGVzY3JpYmUoJ0J1aWxkYm90U3luY2VyJywgKCkg
PT4gewogICAgICAgICAgICAgICAgIGNvbnN0IGNvbmZpZyA9IHNtYWxsQ29uZmlndXJhdGlvbigp
OwogICAgICAgICAgICAgICAgIGNvbnN0IGZpcnN0VHlwZSA9IE9iamVjdC5rZXlzKGNvbmZpZy50
eXBlcylbMF07CiAgICAgICAgICAgICAgICAgY29uZmlnLnR5cGVzW2ZpcnN0VHlwZV0uYnVpbGRQ
cm9wZXJ0aWVzID0ge307Ci0gICAgICAgICAgICAgICAgQnVpbGRib3RTeW5jZXIuX2xvYWRDb25m
aWcoTW9ja1JlbW90ZUFQSSwgY29uZmlnKTsKKyAgICAgICAgICAgICAgICBCdWlsZGJvdFN5bmNl
ci5fbG9hZENvbmZpZyhNb2NrUmVtb3RlQVBJLCBjb25maWcsIGJ1aWxkZXJOYW1lVG9JRE1hcCgp
KTsKICAgICAgICAgICAgIH0sIC9VbnJlY29nbml6ZWQgcGFyYW1ldGVyICJidWlsZFByb3BlcnRp
ZXMiLyk7CiAgICAgICAgICAgICBhc3NlcnQudGhyb3dzKCgpID0+IHsKICAgICAgICAgICAgICAg
ICBjb25zdCBjb25maWcgPSBzbWFsbENvbmZpZ3VyYXRpb24oKTsKICAgICAgICAgICAgICAgICBj
b25zdCBmaXJzdEJ1aWxkZXIgPSBPYmplY3Qua2V5cyhjb25maWcuYnVpbGRlcnMpWzBdOwogICAg
ICAgICAgICAgICAgIGNvbmZpZy5idWlsZGVyc1tmaXJzdEJ1aWxkZXJdLmJ1aWxkUHJvcGVydGll
cyA9IHt9OwotICAgICAgICAgICAgICAgIEJ1aWxkYm90U3luY2VyLl9sb2FkQ29uZmlnKE1vY2tS
ZW1vdGVBUEksIGNvbmZpZyk7CisgICAgICAgICAgICAgICAgQnVpbGRib3RTeW5jZXIuX2xvYWRD
b25maWcoTW9ja1JlbW90ZUFQSSwgY29uZmlnLCBidWlsZGVyTmFtZVRvSURNYXAoKSk7CiAgICAg
ICAgICAgICB9LCAvVW5yZWNvZ25pemVkIHBhcmFtZXRlciAiYnVpbGRQcm9wZXJ0aWVzIi8pOwog
ICAgICAgICB9KTsKIApAQCAtNTc0LDI3ICs1ODcsMjcgQEAgZGVzY3JpYmUoJ0J1aWxkYm90U3lu
Y2VyJywgKCkgPT4gewogICAgICAgICAgICAgYXNzZXJ0LnRocm93cygoKSA9PiB7CiAgICAgICAg
ICAgICAgICAgY29uc3QgY29uZmlnID0gc21hbGxDb25maWd1cmF0aW9uKCk7CiAgICAgICAgICAg
ICAgICAgY29uZmlnLnR5cGVzW2ZpcnN0VHlwZV0ucHJvcGVydGllcyA9ICdoZWxsbyc7Ci0gICAg
ICAgICAgICAgICAgQnVpbGRib3RTeW5jZXIuX2xvYWRDb25maWcoTW9ja1JlbW90ZUFQSSwgY29u
ZmlnKTsKKyAgICAgICAgICAgICAgICBCdWlsZGJvdFN5bmNlci5fbG9hZENvbmZpZyhNb2NrUmVt
b3RlQVBJLCBjb25maWcsIGJ1aWxkZXJOYW1lVG9JRE1hcCgpKTsKICAgICAgICAgICAgIH0sIC9C
dWlsZCBwcm9wZXJ0aWVzIHNob3VsZCBiZSBhIGRpY3Rpb25hcnkvKTsKICAgICAgICAgICAgIGFz
c2VydC50aHJvd3MoKCkgPT4gewogICAgICAgICAgICAgICAgIGNvbnN0IGNvbmZpZyA9IHNtYWxs
Q29uZmlndXJhdGlvbigpOwogICAgICAgICAgICAgICAgIGNvbmZpZy50eXBlc1tmaXJzdFR5cGVd
LnByb3BlcnRpZXMgPSB7J3NvbWUnOiB7J290aGVyS2V5JzogJ3NvbWUgcm9vdCd9fTsKLSAgICAg
ICAgICAgICAgICBCdWlsZGJvdFN5bmNlci5fbG9hZENvbmZpZyhSZW1vdGVBUEksIGNvbmZpZyk7
CisgICAgICAgICAgICAgICAgQnVpbGRib3RTeW5jZXIuX2xvYWRDb25maWcoUmVtb3RlQVBJLCBj
b25maWcsIGJ1aWxkZXJOYW1lVG9JRE1hcCgpKTsKICAgICAgICAgICAgIH0sIC9CdWlsZCBwcm9w
ZXJ0aWVzICJzb21lIiBzcGVjaWZpZXMgYSBub24tc3RyaW5nIHZhbHVlIG9mIHR5cGUgIm9iamVj
dCIvKTsKICAgICAgICAgICAgIGFzc2VydC50aHJvd3MoKCkgPT4gewogICAgICAgICAgICAgICAg
IGNvbnN0IGNvbmZpZyA9IHNtYWxsQ29uZmlndXJhdGlvbigpOwogICAgICAgICAgICAgICAgIGNv
bmZpZy50eXBlc1tmaXJzdFR5cGVdLnByb3BlcnRpZXMgPSB7J3NvbWUnOiB7J290aGVyS2V5Jzog
J3NvbWUgcm9vdCd9fTsKLSAgICAgICAgICAgICAgICBCdWlsZGJvdFN5bmNlci5fbG9hZENvbmZp
ZyhSZW1vdGVBUEksIGNvbmZpZyk7CisgICAgICAgICAgICAgICAgQnVpbGRib3RTeW5jZXIuX2xv
YWRDb25maWcoUmVtb3RlQVBJLCBjb25maWcsIGJ1aWxkZXJOYW1lVG9JRE1hcCgpKTsKICAgICAg
ICAgICAgIH0sIC9CdWlsZCBwcm9wZXJ0aWVzICJzb21lIiBzcGVjaWZpZXMgYSBub24tc3RyaW5n
IHZhbHVlIG9mIHR5cGUgIm9iamVjdCIvKTsKICAgICAgICAgICAgIGFzc2VydC50aHJvd3MoKCkg
PT4gewogICAgICAgICAgICAgICAgIGNvbnN0IGNvbmZpZyA9IHNtYWxsQ29uZmlndXJhdGlvbigp
OwogICAgICAgICAgICAgICAgIGNvbmZpZy50eXBlc1tmaXJzdFR5cGVdLnByb3BlcnRpZXMgPSB7
J3NvbWUnOiB7J3JldmlzaW9uJzogJ1dlYktpdCd9fTsKLSAgICAgICAgICAgICAgICBCdWlsZGJv
dFN5bmNlci5fbG9hZENvbmZpZyhSZW1vdGVBUEksIGNvbmZpZyk7CisgICAgICAgICAgICAgICAg
QnVpbGRib3RTeW5jZXIuX2xvYWRDb25maWcoUmVtb3RlQVBJLCBjb25maWcsIGJ1aWxkZXJOYW1l
VG9JRE1hcCgpKTsKICAgICAgICAgICAgIH0sIC9CdWlsZCBwcm9wZXJ0aWVzICJzb21lIiBzcGVj
aWZpZXMgYSBub24tc3RyaW5nIHZhbHVlIG9mIHR5cGUgIm9iamVjdCIvKTsKICAgICAgICAgICAg
IGFzc2VydC50aHJvd3MoKCkgPT4gewogICAgICAgICAgICAgICAgIGNvbnN0IGNvbmZpZyA9IHNt
YWxsQ29uZmlndXJhdGlvbigpOwogICAgICAgICAgICAgICAgIGNvbmZpZy50eXBlc1tmaXJzdFR5
cGVdLnByb3BlcnRpZXMgPSB7J3NvbWUnOiAxfTsKLSAgICAgICAgICAgICAgICBCdWlsZGJvdFN5
bmNlci5fbG9hZENvbmZpZyhSZW1vdGVBUEksIGNvbmZpZyk7CisgICAgICAgICAgICAgICAgQnVp
bGRib3RTeW5jZXIuX2xvYWRDb25maWcoUmVtb3RlQVBJLCBjb25maWcsIGJ1aWxkZXJOYW1lVG9J
RE1hcCgpKTsKICAgICAgICAgICAgIH0sIC8gQnVpbGQgcHJvcGVydGllcyAic29tZSIgc3BlY2lm
aWVzIGEgbm9uLXN0cmluZyB2YWx1ZSBvZiB0eXBlICJvYmplY3QiLyk7CiAgICAgICAgIH0pOwog
CkBAIC02MDMsMzIgKzYxNiwzMiBAQCBkZXNjcmliZSgnQnVpbGRib3RTeW5jZXInLCAoKSA9PiB7
CiAgICAgICAgICAgICBhc3NlcnQudGhyb3dzKCgpID0+IHsKICAgICAgICAgICAgICAgICBjb25z
dCBjb25maWcgPSBzbWFsbENvbmZpZ3VyYXRpb24oKTsKICAgICAgICAgICAgICAgICBjb25maWcu
YnVpbGRlcnNbZmlyc3RCdWlsZGVyXS5wcm9wZXJ0aWVzID0gJ2hlbGxvJzsKLSAgICAgICAgICAg
ICAgICBCdWlsZGJvdFN5bmNlci5fbG9hZENvbmZpZyhNb2NrUmVtb3RlQVBJLCBjb25maWcpOwor
ICAgICAgICAgICAgICAgIEJ1aWxkYm90U3luY2VyLl9sb2FkQ29uZmlnKE1vY2tSZW1vdGVBUEks
IGNvbmZpZywgYnVpbGRlck5hbWVUb0lETWFwKCkpOwogICAgICAgICAgICAgfSwgL0J1aWxkIHBy
b3BlcnRpZXMgc2hvdWxkIGJlIGEgZGljdGlvbmFyeS8pOwogICAgICAgICAgICAgYXNzZXJ0LnRo
cm93cygoKSA9PiB7CiAgICAgICAgICAgICAgICAgY29uc3QgY29uZmlnID0gc21hbGxDb25maWd1
cmF0aW9uKCk7CiAgICAgICAgICAgICAgICAgY29uZmlnLmJ1aWxkZXJzW2ZpcnN0QnVpbGRlcl0u
cHJvcGVydGllcyA9IHsnc29tZSc6IHsnb3RoZXJLZXknOiAnc29tZSByb290J319OwotICAgICAg
ICAgICAgICAgIEJ1aWxkYm90U3luY2VyLl9sb2FkQ29uZmlnKFJlbW90ZUFQSSwgY29uZmlnKTsK
KyAgICAgICAgICAgICAgICBCdWlsZGJvdFN5bmNlci5fbG9hZENvbmZpZyhSZW1vdGVBUEksIGNv
bmZpZywgYnVpbGRlck5hbWVUb0lETWFwKCkpOwogICAgICAgICAgICAgfSwgL0J1aWxkIHByb3Bl
cnRpZXMgInNvbWUiIHNwZWNpZmllcyBhIG5vbi1zdHJpbmcgdmFsdWUgb2YgdHlwZSAib2JqZWN0
Ii8pOwogICAgICAgICAgICAgYXNzZXJ0LnRocm93cygoKSA9PiB7CiAgICAgICAgICAgICAgICAg
Y29uc3QgY29uZmlnID0gc21hbGxDb25maWd1cmF0aW9uKCk7CiAgICAgICAgICAgICAgICAgY29u
ZmlnLmJ1aWxkZXJzW2ZpcnN0QnVpbGRlcl0ucHJvcGVydGllcyA9IHsnc29tZSc6IHsnb3RoZXJL
ZXknOiAnc29tZSByb290J319OwotICAgICAgICAgICAgICAgIEJ1aWxkYm90U3luY2VyLl9sb2Fk
Q29uZmlnKFJlbW90ZUFQSSwgY29uZmlnKTsKKyAgICAgICAgICAgICAgICBCdWlsZGJvdFN5bmNl
ci5fbG9hZENvbmZpZyhSZW1vdGVBUEksIGNvbmZpZywgYnVpbGRlck5hbWVUb0lETWFwKCkpOwog
ICAgICAgICAgICAgfSwgL0J1aWxkIHByb3BlcnRpZXMgInNvbWUiIHNwZWNpZmllcyBhIG5vbi1z
dHJpbmcgdmFsdWUgb2YgdHlwZSAib2JqZWN0Ii8pOwogICAgICAgICAgICAgYXNzZXJ0LnRocm93
cygoKSA9PiB7CiAgICAgICAgICAgICAgICAgY29uc3QgY29uZmlnID0gc21hbGxDb25maWd1cmF0
aW9uKCk7CiAgICAgICAgICAgICAgICAgY29uZmlnLmJ1aWxkZXJzW2ZpcnN0QnVpbGRlcl0ucHJv
cGVydGllcyA9IHsnc29tZSc6IHsncmV2aXNpb24nOiAnV2ViS2l0J319OwotICAgICAgICAgICAg
ICAgIEJ1aWxkYm90U3luY2VyLl9sb2FkQ29uZmlnKFJlbW90ZUFQSSwgY29uZmlnKTsKKyAgICAg
ICAgICAgICAgICBCdWlsZGJvdFN5bmNlci5fbG9hZENvbmZpZyhSZW1vdGVBUEksIGNvbmZpZywg
YnVpbGRlck5hbWVUb0lETWFwKCkpOwogICAgICAgICAgICAgfSwgL0J1aWxkIHByb3BlcnRpZXMg
InNvbWUiIHNwZWNpZmllcyBhIG5vbi1zdHJpbmcgdmFsdWUgb2YgdHlwZSAib2JqZWN0Ii8pOwog
ICAgICAgICAgICAgYXNzZXJ0LnRocm93cygoKSA9PiB7CiAgICAgICAgICAgICAgICAgY29uc3Qg
Y29uZmlnID0gc21hbGxDb25maWd1cmF0aW9uKCk7CiAgICAgICAgICAgICAgICAgY29uZmlnLmJ1
aWxkZXJzW2ZpcnN0QnVpbGRlcl0ucHJvcGVydGllcyA9IHsnc29tZSc6IDF9OwotICAgICAgICAg
ICAgICAgIEJ1aWxkYm90U3luY2VyLl9sb2FkQ29uZmlnKFJlbW90ZUFQSSwgY29uZmlnKTsKKyAg
ICAgICAgICAgICAgICBCdWlsZGJvdFN5bmNlci5fbG9hZENvbmZpZyhSZW1vdGVBUEksIGNvbmZp
ZywgYnVpbGRlck5hbWVUb0lETWFwKCkpOwogICAgICAgICAgICAgfSwgL0J1aWxkIHByb3BlcnRp
ZXMgInNvbWUiIHNwZWNpZmllcyBhIG5vbi1zdHJpbmcgdmFsdWUgb2YgdHlwZSAib2JqZWN0Ii8p
OwogICAgICAgICB9KTsKIAogICAgICAgICBpdCgnc2hvdWxkIGNyZWF0ZSBCdWlsZGJvdFN5bmNl
ciBvYmplY3RzIGZvciB2YWxpZCBjb25maWd1cmF0aW9ucycsICgpID0+IHsKLSAgICAgICAgICAg
IGxldCBzeW5jZXJzID0gQnVpbGRib3RTeW5jZXIuX2xvYWRDb25maWcoUmVtb3RlQVBJLCBzYW1w
bGVpT1NDb25maWcoKSk7CisgICAgICAgICAgICBsZXQgc3luY2VycyA9IEJ1aWxkYm90U3luY2Vy
Ll9sb2FkQ29uZmlnKFJlbW90ZUFQSSwgc2FtcGxlaU9TQ29uZmlnKCksIGJ1aWxkZXJOYW1lVG9J
RE1hcCgpKTsKICAgICAgICAgICAgIGFzc2VydC5lcXVhbChzeW5jZXJzLmxlbmd0aCwgMyk7CiAg
ICAgICAgICAgICBhc3NlcnQub2soc3luY2Vyc1swXSBpbnN0YW5jZW9mIEJ1aWxkYm90U3luY2Vy
KTsKICAgICAgICAgICAgIGFzc2VydC5vayhzeW5jZXJzWzFdIGluc3RhbmNlb2YgQnVpbGRib3RT
eW5jZXIpOwpAQCAtNjM2LDE0ICs2NDksMTQgQEAgZGVzY3JpYmUoJ0J1aWxkYm90U3luY2VyJywg
KCkgPT4gewogICAgICAgICB9KTsKIAogICAgICAgICBpdCgnc2hvdWxkIHBhcnNlIGJ1aWxkZXIg
bmFtZXMgY29ycmVjdGx5JywgKCkgPT4gewotICAgICAgICAgICAgbGV0IHN5bmNlcnMgPSBCdWls
ZGJvdFN5bmNlci5fbG9hZENvbmZpZyhSZW1vdGVBUEksIHNhbXBsZWlPU0NvbmZpZygpKTsKKyAg
ICAgICAgICAgIGxldCBzeW5jZXJzID0gQnVpbGRib3RTeW5jZXIuX2xvYWRDb25maWcoUmVtb3Rl
QVBJLCBzYW1wbGVpT1NDb25maWcoKSwgYnVpbGRlck5hbWVUb0lETWFwKCkpOwogICAgICAgICAg
ICAgYXNzZXJ0LmVxdWFsKHN5bmNlcnNbMF0uYnVpbGRlck5hbWUoKSwgJ0FCVGVzdC1pUGhvbmUt
UnVuQmVuY2htYXJrLVRlc3RzJyk7CiAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoc3luY2Vyc1sx
XS5idWlsZGVyTmFtZSgpLCAnQUJUZXN0LWlQYWQtUnVuQmVuY2htYXJrLVRlc3RzJyk7CiAgICAg
ICAgICAgICBhc3NlcnQuZXF1YWwoc3luY2Vyc1syXS5idWlsZGVyTmFtZSgpLCAnQUJUZXN0LWlP
Uy1CdWlsZGVyJyk7CiAgICAgICAgIH0pOwogCiAgICAgICAgIGl0KCdzaG91bGQgcGFyc2UgdGVz
dCBjb25maWd1cmF0aW9ucyB3aXRoIGJ1aWxkIGNvbmZpZ3VyYXRpb25zIGNvcnJlY3RseScsICgp
ID0+IHsKLSAgICAgICAgICAgIGxldCBzeW5jZXJzID0gQnVpbGRib3RTeW5jZXIuX2xvYWRDb25m
aWcoUmVtb3RlQVBJLCBzYW1wbGVpT1NDb25maWcoKSk7CisgICAgICAgICAgICBsZXQgc3luY2Vy
cyA9IEJ1aWxkYm90U3luY2VyLl9sb2FkQ29uZmlnKFJlbW90ZUFQSSwgc2FtcGxlaU9TQ29uZmln
KCksIGJ1aWxkZXJOYW1lVG9JRE1hcCgpKTsKIAogICAgICAgICAgICAgbGV0IGNvbmZpZ3VyYXRp
b25zID0gc3luY2Vyc1swXS50ZXN0Q29uZmlndXJhdGlvbnMoKTsKICAgICAgICAgICAgIGFzc2Vy
dChzeW5jZXJzWzBdLmlzVGVzdGVyKCkpOwpAQCAtNjc5LDEyICs2OTIsMTIgQEAgZGVzY3JpYmUo
J0J1aWxkYm90U3luY2VyJywgKCkgPT4gewogICAgICAgICAgICAgYXNzZXJ0LnRocm93cygoKSA9
PiB7CiAgICAgICAgICAgICAgICAgY29uc3QgY29uZmlnID0gc2FtcGxlaU9TQ29uZmlnKCk7CiAg
ICAgICAgICAgICAgICAgY29uZmlnLmJ1aWxkQ29uZmlndXJhdGlvbnNbMF0uYnVpbGRlcnMgPSBj
b25maWcudGVzdENvbmZpZ3VyYXRpb25zWzBdLmJ1aWxkZXJzOwotICAgICAgICAgICAgICAgIEJ1
aWxkYm90U3luY2VyLl9sb2FkQ29uZmlnKE1vY2tSZW1vdGVBUEksIGNvbmZpZyk7CisgICAgICAg
ICAgICAgICAgQnVpbGRib3RTeW5jZXIuX2xvYWRDb25maWcoTW9ja1JlbW90ZUFQSSwgY29uZmln
LCBidWlsZGVyTmFtZVRvSURNYXAoKSk7CiAgICAgICAgICAgICB9KTsKICAgICAgICAgfSk7CiAK
ICAgICAgICAgaXQoJ3Nob3VsZCBwYXJzZSB0ZXN0IGNvbmZpZ3VyYXRpb25zIHdpdGggdHlwZXMg
YW5kIHBsYXRmb3JtcyBleHBhbnNpb25zIGNvcnJlY3RseScsICgpID0+IHsKLSAgICAgICAgICAg
IGNvbnN0IHN5bmNlcnMgPSBCdWlsZGJvdFN5bmNlci5fbG9hZENvbmZpZyhSZW1vdGVBUEksIHNh
bXBsZWlPU0NvbmZpZ1dpdGhFeHBhbnNpb25zKCkpOworICAgICAgICAgICAgY29uc3Qgc3luY2Vy
cyA9IEJ1aWxkYm90U3luY2VyLl9sb2FkQ29uZmlnKFJlbW90ZUFQSSwgc2FtcGxlaU9TQ29uZmln
V2l0aEV4cGFuc2lvbnMoKSwgYnVpbGRlck5hbWVUb0lETWFwKCkpOwogCiAgICAgICAgICAgICBh
c3NlcnQuZXF1YWwoc3luY2Vycy5sZW5ndGgsIDMpOwogCkBAIC03MjUsMTIgKzczOCwxMiBAQCBk
ZXNjcmliZSgnQnVpbGRib3RTeW5jZXInLCAoKSA9PiB7CiAgICAgICAgICAgICBhc3NlcnQudGhy
b3dzKCgpID0+IHsKICAgICAgICAgICAgICAgICBjb25zdCBjb25maWcgPSBzbWFsbENvbmZpZ3Vy
YXRpb24oKTsKICAgICAgICAgICAgICAgICBjb25maWcucmVwb3NpdG9yeUdyb3VwcyA9IDE7Ci0g
ICAgICAgICAgICAgICAgQnVpbGRib3RTeW5jZXIuX2xvYWRDb25maWcoTW9ja1JlbW90ZUFQSSwg
Y29uZmlnKTsKKyAgICAgICAgICAgICAgICBCdWlsZGJvdFN5bmNlci5fbG9hZENvbmZpZyhNb2Nr
UmVtb3RlQVBJLCBjb25maWcsIGJ1aWxkZXJOYW1lVG9JRE1hcCgpKTsKICAgICAgICAgICAgIH0s
IC9yZXBvc2l0b3J5R3JvdXBzIG11c3Qgc3BlY2lmeSBhIGRpY3Rpb25hcnkgZnJvbSB0aGUgbmFt
ZSB0byBpdHMgZGVmaW5pdGlvbi8pOwogICAgICAgICAgICAgYXNzZXJ0LnRocm93cygoKSA9PiB7
CiAgICAgICAgICAgICAgICAgY29uc3QgY29uZmlnID0gc21hbGxDb25maWd1cmF0aW9uKCk7CiAg
ICAgICAgICAgICAgICAgY29uZmlnLnJlcG9zaXRvcnlHcm91cHMgPSAnaGVsbG8nOwotICAgICAg
ICAgICAgICAgIEJ1aWxkYm90U3luY2VyLl9sb2FkQ29uZmlnKE1vY2tSZW1vdGVBUEksIGNvbmZp
Zyk7CisgICAgICAgICAgICAgICAgQnVpbGRib3RTeW5jZXIuX2xvYWRDb25maWcoTW9ja1JlbW90
ZUFQSSwgY29uZmlnLCBidWlsZGVyTmFtZVRvSURNYXAoKSk7CiAgICAgICAgICAgICB9LCAvcmVw
b3NpdG9yeUdyb3VwcyBtdXN0IHNwZWNpZnkgYSBkaWN0aW9uYXJ5IGZyb20gdGhlIG5hbWUgdG8g
aXRzIGRlZmluaXRpb24vKTsKICAgICAgICAgfSk7CiAKQEAgLTczOCwxMiArNzUxLDEyIEBAIGRl
c2NyaWJlKCdCdWlsZGJvdFN5bmNlcicsICgpID0+IHsKICAgICAgICAgICAgIGFzc2VydC50aHJv
d3MoKCkgPT4gewogICAgICAgICAgICAgICAgIGNvbnN0IGNvbmZpZyA9IHNtYWxsQ29uZmlndXJh
dGlvbigpOwogICAgICAgICAgICAgICAgIGNvbmZpZy5yZXBvc2l0b3J5R3JvdXBzID0geydzb21l
LWdyb3VwJzoge3Rlc3RQcm9wZXJ0aWVzOiB7fX19OwotICAgICAgICAgICAgICAgIEJ1aWxkYm90
U3luY2VyLl9sb2FkQ29uZmlnKE1vY2tSZW1vdGVBUEksIGNvbmZpZyk7CisgICAgICAgICAgICAg
ICAgQnVpbGRib3RTeW5jZXIuX2xvYWRDb25maWcoTW9ja1JlbW90ZUFQSSwgY29uZmlnLCBidWls
ZGVyTmFtZVRvSURNYXAoKSk7CiAgICAgICAgICAgICB9LCAvUmVwb3NpdG9yeSBncm91cCAic29t
ZS1ncm91cCIgZG9lcyBub3Qgc3BlY2lmeSBhIGRpY3Rpb25hcnkgb2YgcmVwb3NpdG9yaWVzLyk7
CiAgICAgICAgICAgICBhc3NlcnQudGhyb3dzKCgpID0+IHsKICAgICAgICAgICAgICAgICBjb25z
dCBjb25maWcgPSBzbWFsbENvbmZpZ3VyYXRpb24oKTsKICAgICAgICAgICAgICAgICBjb25maWcu
cmVwb3NpdG9yeUdyb3VwcyA9IHsnc29tZS1ncm91cCc6IHtyZXBvc2l0b3JpZXM6IDF9LCB0ZXN0
UHJvcGVydGllczoge319OwotICAgICAgICAgICAgICAgIEJ1aWxkYm90U3luY2VyLl9sb2FkQ29u
ZmlnKE1vY2tSZW1vdGVBUEksIGNvbmZpZyk7CisgICAgICAgICAgICAgICAgQnVpbGRib3RTeW5j
ZXIuX2xvYWRDb25maWcoTW9ja1JlbW90ZUFQSSwgY29uZmlnLCBidWlsZGVyTmFtZVRvSURNYXAo
KSk7CiAgICAgICAgICAgICB9LCAvUmVwb3NpdG9yeSBncm91cCAic29tZS1ncm91cCIgZG9lcyBu
b3Qgc3BlY2lmeSBhIGRpY3Rpb25hcnkgb2YgcmVwb3NpdG9yaWVzLyk7CiAgICAgICAgIH0pOwog
CkBAIC03NTEsNyArNzY0LDcgQEAgZGVzY3JpYmUoJ0J1aWxkYm90U3luY2VyJywgKCkgPT4gewog
ICAgICAgICAgICAgYXNzZXJ0LnRocm93cygoKSA9PiB7CiAgICAgICAgICAgICAgICAgY29uc3Qg
Y29uZmlnID0gc21hbGxDb25maWd1cmF0aW9uKCk7CiAgICAgICAgICAgICAgICAgY29uZmlnLnJl
cG9zaXRvcnlHcm91cHMgPSB7J3NvbWUtZ3JvdXAnOiB7cmVwb3NpdG9yaWVzOiB7fSwgdGVzdFBy
b3BlcnRpZXM6IHt9fX07Ci0gICAgICAgICAgICAgICAgQnVpbGRib3RTeW5jZXIuX2xvYWRDb25m
aWcoTW9ja1JlbW90ZUFQSSwgY29uZmlnKTsKKyAgICAgICAgICAgICAgICBCdWlsZGJvdFN5bmNl
ci5fbG9hZENvbmZpZyhNb2NrUmVtb3RlQVBJLCBjb25maWcsIGJ1aWxkZXJOYW1lVG9JRE1hcCgp
KTsKICAgICAgICAgICAgIH0sIC9SZXBvc2l0b3J5IGdyb3VwICJzb21lLWdyb3VwIiBkb2VzIG5v
dCBzcGVjaWZ5IGFueSByZXBvc2l0b3J5Lyk7CiAgICAgICAgIH0pOwogCkBAIC03NTksNyArNzcy
LDcgQEAgZGVzY3JpYmUoJ0J1aWxkYm90U3luY2VyJywgKCkgPT4gewogICAgICAgICAgICAgYXNz
ZXJ0LnRocm93cygoKSA9PiB7CiAgICAgICAgICAgICAgICAgY29uc3QgY29uZmlnID0gc21hbGxD
b25maWd1cmF0aW9uKCk7CiAgICAgICAgICAgICAgICAgY29uZmlnLnJlcG9zaXRvcnlHcm91cHMg
PSB7J3NvbWUtZ3JvdXAnOiB7cmVwb3NpdG9yaWVzOiB7J0ludmFsaWRSZXBvc2l0b3J5TmFtZSc6
IHt9fX19OwotICAgICAgICAgICAgICAgIEJ1aWxkYm90U3luY2VyLl9sb2FkQ29uZmlnKE1vY2tS
ZW1vdGVBUEksIGNvbmZpZyk7CisgICAgICAgICAgICAgICAgQnVpbGRib3RTeW5jZXIuX2xvYWRD
b25maWcoTW9ja1JlbW90ZUFQSSwgY29uZmlnLCBidWlsZGVyTmFtZVRvSURNYXAoKSk7CiAgICAg
ICAgICAgICB9LCAvIkludmFsaWRSZXBvc2l0b3J5TmFtZSIgaXMgbm90IGEgdmFsaWQgcmVwb3Np
dG9yeSBuYW1lLyk7CiAgICAgICAgIH0pOwogCkBAIC03NjcsNyArNzgwLDcgQEAgZGVzY3JpYmUo
J0J1aWxkYm90U3luY2VyJywgKCkgPT4gewogICAgICAgICAgICAgYXNzZXJ0LnRocm93cygoKSA9
PiB7CiAgICAgICAgICAgICAgICAgY29uc3QgY29uZmlnID0gc21hbGxDb25maWd1cmF0aW9uKCk7
CiAgICAgICAgICAgICAgICAgY29uZmlnLnJlcG9zaXRvcnlHcm91cHMgPSB7J3NvbWUtZ3JvdXAn
OiB7cmVwb3NpdG9yaWVzOiB7J1dlYktpdCc6IDF9fX07Ci0gICAgICAgICAgICAgICAgQnVpbGRi
b3RTeW5jZXIuX2xvYWRDb25maWcoTW9ja1JlbW90ZUFQSSwgY29uZmlnKTsKKyAgICAgICAgICAg
ICAgICBCdWlsZGJvdFN5bmNlci5fbG9hZENvbmZpZyhNb2NrUmVtb3RlQVBJLCBjb25maWcsIGJ1
aWxkZXJOYW1lVG9JRE1hcCgpKTsKICAgICAgICAgICAgIH0sIC8iV2ViS2l0IiBzcGVjaWZpZXMg
YSBub24tZGljdGlvbmFyeSB2YWx1ZS8pOwogICAgICAgICB9KTsKIApAQCAtNzc1LDEyICs3ODgs
MTIgQEAgZGVzY3JpYmUoJ0J1aWxkYm90U3luY2VyJywgKCkgPT4gewogICAgICAgICAgICAgYXNz
ZXJ0LnRocm93cygoKSA9PiB7CiAgICAgICAgICAgICAgICAgY29uc3QgY29uZmlnID0gc21hbGxD
b25maWd1cmF0aW9uKCk7CiAgICAgICAgICAgICAgICAgY29uZmlnLnJlcG9zaXRvcnlHcm91cHMg
PSB7J3NvbWUtZ3JvdXAnOiB7cmVwb3NpdG9yaWVzOiB7J1dlYktpdCc6IHt9fSwgZGVzY3JpcHRp
b246IDF9fTsKLSAgICAgICAgICAgICAgICBCdWlsZGJvdFN5bmNlci5fbG9hZENvbmZpZyhNb2Nr
UmVtb3RlQVBJLCBjb25maWcpOworICAgICAgICAgICAgICAgIEJ1aWxkYm90U3luY2VyLl9sb2Fk
Q29uZmlnKE1vY2tSZW1vdGVBUEksIGNvbmZpZywgYnVpbGRlck5hbWVUb0lETWFwKCkpOwogICAg
ICAgICAgICAgfSwgL1JlcG9zaXRvcnkgZ3JvdXAgInNvbWUtZ3JvdXAiIGhhdmUgYW4gaW52YWxp
ZCBkZXNjcmlwdGlvbi8pOwogICAgICAgICAgICAgYXNzZXJ0LnRocm93cygoKSA9PiB7CiAgICAg
ICAgICAgICAgICAgY29uc3QgY29uZmlnID0gc21hbGxDb25maWd1cmF0aW9uKCk7CiAgICAgICAg
ICAgICAgICAgY29uZmlnLnJlcG9zaXRvcnlHcm91cHMgPSB7J3NvbWUtZ3JvdXAnOiB7cmVwb3Np
dG9yaWVzOiB7J1dlYktpdCc6IHt9fSwgZGVzY3JpcHRpb246IFsxLCAyXX19OwotICAgICAgICAg
ICAgICAgIEJ1aWxkYm90U3luY2VyLl9sb2FkQ29uZmlnKE1vY2tSZW1vdGVBUEksIGNvbmZpZyk7
CisgICAgICAgICAgICAgICAgQnVpbGRib3RTeW5jZXIuX2xvYWRDb25maWcoTW9ja1JlbW90ZUFQ
SSwgY29uZmlnLCBidWlsZGVyTmFtZVRvSURNYXAoKSk7CiAgICAgICAgICAgICB9LCAvUmVwb3Np
dG9yeSBncm91cCAic29tZS1ncm91cCIgaGF2ZSBhbiBpbnZhbGlkIGRlc2NyaXB0aW9uLyk7CiAg
ICAgICAgIH0pOwogCkBAIC03ODgsMTIgKzgwMSwxMiBAQCBkZXNjcmliZSgnQnVpbGRib3RTeW5j
ZXInLCAoKSA9PiB7CiAgICAgICAgICAgICBhc3NlcnQudGhyb3dzKCgpID0+IHsKICAgICAgICAg
ICAgICAgICBjb25zdCBjb25maWcgPSBzbWFsbENvbmZpZ3VyYXRpb24oKTsKICAgICAgICAgICAg
ICAgICBjb25maWcucmVwb3NpdG9yeUdyb3VwcyA9IHsnc29tZS1ncm91cCc6IHtyZXBvc2l0b3Jp
ZXM6IHsnV2ViS2l0Jzoge319LCB0ZXN0UHJvcGVydGllczogMX19OwotICAgICAgICAgICAgICAg
IEJ1aWxkYm90U3luY2VyLl9sb2FkQ29uZmlnKE1vY2tSZW1vdGVBUEksIGNvbmZpZyk7CisgICAg
ICAgICAgICAgICAgQnVpbGRib3RTeW5jZXIuX2xvYWRDb25maWcoTW9ja1JlbW90ZUFQSSwgY29u
ZmlnLCBidWlsZGVyTmFtZVRvSURNYXAoKSk7CiAgICAgICAgICAgICB9LCAvUmVwb3NpdG9yeSBn
cm91cCAic29tZS1ncm91cCIgc3BlY2lmaWVzIHRoZSB0ZXN0IGNvbmZpZ3VyYXRpb25zIHdpdGgg
YW4gaW52YWxpZCB0eXBlLyk7CiAgICAgICAgICAgICBhc3NlcnQudGhyb3dzKCgpID0+IHsKICAg
ICAgICAgICAgICAgICBjb25zdCBjb25maWcgPSBzbWFsbENvbmZpZ3VyYXRpb24oKTsKICAgICAg
ICAgICAgICAgICBjb25maWcucmVwb3NpdG9yeUdyb3VwcyA9IHsnc29tZS1ncm91cCc6IHtyZXBv
c2l0b3JpZXM6IHsnV2ViS2l0Jzoge319LCB0ZXN0UHJvcGVydGllczogJ2hlbGxvJ319OwotICAg
ICAgICAgICAgICAgIEJ1aWxkYm90U3luY2VyLl9sb2FkQ29uZmlnKE1vY2tSZW1vdGVBUEksIGNv
bmZpZyk7CisgICAgICAgICAgICAgICAgQnVpbGRib3RTeW5jZXIuX2xvYWRDb25maWcoTW9ja1Jl
bW90ZUFQSSwgY29uZmlnLCBidWlsZGVyTmFtZVRvSURNYXAoKSk7CiAgICAgICAgICAgICB9LCAv
UmVwb3NpdG9yeSBncm91cCAic29tZS1ncm91cCIgc3BlY2lmaWVzIHRoZSB0ZXN0IGNvbmZpZ3Vy
YXRpb25zIHdpdGggYW4gaW52YWxpZCB0eXBlLyk7CiAgICAgICAgIH0pOwogCkBAIC04MDEsNyAr
ODE0LDcgQEAgZGVzY3JpYmUoJ0J1aWxkYm90U3luY2VyJywgKCkgPT4gewogICAgICAgICAgICAg
YXNzZXJ0LnRocm93cygoKSA9PiB7CiAgICAgICAgICAgICAgICAgY29uc3QgY29uZmlnID0gc21h
bGxDb25maWd1cmF0aW9uKCk7CiAgICAgICAgICAgICAgICAgY29uZmlnLnJlcG9zaXRvcnlHcm91
cHMgPSB7J3NvbWUtZ3JvdXAnOiB7cmVwb3NpdG9yaWVzOiB7J1dlYktpdCc6IHt9fSwgdGVzdFBy
b3BlcnRpZXM6IHsnd2snOiB7cmV2aXNpb246ICdJbnZhbGlkUmVwb3NpdG9yeSd9fX19OwotICAg
ICAgICAgICAgICAgIEJ1aWxkYm90U3luY2VyLl9sb2FkQ29uZmlnKE1vY2tSZW1vdGVBUEksIGNv
bmZpZyk7CisgICAgICAgICAgICAgICAgQnVpbGRib3RTeW5jZXIuX2xvYWRDb25maWcoTW9ja1Jl
bW90ZUFQSSwgY29uZmlnLCBidWlsZGVyTmFtZVRvSURNYXAoKSk7CiAgICAgICAgICAgICB9LCAv
UmVwb3NpdG9yeSBncm91cCAic29tZS1ncm91cCIgYW4gaW52YWxpZCByZXBvc2l0b3J5ICJJbnZh
bGlkUmVwb3NpdG9yeSIvKTsKICAgICAgICAgfSk7CiAKQEAgLTgwOSw3ICs4MjIsNyBAQCBkZXNj
cmliZSgnQnVpbGRib3RTeW5jZXInLCAoKSA9PiB7CiAgICAgICAgICAgICBhc3NlcnQudGhyb3dz
KCgpID0+IHsKICAgICAgICAgICAgICAgICBjb25zdCBjb25maWcgPSBzbWFsbENvbmZpZ3VyYXRp
b24oKTsKICAgICAgICAgICAgICAgICBjb25maWcucmVwb3NpdG9yeUdyb3VwcyA9IHsnc29tZS1n
cm91cCc6IHtyZXBvc2l0b3JpZXM6IHsnV2ViS2l0Jzoge319LCB0ZXN0UHJvcGVydGllczogeydv
cyc6IHtyZXZpc2lvbjogJ2lPUyd9fX19OwotICAgICAgICAgICAgICAgIEJ1aWxkYm90U3luY2Vy
Ll9sb2FkQ29uZmlnKE1vY2tSZW1vdGVBUEksIGNvbmZpZyk7CisgICAgICAgICAgICAgICAgQnVp
bGRib3RTeW5jZXIuX2xvYWRDb25maWcoTW9ja1JlbW90ZUFQSSwgY29uZmlnLCBidWlsZGVyTmFt
ZVRvSURNYXAoKSk7CiAgICAgICAgICAgICB9LCAvUmVwb3NpdG9yeSBncm91cCAic29tZS1ncm91
cCIgYW4gaW52YWxpZCByZXBvc2l0b3J5ICJpT1MiLyk7CiAgICAgICAgICAgICBhc3NlcnQudGhy
b3dzKCgpID0+IHsKICAgICAgICAgICAgICAgICBjb25zdCBjb25maWcgPSBzbWFsbENvbmZpZ3Vy
YXRpb24oKTsKQEAgLTgxOCw3ICs4MzEsNyBAQCBkZXNjcmliZSgnQnVpbGRib3RTeW5jZXInLCAo
KSA9PiB7CiAgICAgICAgICAgICAgICAgICAgIHRlc3RQcm9wZXJ0aWVzOiB7J3drJzoge3Jldmlz
aW9uOiAnV2ViS2l0J30sICdpbnN0YWxsLXJvb3RzJzogeydyb290cyc6IHt9fX0sCiAgICAgICAg
ICAgICAgICAgICAgIGJ1aWxkUHJvcGVydGllczogeydvcyc6IHtyZXZpc2lvbjogJ2lPUyd9fSwK
ICAgICAgICAgICAgICAgICAgICAgYWNjZXB0c1Jvb3RzOiB0cnVlfX07Ci0gICAgICAgICAgICAg
ICAgQnVpbGRib3RTeW5jZXIuX2xvYWRDb25maWcoTW9ja1JlbW90ZUFQSSwgY29uZmlnKTsKKyAg
ICAgICAgICAgICAgICBCdWlsZGJvdFN5bmNlci5fbG9hZENvbmZpZyhNb2NrUmVtb3RlQVBJLCBj
b25maWcsIGJ1aWxkZXJOYW1lVG9JRE1hcCgpKTsKICAgICAgICAgICAgIH0sIC9SZXBvc2l0b3J5
IGdyb3VwICJzb21lLWdyb3VwIiBhbiBpbnZhbGlkIHJlcG9zaXRvcnkgImlPUyIvKTsKICAgICAg
ICAgfSk7CiAKQEAgLTgzMCw3ICs4NDMsNyBAQCBkZXNjcmliZSgnQnVpbGRib3RTeW5jZXInLCAo
KSA9PiB7CiAgICAgICAgICAgICAgICAgICAgIHRlc3RQcm9wZXJ0aWVzOiB7J3drJzoge3Jldmlz
aW9uOiAnV2ViS2l0J30sICdpb3MnOiB7cmV2aXNpb246ICdpT1MnfSwgJ2luc3RhbGwtcm9vdHMn
OiB7J3Jvb3RzJzoge319fSwKICAgICAgICAgICAgICAgICAgICAgYnVpbGRQcm9wZXJ0aWVzOiB7
J3drJzoge3JldmlzaW9uOiAnV2ViS2l0J30sICdpb3MnOiB7cmV2aXNpb246ICdpT1MnfSwgJ3dr
LXBhdGNoJzoge3BhdGNoOiAnaU9TJ319LAogICAgICAgICAgICAgICAgICAgICBhY2NlcHRzUm9v
dHM6IHRydWV9fTsKLSAgICAgICAgICAgICAgICBCdWlsZGJvdFN5bmNlci5fbG9hZENvbmZpZyhN
b2NrUmVtb3RlQVBJLCBjb25maWcpOworICAgICAgICAgICAgICAgIEJ1aWxkYm90U3luY2VyLl9s
b2FkQ29uZmlnKE1vY2tSZW1vdGVBUEksIGNvbmZpZywgYnVpbGRlck5hbWVUb0lETWFwKCkpOwog
ICAgICAgICAgICAgfSwgL1JlcG9zaXRvcnkgZ3JvdXAgInNvbWUtZ3JvdXAiIHNwZWNpZmllcyBh
IHBhdGNoIGZvciAiaU9TIiBidXQgaXQgZG9lcyBub3QgYWNjZXB0IGEgcGF0Y2gvKTsKICAgICAg
ICAgfSk7CiAKQEAgLTg0Miw3ICs4NTUsNyBAQCBkZXNjcmliZSgnQnVpbGRib3RTeW5jZXInLCAo
KSA9PiB7CiAgICAgICAgICAgICAgICAgICAgIHRlc3RQcm9wZXJ0aWVzOiB7J3drJzoge3Jldmlz
aW9uOiAnV2ViS2l0J30sICdpbnN0YWxsLXJvb3RzJzogeydyb290cyc6IHt9fX0sCiAgICAgICAg
ICAgICAgICAgICAgIGJ1aWxkUHJvcGVydGllczogeyd3ay1wYXRjaCc6IHtwYXRjaDogJ1dlYktp
dCd9fSwKICAgICAgICAgICAgICAgICAgICAgYWNjZXB0c1Jvb3RzOiB0cnVlfX07Ci0gICAgICAg
ICAgICAgICAgQnVpbGRib3RTeW5jZXIuX2xvYWRDb25maWcoTW9ja1JlbW90ZUFQSSwgY29uZmln
KTsKKyAgICAgICAgICAgICAgICBCdWlsZGJvdFN5bmNlci5fbG9hZENvbmZpZyhNb2NrUmVtb3Rl
QVBJLCBjb25maWcsIGJ1aWxkZXJOYW1lVG9JRE1hcCgpKTsKICAgICAgICAgICAgIH0sIC9SZXBv
c2l0b3J5IGdyb3VwICJzb21lLWdyb3VwIiBzcGVjaWZpZXMgYSBwYXRjaCBmb3IgIldlYktpdCIg
YnV0IGRvZXMgbm90IHNwZWNpZnkgYSByZXZpc2lvbi8pOwogICAgICAgICB9KTsKIApAQCAtODUw
LDcgKzg2Myw3IEBAIGRlc2NyaWJlKCdCdWlsZGJvdFN5bmNlcicsICgpID0+IHsKICAgICAgICAg
ICAgIGFzc2VydC50aHJvd3MoKCkgPT4gewogICAgICAgICAgICAgICAgIGNvbnN0IGNvbmZpZyA9
IHNtYWxsQ29uZmlndXJhdGlvbigpOwogICAgICAgICAgICAgICAgIGNvbmZpZy5yZXBvc2l0b3J5
R3JvdXBzID0geydzb21lLWdyb3VwJzogeydyZXBvc2l0b3JpZXMnOiB7J1dlYktpdCc6IHt9fSwg
dGVzdFByb3BlcnRpZXM6IHt9fX07Ci0gICAgICAgICAgICAgICAgQnVpbGRib3RTeW5jZXIuX2xv
YWRDb25maWcoTW9ja1JlbW90ZUFQSSwgY29uZmlnKTsKKyAgICAgICAgICAgICAgICBCdWlsZGJv
dFN5bmNlci5fbG9hZENvbmZpZyhNb2NrUmVtb3RlQVBJLCBjb25maWcsIGJ1aWxkZXJOYW1lVG9J
RE1hcCgpKTsKICAgICAgICAgICAgIH0sIC9SZXBvc2l0b3J5IGdyb3VwICJzb21lLWdyb3VwIiBk
b2VzIG5vdCB1c2Ugc29tZSBvZiB0aGUgcmVwb3NpdG9yaWVzIGxpc3RlZCBpbiB0ZXN0aW5nLyk7
CiAgICAgICAgICAgICBhc3NlcnQudGhyb3dzKCgpID0+IHsKICAgICAgICAgICAgICAgICBjb25z
dCBjb25maWcgPSBzbWFsbENvbmZpZ3VyYXRpb24oKTsKQEAgLTg1OSw3ICs4NzIsNyBAQCBkZXNj
cmliZSgnQnVpbGRib3RTeW5jZXInLCAoKSA9PiB7CiAgICAgICAgICAgICAgICAgICAgIHRlc3RQ
cm9wZXJ0aWVzOiB7J3drJzoge3JldmlzaW9uOiAnV2ViS2l0J30sICdpbnN0YWxsLXJvb3RzJzog
eydyb290cyc6IHt9fX0sCiAgICAgICAgICAgICAgICAgICAgIGJ1aWxkUHJvcGVydGllczoge30s
CiAgICAgICAgICAgICAgICAgICAgIGFjY2VwdHNSb290czogdHJ1ZX19OwotICAgICAgICAgICAg
ICAgIEJ1aWxkYm90U3luY2VyLl9sb2FkQ29uZmlnKE1vY2tSZW1vdGVBUEksIGNvbmZpZyk7Cisg
ICAgICAgICAgICAgICAgQnVpbGRib3RTeW5jZXIuX2xvYWRDb25maWcoTW9ja1JlbW90ZUFQSSwg
Y29uZmlnLCBidWlsZGVyTmFtZVRvSURNYXAoKSk7CiAgICAgICAgICAgICB9LCAvUmVwb3NpdG9y
eSBncm91cCAic29tZS1ncm91cCIgZG9lcyBub3QgdXNlIHNvbWUgb2YgdGhlIHJlcG9zaXRvcmll
cyBsaXN0ZWQgaW4gYnVpbGRpbmcgYSBwYXRjaC8pOwogICAgICAgICB9KTsKIApAQCAtODY3LDEy
ICs4ODAsMTIgQEAgZGVzY3JpYmUoJ0J1aWxkYm90U3luY2VyJywgKCkgPT4gewogICAgICAgICAg
ICAgYXNzZXJ0LnRocm93cygoKSA9PiB7CiAgICAgICAgICAgICAgICAgY29uc3QgY29uZmlnID0g
c21hbGxDb25maWd1cmF0aW9uKCk7CiAgICAgICAgICAgICAgICAgY29uZmlnLnJlcG9zaXRvcnlH
cm91cHMgPSB7J3NvbWUtZ3JvdXAnOiB7J3JlcG9zaXRvcmllcyc6IHsnV2ViS2l0Jzoge319LCAn
dGVzdFByb3BlcnRpZXMnOiB7J3dlYmtpdCc6IHsncmV2aXNpb24nOiAnV2ViS2l0J319LCBhY2Nl
cHRzUm9vdHM6IDF9fTsKLSAgICAgICAgICAgICAgICBCdWlsZGJvdFN5bmNlci5fbG9hZENvbmZp
ZyhNb2NrUmVtb3RlQVBJLCBjb25maWcpOworICAgICAgICAgICAgICAgIEJ1aWxkYm90U3luY2Vy
Ll9sb2FkQ29uZmlnKE1vY2tSZW1vdGVBUEksIGNvbmZpZywgYnVpbGRlck5hbWVUb0lETWFwKCkp
OwogICAgICAgICAgICAgfSwgL1JlcG9zaXRvcnkgZ3JvdXAgInNvbWUtZ3JvdXAiIGNvbnRhaW5z
IGludmFsaWQgYWNjZXB0c1Jvb3RzIHZhbHVlOi8pOwogICAgICAgICAgICAgYXNzZXJ0LnRocm93
cygoKSA9PiB7CiAgICAgICAgICAgICAgICAgY29uc3QgY29uZmlnID0gc21hbGxDb25maWd1cmF0
aW9uKCk7CiAgICAgICAgICAgICAgICAgY29uZmlnLnJlcG9zaXRvcnlHcm91cHMgPSB7J3NvbWUt
Z3JvdXAnOiB7J3JlcG9zaXRvcmllcyc6IHsnV2ViS2l0Jzoge319LCAndGVzdFByb3BlcnRpZXMn
OiB7J3dlYmtpdCc6IHsncmV2aXNpb24nOiAnV2ViS2l0J319LCBhY2NlcHRzUm9vdHM6IFtdfX07
Ci0gICAgICAgICAgICAgICAgQnVpbGRib3RTeW5jZXIuX2xvYWRDb25maWcoTW9ja1JlbW90ZUFQ
SSwgY29uZmlnKTsKKyAgICAgICAgICAgICAgICBCdWlsZGJvdFN5bmNlci5fbG9hZENvbmZpZyhN
b2NrUmVtb3RlQVBJLCBjb25maWcsIGJ1aWxkZXJOYW1lVG9JRE1hcCgpKTsKICAgICAgICAgICAg
IH0sIC9SZXBvc2l0b3J5IGdyb3VwICJzb21lLWdyb3VwIiBjb250YWlucyBpbnZhbGlkIGFjY2Vw
dHNSb290cyB2YWx1ZTovKTsKICAgICAgICAgfSk7CiAKQEAgLTg4MCwxMiArODkzLDEyIEBAIGRl
c2NyaWJlKCdCdWlsZGJvdFN5bmNlcicsICgpID0+IHsKICAgICAgICAgICAgIGFzc2VydC50aHJv
d3MoKCkgPT4gewogICAgICAgICAgICAgICAgIGNvbnN0IGNvbmZpZyA9IHNtYWxsQ29uZmlndXJh
dGlvbigpOwogICAgICAgICAgICAgICAgIGNvbmZpZy5yZXBvc2l0b3J5R3JvdXBzID0geydzb21l
LWdyb3VwJzogeydyZXBvc2l0b3JpZXMnOiB7J1dlYktpdCc6IHthY2NlcHRzUGF0Y2g6IDF9fSwg
J3Rlc3RQcm9wZXJ0aWVzJzogeyd3ZWJraXQnOiB7J3JldmlzaW9uJzogJ1dlYktpdCd9fX19Owot
ICAgICAgICAgICAgICAgIEJ1aWxkYm90U3luY2VyLl9sb2FkQ29uZmlnKE1vY2tSZW1vdGVBUEks
IGNvbmZpZyk7CisgICAgICAgICAgICAgICAgQnVpbGRib3RTeW5jZXIuX2xvYWRDb25maWcoTW9j
a1JlbW90ZUFQSSwgY29uZmlnLCBidWlsZGVyTmFtZVRvSURNYXAoKSk7CiAgICAgICAgICAgICB9
LCAvIldlYktpdCIgY29udGFpbnMgaW52YWxpZCBhY2NlcHRzUGF0Y2ggdmFsdWU6Lyk7CiAgICAg
ICAgICAgICBhc3NlcnQudGhyb3dzKCgpID0+IHsKICAgICAgICAgICAgICAgICBjb25zdCBjb25m
aWcgPSBzbWFsbENvbmZpZ3VyYXRpb24oKTsKICAgICAgICAgICAgICAgICBjb25maWcucmVwb3Np
dG9yeUdyb3VwcyA9IHsnc29tZS1ncm91cCc6IHsncmVwb3NpdG9yaWVzJzogeydXZWJLaXQnOiB7
YWNjZXB0c1BhdGNoOiBbXX19LCAndGVzdFByb3BlcnRpZXMnOiB7J3dlYmtpdCc6IHsncmV2aXNp
b24nOiAnV2ViS2l0J319fX07Ci0gICAgICAgICAgICAgICAgQnVpbGRib3RTeW5jZXIuX2xvYWRD
b25maWcoTW9ja1JlbW90ZUFQSSwgY29uZmlnKTsKKyAgICAgICAgICAgICAgICBCdWlsZGJvdFN5
bmNlci5fbG9hZENvbmZpZyhNb2NrUmVtb3RlQVBJLCBjb25maWcsIGJ1aWxkZXJOYW1lVG9JRE1h
cCgpKTsKICAgICAgICAgICAgIH0sIC8iV2ViS2l0IiBjb250YWlucyBpbnZhbGlkIGFjY2VwdHNQ
YXRjaCB2YWx1ZTovKTsKICAgICAgICAgfSk7CiAKQEAgLTg5NCw3ICs5MDcsNyBAQCBkZXNjcmli
ZSgnQnVpbGRib3RTeW5jZXInLCAoKSA9PiB7CiAgICAgICAgICAgICAgICAgY29uc3QgY29uZmln
ID0gc21hbGxDb25maWd1cmF0aW9uKCk7CiAgICAgICAgICAgICAgICAgY29uZmlnLnJlcG9zaXRv
cnlHcm91cHMgPSB7J3NvbWUtZ3JvdXAnOiB7J3JlcG9zaXRvcmllcyc6IHsnV2ViS2l0Jzoge2Fj
Y2VwdHNQYXRjaDogdHJ1ZX19LAogICAgICAgICAgICAgICAgICAgICAndGVzdFByb3BlcnRpZXMn
OiB7J3dlYmtpdCc6IHsncmV2aXNpb24nOiAnV2ViS2l0J30sICd3ZWJraXQtcGF0Y2gnOiB7J3Bh
dGNoJzogJ1dlYktpdCd9fX19OwotICAgICAgICAgICAgICAgIEJ1aWxkYm90U3luY2VyLl9sb2Fk
Q29uZmlnKE1vY2tSZW1vdGVBUEksIGNvbmZpZyk7CisgICAgICAgICAgICAgICAgQnVpbGRib3RT
eW5jZXIuX2xvYWRDb25maWcoTW9ja1JlbW90ZUFQSSwgY29uZmlnLCBidWlsZGVyTmFtZVRvSURN
YXAoKSk7CiAgICAgICAgICAgICB9LCAvUmVwb3NpdG9yeSBncm91cCAic29tZS1ncm91cCIgc3Bl
Y2lmaWVzIGEgcGF0Y2ggZm9yICJXZWJLaXQiIGluIHRoZSBwcm9wZXJ0aWVzIGZvciB0ZXN0aW5n
Lyk7CiAgICAgICAgIH0pOwogCkBAIC05MDYsNyArOTE5LDcgQEAgZGVzY3JpYmUoJ0J1aWxkYm90
U3luY2VyJywgKCkgPT4gewogICAgICAgICAgICAgICAgICAgICB0ZXN0UHJvcGVydGllczogeyd3
ZWJraXQnOiB7cmV2aXNpb246ICdXZWJLaXQnfSwgJ2luc3RhbGwtcm9vdHMnOiB7J3Jvb3RzJzog
e319fSwKICAgICAgICAgICAgICAgICAgICAgYnVpbGRQcm9wZXJ0aWVzOiB7J3dlYmtpdCc6IHty
ZXZpc2lvbjogJ1dlYktpdCd9LCAncGF0Y2gnOiB7cGF0Y2g6ICdXZWJLaXQnfSwgJ2luc3RhbGwt
cm9vdHMnOiB7cm9vdHM6IHt9fX0sCiAgICAgICAgICAgICAgICAgICAgIGFjY2VwdHNSb290czog
dHJ1ZX19OwotICAgICAgICAgICAgICAgIEJ1aWxkYm90U3luY2VyLl9sb2FkQ29uZmlnKE1vY2tS
ZW1vdGVBUEksIGNvbmZpZyk7CisgICAgICAgICAgICAgICAgQnVpbGRib3RTeW5jZXIuX2xvYWRD
b25maWcoTW9ja1JlbW90ZUFQSSwgY29uZmlnLCBidWlsZGVyTmFtZVRvSURNYXAoKSk7CiAgICAg
ICAgICAgICB9LCAvUmVwb3NpdG9yeSBncm91cCAic29tZS1ncm91cCIgc3BlY2lmaWVzIHJvb3Rz
IGluIHRoZSBwcm9wZXJ0aWVzIGZvciBidWlsZGluZy8pOwogICAgICAgICB9KTsKIApAQCAtOTE2
LDcgKzkyOSw3IEBAIGRlc2NyaWJlKCdCdWlsZGJvdFN5bmNlcicsICgpID0+IHsKICAgICAgICAg
ICAgICAgICBjb25maWcucmVwb3NpdG9yeUdyb3VwcyA9IHsnc29tZS1ncm91cCc6IHsKICAgICAg
ICAgICAgICAgICAgICAgcmVwb3NpdG9yaWVzOiB7J1dlYktpdCc6IHt9fSwKICAgICAgICAgICAg
ICAgICAgICAgdGVzdFByb3BlcnRpZXM6IHsnd2Via2l0JzogeydyZXZpc2lvbic6ICdXZWJLaXQn
fSwgJ2luc3RhbGwtcm9vdHMnOiB7J3Jvb3RzJzoge319fX19OwotICAgICAgICAgICAgICAgIEJ1
aWxkYm90U3luY2VyLl9sb2FkQ29uZmlnKE1vY2tSZW1vdGVBUEksIGNvbmZpZyk7CisgICAgICAg
ICAgICAgICAgQnVpbGRib3RTeW5jZXIuX2xvYWRDb25maWcoTW9ja1JlbW90ZUFQSSwgY29uZmln
LCBidWlsZGVyTmFtZVRvSURNYXAoKSk7CiAgICAgICAgICAgICB9LCAvUmVwb3NpdG9yeSBncm91
cCAic29tZS1ncm91cCIgc3BlY2lmaWVzIHJvb3RzIGluIGEgcHJvcGVydHkgYnV0IGl0IGRvZXMg
bm90IGFjY2VwdCByb290cy8pOwogICAgICAgICB9KTsKIApAQCAtOTI3LDcgKzk0MCw3IEBAIGRl
c2NyaWJlKCdCdWlsZGJvdFN5bmNlcicsICgpID0+IHsKICAgICAgICAgICAgICAgICAgICAgcmVw
b3NpdG9yaWVzOiB7J1dlYktpdCc6IHthY2NlcHRzUGF0Y2g6IHRydWV9fSwKICAgICAgICAgICAg
ICAgICAgICAgdGVzdFByb3BlcnRpZXM6IHsnd2Via2l0Jzoge3JldmlzaW9uOiAnV2ViS2l0J319
LAogICAgICAgICAgICAgICAgICAgICBidWlsZFByb3BlcnRpZXM6IHsnd2Via2l0Jzoge3Jldmlz
aW9uOiAnV2ViS2l0J30sICd3ZWJraXQtcGF0Y2gnOiB7cGF0Y2g6ICdXZWJLaXQnfX19fTsKLSAg
ICAgICAgICAgICAgICBCdWlsZGJvdFN5bmNlci5fbG9hZENvbmZpZyhNb2NrUmVtb3RlQVBJLCBj
b25maWcpOworICAgICAgICAgICAgICAgIEJ1aWxkYm90U3luY2VyLl9sb2FkQ29uZmlnKE1vY2tS
ZW1vdGVBUEksIGNvbmZpZywgYnVpbGRlck5hbWVUb0lETWFwKCkpOwogICAgICAgICAgICAgfSwg
L1JlcG9zaXRvcnkgZ3JvdXAgInNvbWUtZ3JvdXAiIHNwZWNpZmllcyB0aGUgcHJvcGVydGllcyBm
b3IgYnVpbGRpbmcgYnV0IGRvZXMgbm90IGFjY2VwdCByb290cyBpbiB0ZXN0aW5nLyk7CiAgICAg
ICAgIH0pOwogCkBAIC05MzksNyArOTUyLDcgQEAgZGVzY3JpYmUoJ0J1aWxkYm90U3luY2VyJywg
KCkgPT4gewogICAgICAgICAgICAgICAgICAgICB0ZXN0UHJvcGVydGllczogeyd3ZWJraXQnOiB7
J3JldmlzaW9uJzogJ1dlYktpdCd9LCAnaW5zdGFsbC1yb290cyc6IHsncm9vdHMnOiB7fX19LAog
ICAgICAgICAgICAgICAgICAgICBidWlsZFByb3BlcnRpZXM6IHsnd2Via2l0JzogeydyZXZpc2lv
bic6ICdXZWJLaXQnfX0sCiAgICAgICAgICAgICAgICAgICAgIGFjY2VwdHNSb290czogdHJ1ZX19
OwotICAgICAgICAgICAgICAgIEJ1aWxkYm90U3luY2VyLl9sb2FkQ29uZmlnKE1vY2tSZW1vdGVB
UEksIGNvbmZpZyk7CisgICAgICAgICAgICAgICAgQnVpbGRib3RTeW5jZXIuX2xvYWRDb25maWco
TW9ja1JlbW90ZUFQSSwgY29uZmlnLCBidWlsZGVyTmFtZVRvSURNYXAoKSk7CiAgICAgICAgICAg
ICB9LCAvUmVwb3NpdG9yeSBncm91cCAic29tZS1ncm91cCIgc3BlY2lmaWVzIHRoZSBwcm9wZXJ0
aWVzIGZvciBidWlsZGluZyBidXQgZG9lcyBub3QgYWNjZXB0IGFueSBwYXRjaGVzLyk7CiAgICAg
ICAgIH0pOwogCkBAIC05NTEsMjEgKzk2NCwyMSBAQCBkZXNjcmliZSgnQnVpbGRib3RTeW5jZXIn
LCAoKSA9PiB7CiAgICAgICAgICAgICAgICAgICAgIHRlc3RQcm9wZXJ0aWVzOiB7J3dlYmtpdCc6
IHtyZXZpc2lvbjogJ1dlYktpdCd9fSwKICAgICAgICAgICAgICAgICAgICAgYnVpbGRQcm9wZXJ0
aWVzOiB7J3dlYmtpdCc6IHtyZXZpc2lvbjogJ1dlYktpdCd9LCAnd2Via2l0LXBhdGNoJzoge3Bh
dGNoOiAnV2ViS2l0J319LAogICAgICAgICAgICAgICAgICAgICBhY2NlcHRzUm9vdHM6IHRydWV9
fTsKLSAgICAgICAgICAgICAgICBCdWlsZGJvdFN5bmNlci5fbG9hZENvbmZpZyhNb2NrUmVtb3Rl
QVBJLCBjb25maWcpOworICAgICAgICAgICAgICAgIEJ1aWxkYm90U3luY2VyLl9sb2FkQ29uZmln
KE1vY2tSZW1vdGVBUEksIGNvbmZpZywgYnVpbGRlck5hbWVUb0lETWFwKCkpOwogICAgICAgICAg
ICAgfSwgL1JlcG9zaXRvcnkgZ3JvdXAgInNvbWUtZ3JvdXAiIGFjY2VwdHMgcm9vdHMgYnV0IGRv
ZXMgbm90IHNwZWNpZnkgcm9vdHMgaW4gdGVzdFByb3BlcnRpZXMvKTsKICAgICAgICAgfSk7CiAg
ICAgfSk7CiAKICAgICBkZXNjcmliZSgnX3Byb3BlcnRpZXNGb3JCdWlsZFJlcXVlc3QnLCAoKSA9
PiB7CiAgICAgICAgIGl0KCdzaG91bGQgaW5jbHVkZSBhbGwgcHJvcGVydGllcyBzcGVjaWZpZWQg
aW4gYSBnaXZlbiBjb25maWd1cmF0aW9uJywgKCkgPT4gewotICAgICAgICAgICAgY29uc3Qgc3lu
Y2VycyA9IEJ1aWxkYm90U3luY2VyLl9sb2FkQ29uZmlnKFJlbW90ZUFQSSwgc2FtcGxlaU9TQ29u
ZmlnKCkpOworICAgICAgICAgICAgY29uc3Qgc3luY2VycyA9IEJ1aWxkYm90U3luY2VyLl9sb2Fk
Q29uZmlnKFJlbW90ZUFQSSwgc2FtcGxlaU9TQ29uZmlnKCksIGJ1aWxkZXJOYW1lVG9JRE1hcCgp
KTsKICAgICAgICAgICAgIGNvbnN0IHJlcXVlc3QgPSBjcmVhdGVTYW1wbGVCdWlsZFJlcXVlc3Qo
TW9ja01vZGVscy5pcGhvbmUsIE1vY2tNb2RlbHMuc3BlZWRvbWV0ZXIpOwogICAgICAgICAgICAg
Y29uc3QgcHJvcGVydGllcyA9IHN5bmNlcnNbMF0uX3Byb3BlcnRpZXNGb3JCdWlsZFJlcXVlc3Qo
cmVxdWVzdCwgW3JlcXVlc3RdKTsKICAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwoT2JqZWN0
LmtleXMocHJvcGVydGllcykuc29ydCgpLCBbJ2J1aWxkX3JlcXVlc3RfaWQnLCAnZGVzaXJlZF9p
bWFnZScsICdmb3JjZXNjaGVkdWxlcicsICdvcGVuc291cmNlJywgJ3Rlc3RfbmFtZSddKTsKICAg
ICAgICAgfSk7CiAKICAgICAgICAgaXQoJ3Nob3VsZCBwcmVzZXJ2ZSBub24tcGFyYW1ldHJpYyBw
cm9wZXJ0eSB2YWx1ZXMnLCAoKSA9PiB7Ci0gICAgICAgICAgICBjb25zdCBzeW5jZXJzID0gQnVp
bGRib3RTeW5jZXIuX2xvYWRDb25maWcoUmVtb3RlQVBJLCBzYW1wbGVpT1NDb25maWcoKSk7Cisg
ICAgICAgICAgICBjb25zdCBzeW5jZXJzID0gQnVpbGRib3RTeW5jZXIuX2xvYWRDb25maWcoUmVt
b3RlQVBJLCBzYW1wbGVpT1NDb25maWcoKSwgYnVpbGRlck5hbWVUb0lETWFwKCkpOwogICAgICAg
ICAgICAgbGV0IHJlcXVlc3QgPSBjcmVhdGVTYW1wbGVCdWlsZFJlcXVlc3QoTW9ja01vZGVscy5p
cGhvbmUsIE1vY2tNb2RlbHMuc3BlZWRvbWV0ZXIpOwogICAgICAgICAgICAgbGV0IHByb3BlcnRp
ZXMgPSBzeW5jZXJzWzBdLl9wcm9wZXJ0aWVzRm9yQnVpbGRSZXF1ZXN0KHJlcXVlc3QsIFtyZXF1
ZXN0XSk7CiAgICAgICAgICAgICBhc3NlcnQuZXF1YWwocHJvcGVydGllc1sndGVzdF9uYW1lJ10s
ICdzcGVlZG9tZXRlcicpOwpAQCAtOTc4LDE0ICs5OTEsMTQgQEAgZGVzY3JpYmUoJ0J1aWxkYm90
U3luY2VyJywgKCkgPT4gewogICAgICAgICB9KTsKIAogICAgICAgICBpdCgnc2hvdWxkIHJlc29s
dmUgInJvb3QiJywgKCkgPT4gewotICAgICAgICAgICAgY29uc3Qgc3luY2VycyA9IEJ1aWxkYm90
U3luY2VyLl9sb2FkQ29uZmlnKFJlbW90ZUFQSSwgc2FtcGxlaU9TQ29uZmlnKCkpOworICAgICAg
ICAgICAgY29uc3Qgc3luY2VycyA9IEJ1aWxkYm90U3luY2VyLl9sb2FkQ29uZmlnKFJlbW90ZUFQ
SSwgc2FtcGxlaU9TQ29uZmlnKCksIGJ1aWxkZXJOYW1lVG9JRE1hcCgpKTsKICAgICAgICAgICAg
IGNvbnN0IHJlcXVlc3QgPSBjcmVhdGVTYW1wbGVCdWlsZFJlcXVlc3QoTW9ja01vZGVscy5pcGhv
bmUsIE1vY2tNb2RlbHMuc3BlZWRvbWV0ZXIpOwogICAgICAgICAgICAgY29uc3QgcHJvcGVydGll
cyA9IHN5bmNlcnNbMF0uX3Byb3BlcnRpZXNGb3JCdWlsZFJlcXVlc3QocmVxdWVzdCwgW3JlcXVl
c3RdKTsKICAgICAgICAgICAgIGFzc2VydC5lcXVhbChwcm9wZXJ0aWVzWydkZXNpcmVkX2ltYWdl
J10sICcxM0E0NTInKTsKICAgICAgICAgfSk7CiAKICAgICAgICAgaXQoJ3Nob3VsZCByZXNvbHZl
ICJyZXZpc2lvbiInLCAoKSA9PiB7Ci0gICAgICAgICAgICBjb25zdCBzeW5jZXJzID0gQnVpbGRi
b3RTeW5jZXIuX2xvYWRDb25maWcoUmVtb3RlQVBJLCBzYW1wbGVpT1NDb25maWcoKSk7CisgICAg
ICAgICAgICBjb25zdCBzeW5jZXJzID0gQnVpbGRib3RTeW5jZXIuX2xvYWRDb25maWcoUmVtb3Rl
QVBJLCBzYW1wbGVpT1NDb25maWcoKSwgYnVpbGRlck5hbWVUb0lETWFwKCkpOwogICAgICAgICAg
ICAgY29uc3QgcmVxdWVzdCA9IGNyZWF0ZVNhbXBsZUJ1aWxkUmVxdWVzdChNb2NrTW9kZWxzLmlw
aG9uZSwgTW9ja01vZGVscy5zcGVlZG9tZXRlcik7CiAgICAgICAgICAgICBjb25zdCBwcm9wZXJ0
aWVzID0gc3luY2Vyc1swXS5fcHJvcGVydGllc0ZvckJ1aWxkUmVxdWVzdChyZXF1ZXN0LCBbcmVx
dWVzdF0pOwogICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHByb3BlcnRpZXNbJ29wZW5zb3VyY2Un
XSwgJzE5NzQ2MycpOwpAQCAtMTAwOSw3ICsxMDIyLDcgQEAgZGVzY3JpYmUoJ0J1aWxkYm90U3lu
Y2VyJywgKCkgPT4gewogICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgICAgJ2FjY2Vw
dHNSb290cyc6IHRydWUsCiAgICAgICAgICAgICB9OwotICAgICAgICAgICAgY29uc3Qgc3luY2Vy
cyA9IEJ1aWxkYm90U3luY2VyLl9sb2FkQ29uZmlnKFJlbW90ZUFQSSwgY29uZmlnKTsKKyAgICAg
ICAgICAgIGNvbnN0IHN5bmNlcnMgPSBCdWlsZGJvdFN5bmNlci5fbG9hZENvbmZpZyhSZW1vdGVB
UEksIGNvbmZpZywgYnVpbGRlck5hbWVUb0lETWFwKCkpOwogICAgICAgICAgICAgY29uc3QgcmVx
dWVzdCA9IGNyZWF0ZVNhbXBsZUJ1aWxkUmVxdWVzdFdpdGhQYXRjaChNb2NrTW9kZWxzLmlwaG9u
ZSwgbnVsbCwgLTEpOwogICAgICAgICAgICAgY29uc3QgcHJvcGVydGllcyA9IHN5bmNlcnNbMl0u
X3Byb3BlcnRpZXNGb3JCdWlsZFJlcXVlc3QocmVxdWVzdCwgW3JlcXVlc3RdKTsKICAgICAgICAg
ICAgIGFzc2VydC5lcXVhbChwcm9wZXJ0aWVzWyd3ZWJraXQnXSwgJzE5NzQ2MycpOwpAQCAtMTAz
MSw3ICsxMDQ0LDcgQEAgZGVzY3JpYmUoJ0J1aWxkYm90U3luY2VyJywgKCkgPT4gewogICAgICAg
ICAgICAgICAgIH0sCiAgICAgICAgICAgICAgICAgJ2FjY2VwdHNSb290cyc6IHRydWUsCiAgICAg
ICAgICAgICB9OwotICAgICAgICAgICAgY29uc3Qgc3luY2VycyA9IEJ1aWxkYm90U3luY2VyLl9s
b2FkQ29uZmlnKFJlbW90ZUFQSSwgY29uZmlnKTsKKyAgICAgICAgICAgIGNvbnN0IHN5bmNlcnMg
PSBCdWlsZGJvdFN5bmNlci5fbG9hZENvbmZpZyhSZW1vdGVBUEksIGNvbmZpZywgYnVpbGRlck5h
bWVUb0lETWFwKCkpOwogICAgICAgICAgICAgY29uc3QgcmVxdWVzdFRvQnVpbGQgPSBjcmVhdGVT
YW1wbGVCdWlsZFJlcXVlc3RXaXRoUGF0Y2goTW9ja01vZGVscy5pcGhvbmUsIG51bGwsIC0xKTsK
ICAgICAgICAgICAgIGNvbnN0IHJlcXVlc3RUb1Rlc3QgPSBjcmVhdGVTYW1wbGVCdWlsZFJlcXVl
c3RXaXRoUGF0Y2goTW9ja01vZGVscy5pcGhvbmUsIE1vY2tNb2RlbHMuc3BlZWRvbWV0ZXIsIDAp
OwogICAgICAgICAgICAgY29uc3Qgb3RoZXJSZXF1ZXN0VG9UZXN0ID0gY3JlYXRlU2FtcGxlQnVp
bGRSZXF1ZXN0KE1vY2tNb2RlbHMuaXBob25lLCBNb2NrTW9kZWxzLnNwZWVkb21ldGVyKTsKQEAg
LTEwNzUsNyArMTA4OCw3IEBAIGRlc2NyaWJlKCdCdWlsZGJvdFN5bmNlcicsICgpID0+IHsKICAg
ICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgICAgICdhY2NlcHRzUm9vdHMnOiB0cnVlLAog
ICAgICAgICAgICAgfTsKLSAgICAgICAgICAgIGNvbnN0IHN5bmNlcnMgPSBCdWlsZGJvdFN5bmNl
ci5fbG9hZENvbmZpZyhSZW1vdGVBUEksIGNvbmZpZyk7CisgICAgICAgICAgICBjb25zdCBzeW5j
ZXJzID0gQnVpbGRib3RTeW5jZXIuX2xvYWRDb25maWcoUmVtb3RlQVBJLCBjb25maWcsIGJ1aWxk
ZXJOYW1lVG9JRE1hcCgpKTsKICAgICAgICAgICAgIGNvbnN0IHJlcXVlc3QgPSBjcmVhdGVTYW1w
bGVCdWlsZFJlcXVlc3RXaXRoT3duZWRDb21taXQoTW9ja01vZGVscy5pcGhvbmUsIG51bGwsIC0x
KTsKICAgICAgICAgICAgIGNvbnN0IHByb3BlcnRpZXMgPSBzeW5jZXJzWzJdLl9wcm9wZXJ0aWVz
Rm9yQnVpbGRSZXF1ZXN0KHJlcXVlc3QsIFtyZXF1ZXN0XSk7CiAgICAgICAgICAgICBhc3NlcnQu
ZXF1YWwocHJvcGVydGllc1snd2Via2l0J10sICcxOTc0NjMnKTsKQEAgLTExMDQsNyArMTExNyw3
IEBAIGRlc2NyaWJlKCdCdWlsZGJvdFN5bmNlcicsICgpID0+IHsKICAgICAgICAgICAgICAgICB9
LAogICAgICAgICAgICAgICAgICdhY2NlcHRzUm9vdHMnOiB0cnVlLAogICAgICAgICAgICAgfTsK
LSAgICAgICAgICAgIGNvbnN0IHN5bmNlcnMgPSBCdWlsZGJvdFN5bmNlci5fbG9hZENvbmZpZyhS
ZW1vdGVBUEksIGNvbmZpZyk7CisgICAgICAgICAgICBjb25zdCBzeW5jZXJzID0gQnVpbGRib3RT
eW5jZXIuX2xvYWRDb25maWcoUmVtb3RlQVBJLCBjb25maWcsIGJ1aWxkZXJOYW1lVG9JRE1hcCgp
KTsKICAgICAgICAgICAgIGNvbnN0IHJlcXVlc3QgPSBjcmVhdGVTYW1wbGVCdWlsZFJlcXVlc3RX
aXRoT3duZWRDb21taXRBbmRQYXRjaChNb2NrTW9kZWxzLmlwaG9uZSwgbnVsbCwgLTEpOwogICAg
ICAgICAgICAgY29uc3QgcHJvcGVydGllcyA9IHN5bmNlcnNbMl0uX3Byb3BlcnRpZXNGb3JCdWls
ZFJlcXVlc3QocmVxdWVzdCwgW3JlcXVlc3RdKTsKICAgICAgICAgICAgIGFzc2VydC5lcXVhbChw
cm9wZXJ0aWVzWyd3ZWJraXQnXSwgJzE5NzQ2MycpOwpAQCAtMTExNSw3ICsxMTI4LDcgQEAgZGVz
Y3JpYmUoJ0J1aWxkYm90U3luY2VyJywgKCkgPT4gewogICAgICAgICB9KTsKIAogICAgICAgICBp
dCgnc2hvdWxkIHNldCB0aGUgcHJvcGVydHkgZm9yIHRoZSBidWlsZCByZXF1ZXN0IGlkJywgKCkg
PT4gewotICAgICAgICAgICAgY29uc3Qgc3luY2VycyA9IEJ1aWxkYm90U3luY2VyLl9sb2FkQ29u
ZmlnKFJlbW90ZUFQSSwgc2FtcGxlaU9TQ29uZmlnKCkpOworICAgICAgICAgICAgY29uc3Qgc3lu
Y2VycyA9IEJ1aWxkYm90U3luY2VyLl9sb2FkQ29uZmlnKFJlbW90ZUFQSSwgc2FtcGxlaU9TQ29u
ZmlnKCksIGJ1aWxkZXJOYW1lVG9JRE1hcCgpKTsKICAgICAgICAgICAgIGNvbnN0IHJlcXVlc3Qg
PSBjcmVhdGVTYW1wbGVCdWlsZFJlcXVlc3QoTW9ja01vZGVscy5pcGhvbmUsIE1vY2tNb2RlbHMu
c3BlZWRvbWV0ZXIpOwogICAgICAgICAgICAgY29uc3QgcHJvcGVydGllcyA9IHN5bmNlcnNbMF0u
X3Byb3BlcnRpZXNGb3JCdWlsZFJlcXVlc3QocmVxdWVzdCwgW3JlcXVlc3RdKTsKICAgICAgICAg
ICAgIGFzc2VydC5lcXVhbChwcm9wZXJ0aWVzWydidWlsZF9yZXF1ZXN0X2lkJ10sIHJlcXVlc3Qu
aWQoKSk7CkBAIC0xMTI0LDcgKzExMzcsNyBAQCBkZXNjcmliZSgnQnVpbGRib3RTeW5jZXInLCAo
KSA9PiB7CiAKICAgICBkZXNjcmliZSgncHVsbEJ1aWxkYm90JywgKCkgPT4gewogICAgICAgICBp
dCgnc2hvdWxkIGZldGNoIHBlbmRpbmcgYnVpbGRzIGZyb20gdGhlIHJpZ2h0IFVSTCcsICgpID0+
IHsKLSAgICAgICAgICAgIGxldCBzeW5jZXIgPSBCdWlsZGJvdFN5bmNlci5fbG9hZENvbmZpZyhN
b2NrUmVtb3RlQVBJLCBzYW1wbGVpT1NDb25maWcoKSlbMV07CisgICAgICAgICAgICBsZXQgc3lu
Y2VyID0gQnVpbGRib3RTeW5jZXIuX2xvYWRDb25maWcoTW9ja1JlbW90ZUFQSSwgc2FtcGxlaU9T
Q29uZmlnKCksIGJ1aWxkZXJOYW1lVG9JRE1hcCgpKVsxXTsKICAgICAgICAgICAgIGFzc2VydC5l
cXVhbChzeW5jZXIuYnVpbGRlck5hbWUoKSwgJ0FCVGVzdC1pUGFkLVJ1bkJlbmNobWFyay1UZXN0
cycpOwogICAgICAgICAgICAgbGV0IGV4cGVjdGVkVVJMID0gJy9qc29uL2J1aWxkZXJzL0FCVGVz
dC1pUGFkLVJ1bkJlbmNobWFyay1UZXN0cy9wZW5kaW5nQnVpbGRzJzsKICAgICAgICAgICAgIGFz
c2VydC5lcXVhbChzeW5jZXIucGF0aEZvclBlbmRpbmdCdWlsZHNKU09OKCksIGV4cGVjdGVkVVJM
KTsKQEAgLTExMzQsNyArMTE0Nyw3IEBAIGRlc2NyaWJlKCdCdWlsZGJvdFN5bmNlcicsICgpID0+
IHsKICAgICAgICAgfSk7CiAKICAgICAgICAgaXQoJ3Nob3VsZCBmZXRjaCByZWNlbnQgYnVpbGRz
IG9uY2UgcGVuZGluZyBidWlsZHMgaGF2ZSBiZWVuIGZldGNoZWQnLCAoKSA9PiB7Ci0gICAgICAg
ICAgICBsZXQgc3luY2VyID0gQnVpbGRib3RTeW5jZXIuX2xvYWRDb25maWcoTW9ja1JlbW90ZUFQ
SSwgc2FtcGxlaU9TQ29uZmlnKCkpWzFdOworICAgICAgICAgICAgbGV0IHN5bmNlciA9IEJ1aWxk
Ym90U3luY2VyLl9sb2FkQ29uZmlnKE1vY2tSZW1vdGVBUEksIHNhbXBsZWlPU0NvbmZpZygpLCBi
dWlsZGVyTmFtZVRvSURNYXAoKSlbMV07CiAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoc3luY2Vy
LmJ1aWxkZXJOYW1lKCksICdBQlRlc3QtaVBhZC1SdW5CZW5jaG1hcmstVGVzdHMnKTsKIAogICAg
ICAgICAgICAgc3luY2VyLnB1bGxCdWlsZGJvdCgxKTsKQEAgLTExNDgsNyArMTE2MSw3IEBAIGRl
c2NyaWJlKCdCdWlsZGJvdFN5bmNlcicsICgpID0+IHsKICAgICAgICAgfSk7CiAKICAgICAgICAg
aXQoJ3Nob3VsZCBmZXRjaCB0aGUgcmlnaHQgbnVtYmVyIG9mIHJlY2VudCBidWlsZHMnLCAoKSA9
PiB7Ci0gICAgICAgICAgICBsZXQgc3luY2VyID0gQnVpbGRib3RTeW5jZXIuX2xvYWRDb25maWco
TW9ja1JlbW90ZUFQSSwgc2FtcGxlaU9TQ29uZmlnKCkpWzFdOworICAgICAgICAgICAgbGV0IHN5
bmNlciA9IEJ1aWxkYm90U3luY2VyLl9sb2FkQ29uZmlnKE1vY2tSZW1vdGVBUEksIHNhbXBsZWlP
U0NvbmZpZygpLCBidWlsZGVyTmFtZVRvSURNYXAoKSlbMV07CiAKICAgICAgICAgICAgIHN5bmNl
ci5wdWxsQnVpbGRib3QoMyk7CiAgICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVxdWVzdHMubGVu
Z3RoLCAxKTsKQEAgLTExNjEsNyArMTE3NCw3IEBAIGRlc2NyaWJlKCdCdWlsZGJvdFN5bmNlcics
ICgpID0+IHsKICAgICAgICAgfSk7CiAKICAgICAgICAgaXQoJ3Nob3VsZCBjcmVhdGUgQnVpbGRi
b3RCdWlsZEVudHJ5IGZvciBwZW5kaW5nIGJ1aWxkcycsICgpID0+IHsKLSAgICAgICAgICAgIGxl
dCBzeW5jZXIgPSBCdWlsZGJvdFN5bmNlci5fbG9hZENvbmZpZyhNb2NrUmVtb3RlQVBJLCBzYW1w
bGVpT1NDb25maWcoKSlbMV07CisgICAgICAgICAgICBsZXQgc3luY2VyID0gQnVpbGRib3RTeW5j
ZXIuX2xvYWRDb25maWcoTW9ja1JlbW90ZUFQSSwgc2FtcGxlaU9TQ29uZmlnKCksIGJ1aWxkZXJO
YW1lVG9JRE1hcCgpKVsxXTsKICAgICAgICAgICAgIGxldCBwcm9taXNlID0gc3luY2VyLnB1bGxC
dWlsZGJvdCgpOwogICAgICAgICAgICAgcmVxdWVzdHNbMF0ucmVzb2x2ZShbc2FtcGxlUGVuZGlu
Z0J1aWxkKCldKTsKICAgICAgICAgICAgIHJldHVybiBwcm9taXNlLnRoZW4oKGVudHJpZXMpID0+
IHsKQEAgLTExNzksNyArMTE5Miw3IEBAIGRlc2NyaWJlKCdCdWlsZGJvdFN5bmNlcicsICgpID0+
IHsKICAgICAgICAgfSk7CiAKICAgICAgICAgaXQoJ3Nob3VsZCBjcmVhdGUgQnVpbGRib3RCdWls
ZEVudHJ5IGZvciBpbi1wcm9ncmVzcyBidWlsZHMnLCAoKSA9PiB7Ci0gICAgICAgICAgICBsZXQg
c3luY2VyID0gQnVpbGRib3RTeW5jZXIuX2xvYWRDb25maWcoTW9ja1JlbW90ZUFQSSwgc2FtcGxl
aU9TQ29uZmlnKCkpWzFdOworICAgICAgICAgICAgbGV0IHN5bmNlciA9IEJ1aWxkYm90U3luY2Vy
Ll9sb2FkQ29uZmlnKE1vY2tSZW1vdGVBUEksIHNhbXBsZWlPU0NvbmZpZygpLCBidWlsZGVyTmFt
ZVRvSURNYXAoKSlbMV07CiAKICAgICAgICAgICAgIGxldCBwcm9taXNlID0gc3luY2VyLnB1bGxC
dWlsZGJvdCgxKTsKICAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXF1ZXN0cy5sZW5ndGgsIDEp
OwpAQCAtMTIwMyw3ICsxMjE2LDcgQEAgZGVzY3JpYmUoJ0J1aWxkYm90U3luY2VyJywgKCkgPT4g
ewogICAgICAgICB9KTsKIAogICAgICAgICBpdCgnc2hvdWxkIGNyZWF0ZSBCdWlsZGJvdEJ1aWxk
RW50cnkgZm9yIGZpbmlzaGVkIGJ1aWxkcycsICgpID0+IHsKLSAgICAgICAgICAgIGxldCBzeW5j
ZXIgPSBCdWlsZGJvdFN5bmNlci5fbG9hZENvbmZpZyhNb2NrUmVtb3RlQVBJLCBzYW1wbGVpT1ND
b25maWcoKSlbMV07CisgICAgICAgICAgICBsZXQgc3luY2VyID0gQnVpbGRib3RTeW5jZXIuX2xv
YWRDb25maWcoTW9ja1JlbW90ZUFQSSwgc2FtcGxlaU9TQ29uZmlnKCksIGJ1aWxkZXJOYW1lVG9J
RE1hcCgpKVsxXTsKIAogICAgICAgICAgICAgbGV0IHByb21pc2UgPSBzeW5jZXIucHVsbEJ1aWxk
Ym90KDEpOwogICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlcXVlc3RzLmxlbmd0aCwgMSk7CkBA
IC0xMjI3LDcgKzEyNDAsNyBAQCBkZXNjcmliZSgnQnVpbGRib3RTeW5jZXInLCAoKSA9PiB7CiAg
ICAgICAgIH0pOwogCiAgICAgICAgIGl0KCdzaG91bGQgY3JlYXRlIEJ1aWxkYm90QnVpbGRFbnRy
eSBmb3IgbWl4ZWQgcGVuZGluZywgaW4tcHJvZ3Jlc3MsIGZpbmlzaGVkLCBhbmQgbWlzc2luZyBi
dWlsZHMnLCAoKSA9PiB7Ci0gICAgICAgICAgICBsZXQgc3luY2VyID0gQnVpbGRib3RTeW5jZXIu
X2xvYWRDb25maWcoTW9ja1JlbW90ZUFQSSwgc2FtcGxlaU9TQ29uZmlnKCkpWzFdOworICAgICAg
ICAgICAgbGV0IHN5bmNlciA9IEJ1aWxkYm90U3luY2VyLl9sb2FkQ29uZmlnKE1vY2tSZW1vdGVB
UEksIHNhbXBsZWlPU0NvbmZpZygpLCBidWlsZGVyTmFtZVRvSURNYXAoKSlbMV07CiAKICAgICAg
ICAgICAgIGxldCBwcm9taXNlID0gc3luY2VyLnB1bGxCdWlsZGJvdCg1KTsKICAgICAgICAgICAg
IGFzc2VydC5lcXVhbChyZXF1ZXN0cy5sZW5ndGgsIDEpOwpAQCAtMTI3NCw3ICsxMjg3LDcgQEAg
ZGVzY3JpYmUoJ0J1aWxkYm90U3luY2VyJywgKCkgPT4gewogICAgICAgICB9KTsKIAogICAgICAg
ICBpdCgnc2hvdWxkIHNvcnQgQnVpbGRib3RCdWlsZEVudHJ5IGJ5IG9yZGVyJywgKCkgPT4gewot
ICAgICAgICAgICAgbGV0IHN5bmNlciA9IEJ1aWxkYm90U3luY2VyLl9sb2FkQ29uZmlnKE1vY2tS
ZW1vdGVBUEksIHNhbXBsZWlPU0NvbmZpZygpKVsxXTsKKyAgICAgICAgICAgIGxldCBzeW5jZXIg
PSBCdWlsZGJvdFN5bmNlci5fbG9hZENvbmZpZyhNb2NrUmVtb3RlQVBJLCBzYW1wbGVpT1NDb25m
aWcoKSwgYnVpbGRlck5hbWVUb0lETWFwKCkpWzFdOwogCiAgICAgICAgICAgICBsZXQgcHJvbWlz
ZSA9IHN5bmNlci5wdWxsQnVpbGRib3QoNSk7CiAgICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVx
dWVzdHMubGVuZ3RoLCAxKTsKQEAgLTEzMzEsNyArMTM0NCw3IEBAIGRlc2NyaWJlKCdCdWlsZGJv
dFN5bmNlcicsICgpID0+IHsKICAgICAgICAgfSk7CiAKICAgICAgICAgaXQoJ3Nob3VsZCBvdmVy
cmlkZSBCdWlsZGJvdEJ1aWxkRW50cnkgZm9yIHBlbmRpbmcgYnVpbGRzIGJ5IGluLXByb2dyZXNz
IGJ1aWxkcycsICgpID0+IHsKLSAgICAgICAgICAgIGxldCBzeW5jZXIgPSBCdWlsZGJvdFN5bmNl
ci5fbG9hZENvbmZpZyhNb2NrUmVtb3RlQVBJLCBzYW1wbGVpT1NDb25maWcoKSlbMV07CisgICAg
ICAgICAgICBsZXQgc3luY2VyID0gQnVpbGRib3RTeW5jZXIuX2xvYWRDb25maWcoTW9ja1JlbW90
ZUFQSSwgc2FtcGxlaU9TQ29uZmlnKCksIGJ1aWxkZXJOYW1lVG9JRE1hcCgpKVsxXTsKIAogICAg
ICAgICAgICAgbGV0IHByb21pc2UgPSBzeW5jZXIucHVsbEJ1aWxkYm90KDUpOwogICAgICAgICAg
ICAgYXNzZXJ0LmVxdWFsKHJlcXVlc3RzLmxlbmd0aCwgMSk7CkBAIC0xMzU4LDcgKzEzNzEsNyBA
QCBkZXNjcmliZSgnQnVpbGRib3RTeW5jZXInLCAoKSA9PiB7CiAgICAgICAgIH0pOwogCiAgICAg
ICAgIGl0KCdzaG91bGQgb3ZlcnJpZGUgQnVpbGRib3RCdWlsZEVudHJ5IGZvciBwZW5kaW5nIGJ1
aWxkcyBieSBmaW5pc2hlZCBidWlsZHMnLCAoKSA9PiB7Ci0gICAgICAgICAgICBsZXQgc3luY2Vy
ID0gQnVpbGRib3RTeW5jZXIuX2xvYWRDb25maWcoTW9ja1JlbW90ZUFQSSwgc2FtcGxlaU9TQ29u
ZmlnKCkpWzFdOworICAgICAgICAgICAgbGV0IHN5bmNlciA9IEJ1aWxkYm90U3luY2VyLl9sb2Fk
Q29uZmlnKE1vY2tSZW1vdGVBUEksIHNhbXBsZWlPU0NvbmZpZygpLCBidWlsZGVyTmFtZVRvSURN
YXAoKSlbMV07CiAKICAgICAgICAgICAgIGxldCBwcm9taXNlID0gc3luY2VyLnB1bGxCdWlsZGJv
dCg1KTsKICAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXF1ZXN0cy5sZW5ndGgsIDEpOwpAQCAt
MTM4Nyw3ICsxNDAwLDcgQEAgZGVzY3JpYmUoJ0J1aWxkYm90U3luY2VyJywgKCkgPT4gewogCiAg
ICAgZGVzY3JpYmUoJ3NjaGVkdWxlUmVxdWVzdCcsICgpID0+IHsKICAgICAgICAgaXQoJ3Nob3Vs
ZCBzY2hlZHVsZSBhIGJ1aWxkIHJlcXVlc3Qgb24gYSBzcGVjaWZpZWQgc2xhdmUnLCAoKSA9PiB7
Ci0gICAgICAgICAgICBsZXQgc3luY2VyID0gQnVpbGRib3RTeW5jZXIuX2xvYWRDb25maWcoTW9j
a1JlbW90ZUFQSSwgc2FtcGxlaU9TQ29uZmlnKCkpWzBdOworICAgICAgICAgICAgbGV0IHN5bmNl
ciA9IEJ1aWxkYm90U3luY2VyLl9sb2FkQ29uZmlnKE1vY2tSZW1vdGVBUEksIHNhbXBsZWlPU0Nv
bmZpZygpLCBidWlsZGVyTmFtZVRvSURNYXAoKSlbMF07CiAKICAgICAgICAgICAgIGNvbnN0IHdh
aXRGb3JSZXF1ZXN0ID0gTW9ja1JlbW90ZUFQSS53YWl0Rm9yUmVxdWVzdCgpOwogICAgICAgICAg
ICAgY29uc3QgcmVxdWVzdCA9IGNyZWF0ZVNhbXBsZUJ1aWxkUmVxdWVzdChNb2NrTW9kZWxzLmlw
aG9uZSwgTW9ja01vZGVscy5zcGVlZG9tZXRlcik7CkBAIC0xNDI0LDcgKzE0MzcsNyBAQCBkZXNj
cmliZSgnQnVpbGRib3RTeW5jZXInLCAoKSA9PiB7CiAgICAgICAgIH0KIAogICAgICAgICBpdCgn
c2hvdWxkIHNjaGVkdWxlIGEgYnVpbGQgaWYgYnVpbGRlciBoYXMgbm8gYnVpbGRzIGlmIHNsYXZl
TGlzdCBpcyBub3Qgc3BlY2lmaWVkJywgKCkgPT4gewotICAgICAgICAgICAgbGV0IHN5bmNlciA9
IEJ1aWxkYm90U3luY2VyLl9sb2FkQ29uZmlnKE1vY2tSZW1vdGVBUEksIHNtYWxsQ29uZmlndXJh
dGlvbigpKVswXTsKKyAgICAgICAgICAgIGxldCBzeW5jZXIgPSBCdWlsZGJvdFN5bmNlci5fbG9h
ZENvbmZpZyhNb2NrUmVtb3RlQVBJLCBzbWFsbENvbmZpZ3VyYXRpb24oKSwgYnVpbGRlck5hbWVU
b0lETWFwKCkpWzBdOwogCiAgICAgICAgICAgICByZXR1cm4gcHVsbEJ1aWxkYm90V2l0aEFzc2Vy
dGlvbihzeW5jZXIsIFtdLCB7fSkudGhlbigoKSA9PiB7CiAgICAgICAgICAgICAgICAgY29uc3Qg
cmVxdWVzdCA9IGNyZWF0ZVNhbXBsZUJ1aWxkUmVxdWVzdChNb2NrTW9kZWxzLnNvbWVQbGF0Zm9y
bSwgTW9ja01vZGVscy5zb21lVGVzdCk7CkBAIC0xNDM3LDcgKzE0NTAsNyBAQCBkZXNjcmliZSgn
QnVpbGRib3RTeW5jZXInLCAoKSA9PiB7CiAgICAgICAgIH0pOwogCiAgICAgICAgIGl0KCdzaG91
bGQgc2NoZWR1bGUgYSBidWlsZCBpZiBidWlsZGVyIG9ubHkgaGFzIGZpbmlzaGVkIGJ1aWxkcyBp
ZiBzbGF2ZUxpc3QgaXMgbm90IHNwZWNpZmllZCcsICgpID0+IHsKLSAgICAgICAgICAgIGxldCBz
eW5jZXIgPSBCdWlsZGJvdFN5bmNlci5fbG9hZENvbmZpZyhNb2NrUmVtb3RlQVBJLCBzbWFsbENv
bmZpZ3VyYXRpb24oKSlbMF07CisgICAgICAgICAgICBsZXQgc3luY2VyID0gQnVpbGRib3RTeW5j
ZXIuX2xvYWRDb25maWcoTW9ja1JlbW90ZUFQSSwgc21hbGxDb25maWd1cmF0aW9uKCksIGJ1aWxk
ZXJOYW1lVG9JRE1hcCgpKVswXTsKIAogICAgICAgICAgICAgcmV0dXJuIHB1bGxCdWlsZGJvdFdp
dGhBc3NlcnRpb24oc3luY2VyLCBbXSwge1stMV06IHNtYWxsRmluaXNoZWRCdWlsZCgpfSkudGhl
bigoKSA9PiB7CiAgICAgICAgICAgICAgICAgY29uc3QgcmVxdWVzdCA9IGNyZWF0ZVNhbXBsZUJ1
aWxkUmVxdWVzdChNb2NrTW9kZWxzLnNvbWVQbGF0Zm9ybSwgTW9ja01vZGVscy5zb21lVGVzdCk7
CkBAIC0xNDUwLDcgKzE0NjMsNyBAQCBkZXNjcmliZSgnQnVpbGRib3RTeW5jZXInLCAoKSA9PiB7
CiAgICAgICAgIH0pOwogCiAgICAgICAgIGl0KCdzaG91bGQgbm90IHNjaGVkdWxlIGEgYnVpbGQg
aWYgYnVpbGRlciBoYXMgYSBwZW5kaW5nIGJ1aWxkIGlmIHNsYXZlTGlzdCBpcyBub3Qgc3BlY2lm
aWVkJywgKCkgPT4gewotICAgICAgICAgICAgbGV0IHN5bmNlciA9IEJ1aWxkYm90U3luY2VyLl9s
b2FkQ29uZmlnKE1vY2tSZW1vdGVBUEksIHNtYWxsQ29uZmlndXJhdGlvbigpKVswXTsKKyAgICAg
ICAgICAgIGxldCBzeW5jZXIgPSBCdWlsZGJvdFN5bmNlci5fbG9hZENvbmZpZyhNb2NrUmVtb3Rl
QVBJLCBzbWFsbENvbmZpZ3VyYXRpb24oKSwgYnVpbGRlck5hbWVUb0lETWFwKCkpWzBdOwogCiAg
ICAgICAgICAgICByZXR1cm4gcHVsbEJ1aWxkYm90V2l0aEFzc2VydGlvbihzeW5jZXIsIFtzbWFs
bFBlbmRpbmdCdWlsZCgpXSwge30pLnRoZW4oKCkgPT4gewogICAgICAgICAgICAgICAgIHN5bmNl
ci5zY2hlZHVsZVJlcXVlc3RJbkdyb3VwSWZBdmFpbGFibGUoY3JlYXRlU2FtcGxlQnVpbGRSZXF1
ZXN0KE1vY2tNb2RlbHMuc29tZVBsYXRmb3JtLCBNb2NrTW9kZWxzLnNvbWVUZXN0KSk7CkBAIC0x
NDU5LDcgKzE0NzIsNyBAQCBkZXNjcmliZSgnQnVpbGRib3RTeW5jZXInLCAoKSA9PiB7CiAgICAg
ICAgIH0pOwogCiAgICAgICAgIGl0KCdzaG91bGQgc2NoZWR1bGUgYSBidWlsZCBpZiBidWlsZGVy
IGRvZXMgbm90IGhhdmUgcGVuZGluZyBvciBjb21wbGV0ZWQgYnVpbGRzIG9uIHRoZSBtYXRjaGlu
ZyBzbGF2ZScsICgpID0+IHsKLSAgICAgICAgICAgIGxldCBzeW5jZXIgPSBCdWlsZGJvdFN5bmNl
ci5fbG9hZENvbmZpZyhNb2NrUmVtb3RlQVBJLCBzYW1wbGVpT1NDb25maWcoKSlbMF07CisgICAg
ICAgICAgICBsZXQgc3luY2VyID0gQnVpbGRib3RTeW5jZXIuX2xvYWRDb25maWcoTW9ja1JlbW90
ZUFQSSwgc2FtcGxlaU9TQ29uZmlnKCksIGJ1aWxkZXJOYW1lVG9JRE1hcCgpKVswXTsKIAogICAg
ICAgICAgICAgcmV0dXJuIHB1bGxCdWlsZGJvdFdpdGhBc3NlcnRpb24oc3luY2VyLCBbXSwge30p
LnRoZW4oKCkgPT4gewogICAgICAgICAgICAgICAgIGNvbnN0IHJlcXVlc3QgPSBjcmVhdGVTYW1w
bGVCdWlsZFJlcXVlc3QoTW9ja01vZGVscy5pcGhvbmUsIE1vY2tNb2RlbHMuc3BlZWRvbWV0ZXIp
OwpAQCAtMTQ3MSw3ICsxNDg0LDcgQEAgZGVzY3JpYmUoJ0J1aWxkYm90U3luY2VyJywgKCkgPT4g
ewogICAgICAgICB9KTsKIAogICAgICAgICBpdCgnc2hvdWxkIHNjaGVkdWxlIGEgYnVpbGQgaWYg
YnVpbGRlciBvbmx5IGhhcyBmaW5pc2hlZCBidWlsZHMgb24gdGhlIG1hdGNoaW5nIHNsYXZlJywg
KCkgPT4gewotICAgICAgICAgICAgbGV0IHN5bmNlciA9IEJ1aWxkYm90U3luY2VyLl9sb2FkQ29u
ZmlnKE1vY2tSZW1vdGVBUEksIHNhbXBsZWlPU0NvbmZpZygpKVsxXTsKKyAgICAgICAgICAgIGxl
dCBzeW5jZXIgPSBCdWlsZGJvdFN5bmNlci5fbG9hZENvbmZpZyhNb2NrUmVtb3RlQVBJLCBzYW1w
bGVpT1NDb25maWcoKSwgYnVpbGRlck5hbWVUb0lETWFwKCkpWzFdOwogCiAgICAgICAgICAgICBw
dWxsQnVpbGRib3RXaXRoQXNzZXJ0aW9uKHN5bmNlciwgW10sIHtbLTFdOiBzYW1wbGVGaW5pc2hl
ZEJ1aWxkKCl9KS50aGVuKCgpID0+IHsKICAgICAgICAgICAgICAgICBjb25zdCByZXF1ZXN0ID0g
Y3JlYXRlU2FtcGxlQnVpbGRSZXF1ZXN0KE1vY2tNb2RlbHMuaXBhZCwgTW9ja01vZGVscy5zcGVl
ZG9tZXRlcik7CkBAIC0xNDgzLDcgKzE0OTYsNyBAQCBkZXNjcmliZSgnQnVpbGRib3RTeW5jZXIn
LCAoKSA9PiB7CiAgICAgICAgIH0pOwogCiAgICAgICAgIGl0KCdzaG91bGQgbm90IHNjaGVkdWxl
IGEgYnVpbGQgaWYgYnVpbGRlciBoYXMgYSBwZW5kaW5nIGJ1aWxkIG9uIHRoZSBtYWNoaW5nIHNs
YXZlJywgKCkgPT4gewotICAgICAgICAgICAgbGV0IHN5bmNlciA9IEJ1aWxkYm90U3luY2VyLl9s
b2FkQ29uZmlnKE1vY2tSZW1vdGVBUEksIHNhbXBsZWlPU0NvbmZpZygpKVsxXTsKKyAgICAgICAg
ICAgIGxldCBzeW5jZXIgPSBCdWlsZGJvdFN5bmNlci5fbG9hZENvbmZpZyhNb2NrUmVtb3RlQVBJ
LCBzYW1wbGVpT1NDb25maWcoKSwgYnVpbGRlck5hbWVUb0lETWFwKCkpWzFdOwogCiAgICAgICAg
ICAgICBwdWxsQnVpbGRib3RXaXRoQXNzZXJ0aW9uKHN5bmNlciwgW3NhbXBsZVBlbmRpbmdCdWls
ZCgpXSwge30pLnRoZW4oKCkgPT4gewogICAgICAgICAgICAgICAgIGNvbnN0IHJlcXVlc3QgPSBj
cmVhdGVTYW1wbGVCdWlsZFJlcXVlc3QoTW9ja01vZGVscy5pcGFkLCBNb2NrTW9kZWxzLnNwZWVk
b21ldGVyKTsKQEAgLTE0OTMsNyArMTUwNiw3IEBAIGRlc2NyaWJlKCdCdWlsZGJvdFN5bmNlcics
ICgpID0+IHsKICAgICAgICAgfSk7CiAKICAgICAgICAgaXQoJ3Nob3VsZCBzY2hlZHVsZSBhIGJ1
aWxkIGlmIGJ1aWxkZXIgb25seSBoYXMgYSBwZW5kaW5nIGJ1aWxkIG9uIGEgbm9uLW1hY2hpbmcg
c2xhdmUnLCAoKSA9PiB7Ci0gICAgICAgICAgICBsZXQgc3luY2VyID0gQnVpbGRib3RTeW5jZXIu
X2xvYWRDb25maWcoTW9ja1JlbW90ZUFQSSwgc2FtcGxlaU9TQ29uZmlnKCkpWzFdOworICAgICAg
ICAgICAgbGV0IHN5bmNlciA9IEJ1aWxkYm90U3luY2VyLl9sb2FkQ29uZmlnKE1vY2tSZW1vdGVB
UEksIHNhbXBsZWlPU0NvbmZpZygpLCBidWlsZGVyTmFtZVRvSURNYXAoKSlbMV07CiAKICAgICAg
ICAgICAgIHJldHVybiBwdWxsQnVpbGRib3RXaXRoQXNzZXJ0aW9uKHN5bmNlciwgW3NhbXBsZVBl
bmRpbmdCdWlsZCgxLCAxLCAnYW5vdGhlci1zbGF2ZScpXSwge30pLnRoZW4oKCkgPT4gewogICAg
ICAgICAgICAgICAgIGNvbnN0IHJlcXVlc3QgPSBjcmVhdGVTYW1wbGVCdWlsZFJlcXVlc3QoTW9j
a01vZGVscy5pcGFkLCBNb2NrTW9kZWxzLnNwZWVkb21ldGVyKTsKQEAgLTE1MDMsNyArMTUxNiw3
IEBAIGRlc2NyaWJlKCdCdWlsZGJvdFN5bmNlcicsICgpID0+IHsKICAgICAgICAgfSk7CiAKICAg
ICAgICAgaXQoJ3Nob3VsZCBzY2hlZHVsZSBhIGJ1aWxkIGlmIGJ1aWxkZXIgb25seSBoYXMgYW4g
aW4tcHJvZ3Jlc3MgYnVpbGQgb24gdGhlIG1hdGNoaW5nIHNsYXZlJywgKCkgPT4gewotICAgICAg
ICAgICAgbGV0IHN5bmNlciA9IEJ1aWxkYm90U3luY2VyLl9sb2FkQ29uZmlnKE1vY2tSZW1vdGVB
UEksIHNhbXBsZWlPU0NvbmZpZygpKVsxXTsKKyAgICAgICAgICAgIGxldCBzeW5jZXIgPSBCdWls
ZGJvdFN5bmNlci5fbG9hZENvbmZpZyhNb2NrUmVtb3RlQVBJLCBzYW1wbGVpT1NDb25maWcoKSwg
YnVpbGRlck5hbWVUb0lETWFwKCkpWzFdOwogCiAgICAgICAgICAgICByZXR1cm4gcHVsbEJ1aWxk
Ym90V2l0aEFzc2VydGlvbihzeW5jZXIsIFtdLCB7Wy0xXTogc2FtcGxlSW5Qcm9ncmVzc0J1aWxk
KCl9KS50aGVuKCgpID0+IHsKICAgICAgICAgICAgICAgICBjb25zdCByZXF1ZXN0ID0gY3JlYXRl
U2FtcGxlQnVpbGRSZXF1ZXN0KE1vY2tNb2RlbHMuaXBhZCwgTW9ja01vZGVscy5zcGVlZG9tZXRl
cik7CkBAIC0xNTEzLDcgKzE1MjYsNyBAQCBkZXNjcmliZSgnQnVpbGRib3RTeW5jZXInLCAoKSA9
PiB7CiAgICAgICAgIH0pOwogCiAgICAgICAgIGl0KCdzaG91bGQgc2NoZWR1bGUgYSBidWlsZCBp
ZiBidWlsZGVyIGhhcyBhbiBpbi1wcm9ncmVzcyBidWlsZCBvbiBhbm90aGVyIHNsYXZlJywgKCkg
PT4gewotICAgICAgICAgICAgbGV0IHN5bmNlciA9IEJ1aWxkYm90U3luY2VyLl9sb2FkQ29uZmln
KE1vY2tSZW1vdGVBUEksIHNhbXBsZWlPU0NvbmZpZygpKVsxXTsKKyAgICAgICAgICAgIGxldCBz
eW5jZXIgPSBCdWlsZGJvdFN5bmNlci5fbG9hZENvbmZpZyhNb2NrUmVtb3RlQVBJLCBzYW1wbGVp
T1NDb25maWcoKSwgYnVpbGRlck5hbWVUb0lETWFwKCkpWzFdOwogCiAgICAgICAgICAgICByZXR1
cm4gcHVsbEJ1aWxkYm90V2l0aEFzc2VydGlvbihzeW5jZXIsIFtdLCB7Wy0xXTogc2FtcGxlSW5Q
cm9ncmVzc0J1aWxkKCdvdGhlci1zbGF2ZScpfSkudGhlbigoKSA9PiB7CiAgICAgICAgICAgICAg
ICAgY29uc3QgcmVxdWVzdCA9IGNyZWF0ZVNhbXBsZUJ1aWxkUmVxdWVzdChNb2NrTW9kZWxzLmlw
YWQsIE1vY2tNb2RlbHMuc3BlZWRvbWV0ZXIpOwpAQCAtMTUyMyw3ICsxNTM2LDcgQEAgZGVzY3Jp
YmUoJ0J1aWxkYm90U3luY2VyJywgKCkgPT4gewogICAgICAgICB9KTsKIAogICAgICAgICBpdCgn
c2hvdWxkIG5vdCBzY2hlZHVsZSBhIGJ1aWxkIGlmIHRoZSByZXF1ZXN0IGRvZXMgbm90IG1hdGNo
IGFueSBjb25maWd1cmF0aW9uJywgKCkgPT4gewotICAgICAgICAgICAgbGV0IHN5bmNlciA9IEJ1
aWxkYm90U3luY2VyLl9sb2FkQ29uZmlnKE1vY2tSZW1vdGVBUEksIHNhbXBsZWlPU0NvbmZpZygp
KVswXTsKKyAgICAgICAgICAgIGxldCBzeW5jZXIgPSBCdWlsZGJvdFN5bmNlci5fbG9hZENvbmZp
ZyhNb2NrUmVtb3RlQVBJLCBzYW1wbGVpT1NDb25maWcoKSwgYnVpbGRlck5hbWVUb0lETWFwKCkp
WzBdOwogCiAgICAgICAgICAgICByZXR1cm4gcHVsbEJ1aWxkYm90V2l0aEFzc2VydGlvbihzeW5j
ZXIsIFtdLCB7fSkudGhlbigoKSA9PiB7CiAgICAgICAgICAgICAgICAgY29uc3QgcmVxdWVzdCA9
IGNyZWF0ZVNhbXBsZUJ1aWxkUmVxdWVzdChNb2NrTW9kZWxzLmlwYWQsIE1vY2tNb2RlbHMuc3Bl
ZWRvbWV0ZXIpOwpAQCAtMTUzMyw3ICsxNTQ2LDcgQEAgZGVzY3JpYmUoJ0J1aWxkYm90U3luY2Vy
JywgKCkgPT4gewogICAgICAgICB9KTsKIAogICAgICAgICBpdCgnc2hvdWxkIG5vdCBzY2hlZHVs
ZSBhIGJ1aWxkIGlmIGEgbmV3IHJlcXVlc3QgaGFkIGJlZW4gc3VibWl0dGVkIHRvIHRoZSBzYW1l
IHNsYXZlJywgKGRvbmUpID0+IHsKLSAgICAgICAgICAgIGxldCBzeW5jZXIgPSBCdWlsZGJvdFN5
bmNlci5fbG9hZENvbmZpZyhNb2NrUmVtb3RlQVBJLCBzYW1wbGVpT1NDb25maWcoKSlbMV07Cisg
ICAgICAgICAgICBsZXQgc3luY2VyID0gQnVpbGRib3RTeW5jZXIuX2xvYWRDb25maWcoTW9ja1Jl
bW90ZUFQSSwgc2FtcGxlaU9TQ29uZmlnKCksIGJ1aWxkZXJOYW1lVG9JRE1hcCgpKVsxXTsKIAog
ICAgICAgICAgICAgcHVsbEJ1aWxkYm90V2l0aEFzc2VydGlvbihzeW5jZXIsIFtdLCB7fSkudGhl
bigoKSA9PiB7CiAgICAgICAgICAgICAgICAgbGV0IHJlcXVlc3QgPSBjcmVhdGVTYW1wbGVCdWls
ZFJlcXVlc3QoTW9ja01vZGVscy5pcGFkLCBNb2NrTW9kZWxzLnNwZWVkb21ldGVyKTsKQEAgLTE1
NTEsNyArMTU2NCw3IEBAIGRlc2NyaWJlKCdCdWlsZGJvdFN5bmNlcicsICgpID0+IHsKICAgICAg
ICAgfSk7CiAKICAgICAgICAgaXQoJ3Nob3VsZCBzY2hlZHVsZSBhIGJ1aWxkIGlmIGEgbmV3IHJl
cXVlc3QgaGFkIGJlZW4gc3VibWl0dGVkIHRvIGFub3RoZXIgc2xhdmUnLCAoKSA9PiB7Ci0gICAg
ICAgICAgICBsZXQgc3luY2VyID0gQnVpbGRib3RTeW5jZXIuX2xvYWRDb25maWcoTW9ja1JlbW90
ZUFQSSwgc2FtcGxlaU9TQ29uZmlnKCkpWzFdOworICAgICAgICAgICAgbGV0IHN5bmNlciA9IEJ1
aWxkYm90U3luY2VyLl9sb2FkQ29uZmlnKE1vY2tSZW1vdGVBUEksIHNhbXBsZWlPU0NvbmZpZygp
LCBidWlsZGVyTmFtZVRvSURNYXAoKSlbMV07CiAKICAgICAgICAgICAgIHJldHVybiBwdWxsQnVp
bGRib3RXaXRoQXNzZXJ0aW9uKHN5bmNlciwgW10sIHt9KS50aGVuKCgpID0+IHsKICAgICAgICAg
ICAgICAgICBsZXQgcmVxdWVzdCA9IGNyZWF0ZVNhbXBsZUJ1aWxkUmVxdWVzdChNb2NrTW9kZWxz
LmlwYWQsIE1vY2tNb2RlbHMuc3BlZWRvbWV0ZXIpOwpAQCAtMTU2NCw3ICsxNTc3LDcgQEAgZGVz
Y3JpYmUoJ0J1aWxkYm90U3luY2VyJywgKCkgPT4gewogICAgICAgICB9KTsKIAogICAgICAgICBp
dCgnc2hvdWxkIG5vdCBzY2hlZHVsZSBhIGJ1aWxkIGlmIGEgbmV3IHJlcXVlc3QgaGFkIGJlZW4g
c3VibWl0dGVkIHRvIHRoZSBzYW1lIGJ1aWxkZXIgd2l0aG91dCBzbGF2ZUxpc3QnLCAoKSA9PiB7
Ci0gICAgICAgICAgICBsZXQgc3luY2VyID0gQnVpbGRib3RTeW5jZXIuX2xvYWRDb25maWcoTW9j
a1JlbW90ZUFQSSwgc21hbGxDb25maWd1cmF0aW9uKCkpWzBdOworICAgICAgICAgICAgbGV0IHN5
bmNlciA9IEJ1aWxkYm90U3luY2VyLl9sb2FkQ29uZmlnKE1vY2tSZW1vdGVBUEksIHNtYWxsQ29u
ZmlndXJhdGlvbigpLCBidWlsZGVyTmFtZVRvSURNYXAoKSlbMF07CiAKICAgICAgICAgICAgIHJl
dHVybiBwdWxsQnVpbGRib3RXaXRoQXNzZXJ0aW9uKHN5bmNlciwgW10sIHt9KS50aGVuKCgpID0+
IHsKICAgICAgICAgICAgICAgICBsZXQgcmVxdWVzdCA9IGNyZWF0ZVNhbXBsZUJ1aWxkUmVxdWVz
dChNb2NrTW9kZWxzLnNvbWVQbGF0Zm9ybSwgTW9ja01vZGVscy5zb21lVGVzdCk7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>327001</attachid>
            <date>2017-11-15 11:29:45 -0800</date>
            <delta_ts>2017-12-06 13:57:06 -0800</delta_ts>
            <desc>Updated patch</desc>
            <filename>patch_buildbot_perf_builderNameToIDMap_v4</filename>
            <type>text/plain</type>
            <size>179019</size>
            <attacher name="Aakash Jain">aakash_jain</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
V2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL0NoYW5nZUxvZwkocmV2aXNpb24gMjI0ODg4KQorKysg
V2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwz
ICsxLDI4IEBACisyMDE3LTExLTE1ICBBYWthc2ggSmFpbiAgPGFha2FzaF9qYWluQGFwcGxlLmNv
bT4KKworICAgICAgICBBZGQgc3VwcG9ydCBmb3IgYnVpbGRlck5hbWVUb0lETWFwIGluIEJ1aWxk
Ym90U3luY2VyCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD0xNzY1MjYKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAg
ICAqIHRvb2xzL2pzL2J1aWxkYm90LXN5bmNlci5qczoKKyAgICAgICAgKEJ1aWxkYm90U3luY2Vy
Ll9sb2FkQ29uZmlnKTogQWRkZWQgYnVpbGRlck5hbWVUb0lETWFwIHBhcmFtZXRlci4gSXQgd291
bGQgYmUgdXNlZCBsYXRlciBvbi4KKyAgICAgICAgKEJ1aWxkYm90U3luY2VyLl9yZXNvbHZlQnVp
bGRlcnNXaXRoUGxhdGZvcm1zKTogRGl0dG8uCisgICAgICAgIChCdWlsZGJvdFN5bmNlci5fdmFs
aWRhdGVBbmRNZXJnZUNvbmZpZyk6IEFkZGVkIGJ1aWxkZXJJRCBhcyBhIHZhbGlkIGNvbmZpZyBw
YXJhbWV0ZXIuCisgICAgICAgICogdG9vbHMvanMvYnVpbGRib3QtdHJpZ2dlcmFibGUuanM6Cisg
ICAgICAgIChCdWlsZGJvdFRyaWdnZXJhYmxlLnByb3RvdHlwZS5nZXRCdWlsZGVyTmFtZVRvSURN
YXApOiBNZXRob2QgdG8gZmV0Y2ggQnVpbGRlck5hbWVUb0lETWFwIGZyb20gQnVpbGRib3QgMC45
LgorICAgICAgICAoQnVpbGRib3RUcmlnZ2VyYWJsZS5wcm90b3R5cGUuZ2V0QnVpbGRlck5hbWVU
b0lETWFwRGVwcmVjYXRlZCk6IE1ldGhvZCB0byBmZXRjaCBCdWlsZGVyTmFtZVRvSURNYXAgZnJv
bSBCdWlsZGJvdCAwLjguCisgICAgICAgIChCdWlsZGJvdFRyaWdnZXJhYmxlLnByb3RvdHlwZS5p
bml0U3luY2Vycyk6IFVwZGF0ZWQgdG8gdXNlIGdldEJ1aWxkZXJOYW1lVG9JRE1hcC4KKyAgICAg
ICAgKiB1bml0LXRlc3RzL2J1aWxkYm90LXN5bmNlci10ZXN0cy5qczogVXBkYXRlZCB1bml0LXRl
c3RzLgorICAgICAgICAqIHNlcnZlci10ZXN0cy9yZXNvdXJjZXMvbW9jay1kYXRhLmpzOgorICAg
ICAgICAoTW9ja0RhdGEuYnVpbGRib3RCdWlsZGVyc1VSTCk6IFVSTCBmb3IgZmV0Y2hpbmcgQnVp
bGRlcnMgbGlzdC4KKyAgICAgICAgKE1vY2tEYXRhLmJ1aWxkYm90MDlCdWlsZGVyc1VSTCk6IERp
dHRvIGZvciBCdWlsZGJvdCAwLjkKKyAgICAgICAgKE1vY2tEYXRhLm1vY2tCdWlsZGJvdEJ1aWxk
ZXJzKTogU2FtcGxlIGJ1aWxkZXJzIGRhdGEgZm9yIEJ1aWxkYm90IDAuOAorICAgICAgICAoTW9j
a0RhdGEubW9ja0J1aWxkYm90MDlCdWlsZGVycyk6IERpdHRvIGZvciBCdWlsZGJvdCAwLjkKKyAg
ICAgICAgKiBzZXJ2ZXItdGVzdHMvdG9vbHMtYnVpbGRib3QtdHJpZ2dlcmFibGUtdGVzdHMuanM6
IFVwZGF0ZWQgdGVzdHMgdG8gaGFuZGxlIG5ld2x5IGFkZGVkIHByb21pc2UgZm9yIGZldGNoaW5n
IGJ1aWxkZXJzCisgICAgICAgIGxpc3QgZnJvbSBCdWlsZGJvdC4gQ29ycmVzcG9uZGluZ2x5LCBh
bGwgdGhlIHN1YnNlcXVlbnQgcmVxdWVzdHMgaW5kZXggaW5jcmVhc2VkIGJ5IDEuCisgICAgICAg
ICogc2VydmVyLXRlc3RzL3Rvb2xzLXN5bmMtYnVpbGRib3QtaW50ZWdyYXRpb24tdGVzdHMuanM6
IERpdHRvLgorCiAyMDE3LTExLTAyICBEZXdlaSBaaHUgIDxkZXdlaV96aHVAYXBwbGUuY29tPgog
CiAgICAgICAgIEFkZCBwbGF0Zm9ybSBhcmd1bWVudCBmb3Igc3luY2luZyBzY3JpcHQuCkluZGV4
OiBXZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvc2VydmVyLXRlc3RzL3Rvb2xzLWJ1aWxkYm90LXRy
aWdnZXJhYmxlLXRlc3RzLmpzCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYnNpdGVzL3BlcmYud2Via2l0Lm9y
Zy9zZXJ2ZXItdGVzdHMvdG9vbHMtYnVpbGRib3QtdHJpZ2dlcmFibGUtdGVzdHMuanMJKHJldmlz
aW9uIDIyNDg4NykKKysrIFdlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy9zZXJ2ZXItdGVzdHMvdG9v
bHMtYnVpbGRib3QtdHJpZ2dlcmFibGUtdGVzdHMuanMJKHdvcmtpbmcgY29weSkKQEAgLTM2LDYg
KzM2LDcgQEAgZGVzY3JpYmUoJ0J1aWxkYm90VHJpZ2dlcmFibGUnLCBmdW5jdGlvbgogICAgICAg
ICAgICAgICAgIGNvbnN0IHNsYXZlSW5mbyA9IHtuYW1lOiAnc3luYy1zbGF2ZScsIHBhc3N3b3Jk
OiAncGFzc3dvcmQnfTsKICAgICAgICAgICAgICAgICBjb25zdCB0cmlnZ2VyYWJsZSA9IG5ldyBC
dWlsZGJvdFRyaWdnZXJhYmxlKGNvbmZpZywgVGVzdFNlcnZlci5yZW1vdGVBUEkoKSwgTW9ja1Jl
bW90ZUFQSSwgc2xhdmVJbmZvLCBsb2dnZXIpOwogICAgICAgICAgICAgICAgIHN5bmNQcm9taXNl
ID0gdHJpZ2dlcmFibGUuaW5pdFN5bmNlcnMoKS50aGVuKCgpID0+IHRyaWdnZXJhYmxlLnN5bmNP
bmNlKCkpOworICAgICAgICAgICAgICAgIGFzc2VydFJlcXVlc3RBbmRSZXNvbHZlKE1vY2tSZW1v
dGVBUEkucmVxdWVzdHNbMF0sICdHRVQnLCBNb2NrRGF0YS5idWlsZGJvdEJ1aWxkZXJzVVJMKCks
IE1vY2tEYXRhLm1vY2tCdWlsZGJvdEJ1aWxkZXJzKCkpOwogICAgICAgICAgICAgICAgIHJldHVy
biBNb2NrUmVtb3RlQVBJLndhaXRGb3JSZXF1ZXN0KCk7CiAgICAgICAgICAgICB9KS50aGVuKCgp
ID0+IHsKICAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoQnVpbGRSZXF1ZXN0LmFsbCgpLmxl
bmd0aCwgNCk7CkBAIC00MywzMCArNDQsMzAgQEAgZGVzY3JpYmUoJ0J1aWxkYm90VHJpZ2dlcmFi
bGUnLCBmdW5jdGlvbgogICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChCdWlsZFJlcXVlc3Qu
ZmluZEJ5SWQoNzAxKS5zdGF0dXMoKSwgJ3J1bm5pbmcnKTsKICAgICAgICAgICAgICAgICBhc3Nl
cnQuZXF1YWwoQnVpbGRSZXF1ZXN0LmZpbmRCeUlkKDcwMikuc3RhdHVzKCksICdwZW5kaW5nJyk7
CiAgICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKEJ1aWxkUmVxdWVzdC5maW5kQnlJZCg3MDMp
LnN0YXR1cygpLCAncGVuZGluZycpOwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2Nr
UmVtb3RlQVBJLnJlcXVlc3RzWzBdLm1ldGhvZCwgJ0dFVCcpOwotICAgICAgICAgICAgICAgIGFz
c2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzBdLnVybCwgJy9qc29uL2J1aWxkZXJz
L3NvbWUtYnVpbGRlci0xL3BlbmRpbmdCdWlsZHMnKTsKLSAgICAgICAgICAgICAgICBNb2NrUmVt
b3RlQVBJLnJlcXVlc3RzWzBdLnJlc29sdmUoW10pOwotICAgICAgICAgICAgICAgIHJldHVybiBN
b2NrUmVtb3RlQVBJLndhaXRGb3JSZXF1ZXN0KCk7Ci0gICAgICAgICAgICB9KS50aGVuKCgpID0+
IHsKICAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1sx
XS5tZXRob2QsICdHRVQnKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90
ZUFQSS5yZXF1ZXN0c1sxXS51cmwsICcvanNvbi9idWlsZGVycy9zb21lLWJ1aWxkZXItMS9idWls
ZHMvP3NlbGVjdD0tMSZzZWxlY3Q9LTInKTsKLSAgICAgICAgICAgICAgICBNb2NrUmVtb3RlQVBJ
LnJlcXVlc3RzWzFdLnJlc29sdmUoe1stMV06IE1vY2tEYXRhLnJ1bm5pbmdCdWlsZCgpLCBbLTJd
OiBNb2NrRGF0YS5maW5pc2hlZEJ1aWxkKCl9KTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuZXF1
YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1sxXS51cmwsICcvanNvbi9idWlsZGVycy9zb21lLWJ1
aWxkZXItMS9wZW5kaW5nQnVpbGRzJyk7CisgICAgICAgICAgICAgICAgTW9ja1JlbW90ZUFQSS5y
ZXF1ZXN0c1sxXS5yZXNvbHZlKFtdKTsKICAgICAgICAgICAgICAgICByZXR1cm4gTW9ja1JlbW90
ZUFQSS53YWl0Rm9yUmVxdWVzdCgpOwogICAgICAgICAgICAgfSkudGhlbigoKSA9PiB7Ci0gICAg
ICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMl0ubWV0aG9k
LCAnUE9TVCcpOwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJl
cXVlc3RzWzJdLnVybCwgJy9idWlsZGVycy9zb21lLWJ1aWxkZXItMS9mb3JjZScpOwotICAgICAg
ICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1syXS5kYXRh
LCB7J3drJzogJzE5MTYyMicsICdvcyc6ICcxMC4xMSAxNUEyODQnLCAnYnVpbGQtcmVxdWVzdC1p
ZCc6ICc3MDInfSk7Ci0gICAgICAgICAgICAgICAgTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1syXS5y
ZXNvbHZlKCdPSycpOworICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJ
LnJlcXVlc3RzWzJdLm1ldGhvZCwgJ0dFVCcpOworICAgICAgICAgICAgICAgIGFzc2VydC5lcXVh
bChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzJdLnVybCwgJy9qc29uL2J1aWxkZXJzL3NvbWUtYnVp
bGRlci0xL2J1aWxkcy8/c2VsZWN0PS0xJnNlbGVjdD0tMicpOworICAgICAgICAgICAgICAgIE1v
Y2tSZW1vdGVBUEkucmVxdWVzdHNbMl0ucmVzb2x2ZSh7Wy0xXTogTW9ja0RhdGEucnVubmluZ0J1
aWxkKCksIFstMl06IE1vY2tEYXRhLmZpbmlzaGVkQnVpbGQoKX0pOwogICAgICAgICAgICAgICAg
IHJldHVybiBNb2NrUmVtb3RlQVBJLndhaXRGb3JSZXF1ZXN0KCk7CiAgICAgICAgICAgICB9KS50
aGVuKCgpID0+IHsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5y
ZXF1ZXN0c1szXS5tZXRob2QsICdHRVQnKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwo
TW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1szXS51cmwsICcvanNvbi9idWlsZGVycy9zb21lLWJ1aWxk
ZXItMS9wZW5kaW5nQnVpbGRzJyk7Ci0gICAgICAgICAgICAgICAgTW9ja1JlbW90ZUFQSS5yZXF1
ZXN0c1szXS5yZXNvbHZlKFtNb2NrRGF0YS5wZW5kaW5nQnVpbGQoKV0pCisgICAgICAgICAgICAg
ICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbM10ubWV0aG9kLCAnUE9TVCcp
OworICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzNd
LnVybCwgJy9idWlsZGVycy9zb21lLWJ1aWxkZXItMS9mb3JjZScpOworICAgICAgICAgICAgICAg
IGFzc2VydC5kZWVwRXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1szXS5kYXRhLCB7J3drJzog
JzE5MTYyMicsICdvcyc6ICcxMC4xMSAxNUEyODQnLCAnYnVpbGQtcmVxdWVzdC1pZCc6ICc3MDIn
fSk7CisgICAgICAgICAgICAgICAgTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1szXS5yZXNvbHZlKCdP
SycpOwogICAgICAgICAgICAgICAgIHJldHVybiBNb2NrUmVtb3RlQVBJLndhaXRGb3JSZXF1ZXN0
KCk7CiAgICAgICAgICAgICB9KS50aGVuKCgpID0+IHsKICAgICAgICAgICAgICAgICBhc3NlcnQu
ZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1s0XS5tZXRob2QsICdHRVQnKTsKLSAgICAgICAg
ICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1s0XS51cmwsICcvanNv
bi9idWlsZGVycy9zb21lLWJ1aWxkZXItMS9idWlsZHMvP3NlbGVjdD0tMSZzZWxlY3Q9LTInKTsK
LSAgICAgICAgICAgICAgICBNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzRdLnJlc29sdmUoe1stMV06
IE1vY2tEYXRhLnJ1bm5pbmdCdWlsZCgpLCBbLTJdOiBNb2NrRGF0YS5maW5pc2hlZEJ1aWxkKCl9
KTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1s0
XS51cmwsICcvanNvbi9idWlsZGVycy9zb21lLWJ1aWxkZXItMS9wZW5kaW5nQnVpbGRzJyk7Cisg
ICAgICAgICAgICAgICAgTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1s0XS5yZXNvbHZlKFtNb2NrRGF0
YS5wZW5kaW5nQnVpbGQoKV0pCisgICAgICAgICAgICAgICAgcmV0dXJuIE1vY2tSZW1vdGVBUEku
d2FpdEZvclJlcXVlc3QoKTsKKyAgICAgICAgICAgIH0pLnRoZW4oKCkgPT4geworICAgICAgICAg
ICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzVdLm1ldGhvZCwgJ0dF
VCcpOworICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3Rz
WzVdLnVybCwgJy9qc29uL2J1aWxkZXJzL3NvbWUtYnVpbGRlci0xL2J1aWxkcy8/c2VsZWN0PS0x
JnNlbGVjdD0tMicpOworICAgICAgICAgICAgICAgIE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbNV0u
cmVzb2x2ZSh7Wy0xXTogTW9ja0RhdGEucnVubmluZ0J1aWxkKCksIFstMl06IE1vY2tEYXRhLmZp
bmlzaGVkQnVpbGQoKX0pOwogICAgICAgICAgICAgICAgIHJldHVybiBzeW5jUHJvbWlzZTsKICAg
ICAgICAgICAgIH0pLnRoZW4oKCkgPT4gewogICAgICAgICAgICAgICAgIHJldHVybiBCdWlsZFJl
cXVlc3QuZmV0Y2hGb3JUcmlnZ2VyYWJsZShNb2NrRGF0YS5tb2NrVGVzdFN5bmNDb25maWdXaXRo
U2luZ2xlQnVpbGRlcigpLnRyaWdnZXJhYmxlTmFtZSk7CkBAIC05MCwyNiArOTEsMjcgQEAgZGVz
Y3JpYmUoJ0J1aWxkYm90VHJpZ2dlcmFibGUnLCBmdW5jdGlvbgogICAgICAgICAgICAgICAgIGxl
dCBzbGF2ZUluZm8gPSB7bmFtZTogJ3N5bmMtc2xhdmUnLCBwYXNzd29yZDogJ3Bhc3N3b3JkJ307
CiAgICAgICAgICAgICAgICAgbGV0IHRyaWdnZXJhYmxlID0gbmV3IEJ1aWxkYm90VHJpZ2dlcmFi
bGUoY29uZmlnLCBUZXN0U2VydmVyLnJlbW90ZUFQSSgpLCBNb2NrUmVtb3RlQVBJLCBzbGF2ZUlu
Zm8sIGxvZ2dlcik7CiAgICAgICAgICAgICAgICAgc3luY1Byb21pc2UgPSB0cmlnZ2VyYWJsZS5p
bml0U3luY2VycygpLnRoZW4oKCkgPT4gdHJpZ2dlcmFibGUuc3luY09uY2UoKSk7Ci0gICAgICAg
ICAgICAgICAgcmV0dXJuIE1vY2tSZW1vdGVBUEkud2FpdEZvclJlcXVlc3QoKTsKLSAgICAgICAg
ICAgIH0pLnRoZW4oKCkgPT4gewotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVt
b3RlQVBJLnJlcXVlc3RzWzBdLm1ldGhvZCwgJ0dFVCcpOwotICAgICAgICAgICAgICAgIGFzc2Vy
dC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzBdLnVybCwgJy9qc29uL2J1aWxkZXJzL3Nv
bWUtYnVpbGRlci0xL3BlbmRpbmdCdWlsZHMnKTsKLSAgICAgICAgICAgICAgICBNb2NrUmVtb3Rl
QVBJLnJlcXVlc3RzWzBdLnJlc29sdmUoW01vY2tEYXRhLnBlbmRpbmdCdWlsZCgpXSk7CisgICAg
ICAgICAgICAgICAgYXNzZXJ0UmVxdWVzdEFuZFJlc29sdmUoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0
c1swXSwgJ0dFVCcsIE1vY2tEYXRhLmJ1aWxkYm90QnVpbGRlcnNVUkwoKSwgTW9ja0RhdGEubW9j
a0J1aWxkYm90QnVpbGRlcnMoKSk7CiAgICAgICAgICAgICAgICAgcmV0dXJuIE1vY2tSZW1vdGVB
UEkud2FpdEZvclJlcXVlc3QoKTsKICAgICAgICAgICAgIH0pLnRoZW4oKCkgPT4gewogICAgICAg
ICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzFdLm1ldGhvZCwg
J0dFVCcpOwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVl
c3RzWzFdLnVybCwgJy9qc29uL2J1aWxkZXJzL3NvbWUtYnVpbGRlci0xL2J1aWxkcy8/c2VsZWN0
PS0xJnNlbGVjdD0tMicpOwotICAgICAgICAgICAgICAgIE1vY2tSZW1vdGVBUEkucmVxdWVzdHNb
MV0ucmVzb2x2ZSh7Wy0xXTogTW9ja0RhdGEucnVubmluZ0J1aWxkKCksIFstMl06IE1vY2tEYXRh
LmZpbmlzaGVkQnVpbGQoKX0pOworICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVt
b3RlQVBJLnJlcXVlc3RzWzFdLnVybCwgJy9qc29uL2J1aWxkZXJzL3NvbWUtYnVpbGRlci0xL3Bl
bmRpbmdCdWlsZHMnKTsKKyAgICAgICAgICAgICAgICBNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzFd
LnJlc29sdmUoW01vY2tEYXRhLnBlbmRpbmdCdWlsZCgpXSk7CiAgICAgICAgICAgICAgICAgcmV0
dXJuIE1vY2tSZW1vdGVBUEkud2FpdEZvclJlcXVlc3QoKTsKICAgICAgICAgICAgIH0pLnRoZW4o
KCkgPT4gewogICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVl
c3RzWzJdLm1ldGhvZCwgJ0dFVCcpOwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2Nr
UmVtb3RlQVBJLnJlcXVlc3RzWzJdLnVybCwgJy9qc29uL2J1aWxkZXJzL3NvbWUtYnVpbGRlci0x
L3BlbmRpbmdCdWlsZHMnKTsKLSAgICAgICAgICAgICAgICBNb2NrUmVtb3RlQVBJLnJlcXVlc3Rz
WzJdLnJlc29sdmUoW01vY2tEYXRhLnBlbmRpbmdCdWlsZCgpXSkKKyAgICAgICAgICAgICAgICBh
c3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1syXS51cmwsICcvanNvbi9idWlsZGVy
cy9zb21lLWJ1aWxkZXItMS9idWlsZHMvP3NlbGVjdD0tMSZzZWxlY3Q9LTInKTsKKyAgICAgICAg
ICAgICAgICBNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzJdLnJlc29sdmUoe1stMV06IE1vY2tEYXRh
LnJ1bm5pbmdCdWlsZCgpLCBbLTJdOiBNb2NrRGF0YS5maW5pc2hlZEJ1aWxkKCl9KTsKICAgICAg
ICAgICAgICAgICByZXR1cm4gTW9ja1JlbW90ZUFQSS53YWl0Rm9yUmVxdWVzdCgpOwogICAgICAg
ICAgICAgfSkudGhlbigoKSA9PiB7CiAgICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tS
ZW1vdGVBUEkucmVxdWVzdHNbM10ubWV0aG9kLCAnR0VUJyk7Ci0gICAgICAgICAgICAgICAgYXNz
ZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbM10udXJsLCAnL2pzb24vYnVpbGRlcnMv
c29tZS1idWlsZGVyLTEvYnVpbGRzLz9zZWxlY3Q9LTEmc2VsZWN0PS0yJyk7Ci0gICAgICAgICAg
ICAgICAgTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1szXS5yZXNvbHZlKHtbLTFdOiBNb2NrRGF0YS5y
dW5uaW5nQnVpbGQoKSwgWy0yXTogTW9ja0RhdGEuZmluaXNoZWRCdWlsZCgpfSk7CisgICAgICAg
ICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbM10udXJsLCAnL2pz
b24vYnVpbGRlcnMvc29tZS1idWlsZGVyLTEvcGVuZGluZ0J1aWxkcycpOworICAgICAgICAgICAg
ICAgIE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbM10ucmVzb2x2ZShbTW9ja0RhdGEucGVuZGluZ0J1
aWxkKCldKQorICAgICAgICAgICAgICAgIHJldHVybiBNb2NrUmVtb3RlQVBJLndhaXRGb3JSZXF1
ZXN0KCk7CisgICAgICAgICAgICB9KS50aGVuKCgpID0+IHsKKyAgICAgICAgICAgICAgICBhc3Nl
cnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1s0XS5tZXRob2QsICdHRVQnKTsKKyAgICAg
ICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1s0XS51cmwsICcv
anNvbi9idWlsZGVycy9zb21lLWJ1aWxkZXItMS9idWlsZHMvP3NlbGVjdD0tMSZzZWxlY3Q9LTIn
KTsKKyAgICAgICAgICAgICAgICBNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzRdLnJlc29sdmUoe1st
MV06IE1vY2tEYXRhLnJ1bm5pbmdCdWlsZCgpLCBbLTJdOiBNb2NrRGF0YS5maW5pc2hlZEJ1aWxk
KCl9KTsKICAgICAgICAgICAgICAgICByZXR1cm4gc3luY1Byb21pc2U7CiAgICAgICAgICAgICB9
KS50aGVuKCgpID0+IHsKICAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoQnVpbGRSZXF1ZXN0
LmFsbCgpLmxlbmd0aCwgNCk7CkBAIC0xMzgsNDkgKzE0MCw1MCBAQCBkZXNjcmliZSgnQnVpbGRi
b3RUcmlnZ2VyYWJsZScsIGZ1bmN0aW9uCiAgICAgICAgICAgICAgICAgY29uc3Qgc2xhdmVJbmZv
ID0ge25hbWU6ICdzeW5jLXNsYXZlJywgcGFzc3dvcmQ6ICdwYXNzd29yZCd9OwogICAgICAgICAg
ICAgICAgIGNvbnN0IHRyaWdnZXJhYmxlID0gbmV3IEJ1aWxkYm90VHJpZ2dlcmFibGUoY29uZmln
LCBUZXN0U2VydmVyLnJlbW90ZUFQSSgpLCBNb2NrUmVtb3RlQVBJLCBzbGF2ZUluZm8sIGxvZ2dl
cik7CiAgICAgICAgICAgICAgICAgc3luY1Byb21pc2UgPSB0cmlnZ2VyYWJsZS5pbml0U3luY2Vy
cygpLnRoZW4oKCkgPT4gdHJpZ2dlcmFibGUuc3luY09uY2UoKSk7CisgICAgICAgICAgICAgICAg
YXNzZXJ0UmVxdWVzdEFuZFJlc29sdmUoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1swXSwgJ0dFVCcs
IE1vY2tEYXRhLmJ1aWxkYm90QnVpbGRlcnNVUkwoKSwgTW9ja0RhdGEubW9ja0J1aWxkYm90QnVp
bGRlcnMoKSk7CiAgICAgICAgICAgICAgICAgcmV0dXJuIE1vY2tSZW1vdGVBUEkud2FpdEZvclJl
cXVlc3QoKTsKICAgICAgICAgICAgIH0pLnRoZW4oKCkgPT4gewotICAgICAgICAgICAgICAgIGFz
c2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzLmxlbmd0aCwgMik7Ci0gICAgICAgICAg
ICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMF0ubWV0aG9kLCAnR0VU
Jyk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNb
MF0udXJsLCAnL2pzb24vYnVpbGRlcnMvc29tZS1idWlsZGVyLTEvcGVuZGluZ0J1aWxkcycpOwot
ICAgICAgICAgICAgICAgIE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMF0ucmVzb2x2ZShbTW9ja0Rh
dGEucGVuZGluZ0J1aWxkKHtidWlsZFJlcXVlc3RJZDogOTk5fSldKTsKKyAgICAgICAgICAgICAg
ICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0cy5sZW5ndGgsIDMpOwogICAgICAg
ICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzFdLm1ldGhvZCwg
J0dFVCcpOwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVl
c3RzWzFdLnVybCwgJy9qc29uL2J1aWxkZXJzL3NvbWUlMjBidWlsZGVyJTIwMi9wZW5kaW5nQnVp
bGRzJyk7Ci0gICAgICAgICAgICAgICAgTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1sxXS5yZXNvbHZl
KFtdKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0
c1sxXS51cmwsICcvanNvbi9idWlsZGVycy9zb21lLWJ1aWxkZXItMS9wZW5kaW5nQnVpbGRzJyk7
CisgICAgICAgICAgICAgICAgTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1sxXS5yZXNvbHZlKFtNb2Nr
RGF0YS5wZW5kaW5nQnVpbGQoe2J1aWxkUmVxdWVzdElkOiA5OTl9KV0pOworICAgICAgICAgICAg
ICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzJdLm1ldGhvZCwgJ0dFVCcp
OworICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzJd
LnVybCwgJy9qc29uL2J1aWxkZXJzL3NvbWUlMjBidWlsZGVyJTIwMi9wZW5kaW5nQnVpbGRzJyk7
CisgICAgICAgICAgICAgICAgTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1syXS5yZXNvbHZlKFtdKTsK
ICAgICAgICAgICAgICAgICByZXR1cm4gTW9ja1JlbW90ZUFQSS53YWl0Rm9yUmVxdWVzdCgpOwog
ICAgICAgICAgICAgfSkudGhlbigoKSA9PiB7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFs
KE1vY2tSZW1vdGVBUEkucmVxdWVzdHMubGVuZ3RoLCA0KTsKLSAgICAgICAgICAgICAgICBhc3Nl
cnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1syXS5tZXRob2QsICdHRVQnKTsKLSAgICAg
ICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1syXS51cmwsICcv
anNvbi9idWlsZGVycy9zb21lLWJ1aWxkZXItMS9idWlsZHMvP3NlbGVjdD0tMSZzZWxlY3Q9LTIn
KTsKLSAgICAgICAgICAgICAgICBNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzJdLnJlc29sdmUoe30p
OworICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzLmxl
bmd0aCwgNSk7CiAgICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVx
dWVzdHNbM10ubWV0aG9kLCAnR0VUJyk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1v
Y2tSZW1vdGVBUEkucmVxdWVzdHNbM10udXJsLCAnL2pzb24vYnVpbGRlcnMvc29tZSUyMGJ1aWxk
ZXIlMjAyL2J1aWxkcy8/c2VsZWN0PS0xJnNlbGVjdD0tMicpOworICAgICAgICAgICAgICAgIGFz
c2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzNdLnVybCwgJy9qc29uL2J1aWxkZXJz
L3NvbWUtYnVpbGRlci0xL2J1aWxkcy8/c2VsZWN0PS0xJnNlbGVjdD0tMicpOwogICAgICAgICAg
ICAgICAgIE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbM10ucmVzb2x2ZSh7fSk7CisgICAgICAgICAg
ICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbNF0ubWV0aG9kLCAnR0VU
Jyk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNb
NF0udXJsLCAnL2pzb24vYnVpbGRlcnMvc29tZSUyMGJ1aWxkZXIlMjAyL2J1aWxkcy8/c2VsZWN0
PS0xJnNlbGVjdD0tMicpOworICAgICAgICAgICAgICAgIE1vY2tSZW1vdGVBUEkucmVxdWVzdHNb
NF0ucmVzb2x2ZSh7fSk7CiAgICAgICAgICAgICAgICAgcmV0dXJuIE1vY2tSZW1vdGVBUEkud2Fp
dEZvclJlcXVlc3QoKTsKICAgICAgICAgICAgIH0pLnRoZW4oKCkgPT4gewotICAgICAgICAgICAg
ICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzLmxlbmd0aCwgNSk7Ci0gICAg
ICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbNF0ubWV0aG9k
LCAnUE9TVCcpOwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJl
cXVlc3RzWzRdLnVybCwgJy9idWlsZGVycy9zb21lJTIwYnVpbGRlciUyMDIvZm9yY2UnKTsKLSAg
ICAgICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbNF0u
ZGF0YSwgeyd3ayc6ICcxOTE2MjInLCAnb3MnOiAnMTAuMTEgMTVBMjg0JywgJ2J1aWxkLXJlcXVl
c3QtaWQnOiAnNzAwJ30pOwotICAgICAgICAgICAgICAgIE1vY2tSZW1vdGVBUEkucmVxdWVzdHNb
NF0ucmVzb2x2ZSgnT0snKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90
ZUFQSS5yZXF1ZXN0cy5sZW5ndGgsIDYpOworICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChN
b2NrUmVtb3RlQVBJLnJlcXVlc3RzWzVdLm1ldGhvZCwgJ1BPU1QnKTsKKyAgICAgICAgICAgICAg
ICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1s1XS51cmwsICcvYnVpbGRlcnMv
c29tZSUyMGJ1aWxkZXIlMjAyL2ZvcmNlJyk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LmRlZXBF
cXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzVdLmRhdGEsIHsnd2snOiAnMTkxNjIyJywgJ29z
JzogJzEwLjExIDE1QTI4NCcsICdidWlsZC1yZXF1ZXN0LWlkJzogJzcwMCd9KTsKKyAgICAgICAg
ICAgICAgICBNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzVdLnJlc29sdmUoJ09LJyk7CiAgICAgICAg
ICAgICAgICAgcmV0dXJuIE1vY2tSZW1vdGVBUEkud2FpdEZvclJlcXVlc3QoKTsKICAgICAgICAg
ICAgIH0pLnRoZW4oKCkgPT4gewotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVt
b3RlQVBJLnJlcXVlc3RzLmxlbmd0aCwgNyk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFs
KE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbNV0ubWV0aG9kLCAnR0VUJyk7Ci0gICAgICAgICAgICAg
ICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbNV0udXJsLCAnL2pzb24vYnVp
bGRlcnMvc29tZS1idWlsZGVyLTEvcGVuZGluZ0J1aWxkcycpOwotICAgICAgICAgICAgICAgIE1v
Y2tSZW1vdGVBUEkucmVxdWVzdHNbNV0ucmVzb2x2ZShbTW9ja0RhdGEucGVuZGluZ0J1aWxkKHti
dWlsZFJlcXVlc3RJZDogOTk5fSldKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9j
a1JlbW90ZUFQSS5yZXF1ZXN0cy5sZW5ndGgsIDgpOwogICAgICAgICAgICAgICAgIGFzc2VydC5l
cXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzZdLm1ldGhvZCwgJ0dFVCcpOwotICAgICAgICAg
ICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzZdLnVybCwgJy9qc29u
L2J1aWxkZXJzL3NvbWUlMjBidWlsZGVyJTIwMi9wZW5kaW5nQnVpbGRzJyk7Ci0gICAgICAgICAg
ICAgICAgTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1s2XS5yZXNvbHZlKFtNb2NrRGF0YS5wZW5kaW5n
QnVpbGQoe2J1aWxkZXI6ICdzb21lIGJ1aWxkZXIgMicsIGJ1aWxkUmVxdWVzdElkOiA3MDB9KV0p
OworICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzZd
LnVybCwgJy9qc29uL2J1aWxkZXJzL3NvbWUtYnVpbGRlci0xL3BlbmRpbmdCdWlsZHMnKTsKKyAg
ICAgICAgICAgICAgICBNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzZdLnJlc29sdmUoW01vY2tEYXRh
LnBlbmRpbmdCdWlsZCh7YnVpbGRSZXF1ZXN0SWQ6IDk5OX0pXSk7CisgICAgICAgICAgICAgICAg
YXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbN10ubWV0aG9kLCAnR0VUJyk7Cisg
ICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbN10udXJs
LCAnL2pzb24vYnVpbGRlcnMvc29tZSUyMGJ1aWxkZXIlMjAyL3BlbmRpbmdCdWlsZHMnKTsKKyAg
ICAgICAgICAgICAgICBNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzddLnJlc29sdmUoW01vY2tEYXRh
LnBlbmRpbmdCdWlsZCh7YnVpbGRlcjogJ3NvbWUgYnVpbGRlciAyJywgYnVpbGRSZXF1ZXN0SWQ6
IDcwMH0pXSk7CiAgICAgICAgICAgICAgICAgcmV0dXJuIE1vY2tSZW1vdGVBUEkud2FpdEZvclJl
cXVlc3QoKTsKICAgICAgICAgICAgIH0pLnRoZW4oKCkgPT4gewotICAgICAgICAgICAgICAgIGFz
c2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzLmxlbmd0aCwgOSk7Ci0gICAgICAgICAg
ICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbN10ubWV0aG9kLCAnR0VU
Jyk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNb
N10udXJsLCAnL2pzb24vYnVpbGRlcnMvc29tZS1idWlsZGVyLTEvYnVpbGRzLz9zZWxlY3Q9LTEm
c2VsZWN0PS0yJyk7Ci0gICAgICAgICAgICAgICAgTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1s3XS5y
ZXNvbHZlKHt9KTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5y
ZXF1ZXN0cy5sZW5ndGgsIDEwKTsKICAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1Jl
bW90ZUFQSS5yZXF1ZXN0c1s4XS5tZXRob2QsICdHRVQnKTsKLSAgICAgICAgICAgICAgICBhc3Nl
cnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1s4XS51cmwsICcvanNvbi9idWlsZGVycy9z
b21lJTIwYnVpbGRlciUyMDIvYnVpbGRzLz9zZWxlY3Q9LTEmc2VsZWN0PS0yJyk7CisgICAgICAg
ICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbOF0udXJsLCAnL2pz
b24vYnVpbGRlcnMvc29tZS1idWlsZGVyLTEvYnVpbGRzLz9zZWxlY3Q9LTEmc2VsZWN0PS0yJyk7
CiAgICAgICAgICAgICAgICAgTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1s4XS5yZXNvbHZlKHt9KTsK
KyAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1s5XS5t
ZXRob2QsICdHRVQnKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQ
SS5yZXF1ZXN0c1s5XS51cmwsICcvanNvbi9idWlsZGVycy9zb21lJTIwYnVpbGRlciUyMDIvYnVp
bGRzLz9zZWxlY3Q9LTEmc2VsZWN0PS0yJyk7CisgICAgICAgICAgICAgICAgTW9ja1JlbW90ZUFQ
SS5yZXF1ZXN0c1s5XS5yZXNvbHZlKHt9KTsKICAgICAgICAgICAgICAgICByZXR1cm4gc3luY1By
b21pc2U7CiAgICAgICAgICAgICB9KS50aGVuKCgpID0+IHsKICAgICAgICAgICAgICAgICBhc3Nl
cnQuZXF1YWwoQnVpbGRSZXF1ZXN0LmFsbCgpLmxlbmd0aCwgNCk7CkBAIC0yMTcsNDIgKzIyMCw0
MyBAQCBkZXNjcmliZSgnQnVpbGRib3RUcmlnZ2VyYWJsZScsIGZ1bmN0aW9uCiAgICAgICAgICAg
ICAgICAgbGV0IHNsYXZlSW5mbyA9IHtuYW1lOiAnc3luYy1zbGF2ZScsIHBhc3N3b3JkOiAncGFz
c3dvcmQnfTsKICAgICAgICAgICAgICAgICBsZXQgdHJpZ2dlcmFibGUgPSBuZXcgQnVpbGRib3RU
cmlnZ2VyYWJsZShjb25maWcsIFRlc3RTZXJ2ZXIucmVtb3RlQVBJKCksIE1vY2tSZW1vdGVBUEks
IHNsYXZlSW5mbywgbG9nZ2VyKTsKICAgICAgICAgICAgICAgICBzeW5jUHJvbWlzZSA9IHRyaWdn
ZXJhYmxlLmluaXRTeW5jZXJzKCkudGhlbigoKSA9PiB0cmlnZ2VyYWJsZS5zeW5jT25jZSgpKTsK
KyAgICAgICAgICAgICAgICBhc3NlcnRSZXF1ZXN0QW5kUmVzb2x2ZShNb2NrUmVtb3RlQVBJLnJl
cXVlc3RzWzBdLCAnR0VUJywgTW9ja0RhdGEuYnVpbGRib3RCdWlsZGVyc1VSTCgpLCBNb2NrRGF0
YS5tb2NrQnVpbGRib3RCdWlsZGVycygpKTsKICAgICAgICAgICAgICAgICByZXR1cm4gTW9ja1Jl
bW90ZUFQSS53YWl0Rm9yUmVxdWVzdCgpOwogICAgICAgICAgICAgfSkudGhlbigoKSA9PiB7Ci0g
ICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHMubGVuZ3Ro
LCAyKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0
c1swXS5tZXRob2QsICdHRVQnKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1Jl
bW90ZUFQSS5yZXF1ZXN0c1swXS51cmwsICcvanNvbi9idWlsZGVycy9zb21lLWJ1aWxkZXItMS9w
ZW5kaW5nQnVpbGRzJyk7Ci0gICAgICAgICAgICAgICAgTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1sw
XS5yZXNvbHZlKFtNb2NrRGF0YS5wZW5kaW5nQnVpbGQoe2J1aWxkUmVxdWVzdElkOiA3MDB9KV0p
OworICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzLmxl
bmd0aCwgMyk7CiAgICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVx
dWVzdHNbMV0ubWV0aG9kLCAnR0VUJyk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1v
Y2tSZW1vdGVBUEkucmVxdWVzdHNbMV0udXJsLCAnL2pzb24vYnVpbGRlcnMvc29tZSUyMGJ1aWxk
ZXIlMjAyL3BlbmRpbmdCdWlsZHMnKTsKLSAgICAgICAgICAgICAgICBNb2NrUmVtb3RlQVBJLnJl
cXVlc3RzWzFdLnJlc29sdmUoW10pOworICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2Nr
UmVtb3RlQVBJLnJlcXVlc3RzWzFdLnVybCwgJy9qc29uL2J1aWxkZXJzL3NvbWUtYnVpbGRlci0x
L3BlbmRpbmdCdWlsZHMnKTsKKyAgICAgICAgICAgICAgICBNb2NrUmVtb3RlQVBJLnJlcXVlc3Rz
WzFdLnJlc29sdmUoW01vY2tEYXRhLnBlbmRpbmdCdWlsZCh7YnVpbGRSZXF1ZXN0SWQ6IDcwMH0p
XSk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNb
Ml0ubWV0aG9kLCAnR0VUJyk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1v
dGVBUEkucmVxdWVzdHNbMl0udXJsLCAnL2pzb24vYnVpbGRlcnMvc29tZSUyMGJ1aWxkZXIlMjAy
L3BlbmRpbmdCdWlsZHMnKTsKKyAgICAgICAgICAgICAgICBNb2NrUmVtb3RlQVBJLnJlcXVlc3Rz
WzJdLnJlc29sdmUoW10pOwogICAgICAgICAgICAgICAgIHJldHVybiBNb2NrUmVtb3RlQVBJLndh
aXRGb3JSZXF1ZXN0KCk7CiAgICAgICAgICAgICB9KS50aGVuKCgpID0+IHsKLSAgICAgICAgICAg
ICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0cy5sZW5ndGgsIDQpOwotICAg
ICAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzJdLm1ldGhv
ZCwgJ0dFVCcpOwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJl
cXVlc3RzWzJdLnVybCwgJy9qc29uL2J1aWxkZXJzL3NvbWUtYnVpbGRlci0xL2J1aWxkcy8/c2Vs
ZWN0PS0xJnNlbGVjdD0tMicpOwotICAgICAgICAgICAgICAgIE1vY2tSZW1vdGVBUEkucmVxdWVz
dHNbMl0ucmVzb2x2ZSh7fSk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1v
dGVBUEkucmVxdWVzdHMubGVuZ3RoLCA1KTsKICAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwo
TW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1szXS5tZXRob2QsICdHRVQnKTsKLSAgICAgICAgICAgICAg
ICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1szXS51cmwsICcvanNvbi9idWls
ZGVycy9zb21lJTIwYnVpbGRlciUyMDIvYnVpbGRzLz9zZWxlY3Q9LTEmc2VsZWN0PS0yJyk7Cisg
ICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbM10udXJs
LCAnL2pzb24vYnVpbGRlcnMvc29tZS1idWlsZGVyLTEvYnVpbGRzLz9zZWxlY3Q9LTEmc2VsZWN0
PS0yJyk7CiAgICAgICAgICAgICAgICAgTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1szXS5yZXNvbHZl
KHt9KTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0
c1s0XS5tZXRob2QsICdHRVQnKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1Jl
bW90ZUFQSS5yZXF1ZXN0c1s0XS51cmwsICcvanNvbi9idWlsZGVycy9zb21lJTIwYnVpbGRlciUy
MDIvYnVpbGRzLz9zZWxlY3Q9LTEmc2VsZWN0PS0yJyk7CisgICAgICAgICAgICAgICAgTW9ja1Jl
bW90ZUFQSS5yZXF1ZXN0c1s0XS5yZXNvbHZlKHt9KTsKICAgICAgICAgICAgICAgICByZXR1cm4g
TW9ja1JlbW90ZUFQSS53YWl0Rm9yUmVxdWVzdCgpOwogICAgICAgICAgICAgfSkudGhlbigoKSA9
PiB7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHMu
bGVuZ3RoLCA2KTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5y
ZXF1ZXN0c1s0XS5tZXRob2QsICdHRVQnKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwo
TW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1s0XS51cmwsICcvanNvbi9idWlsZGVycy9zb21lLWJ1aWxk
ZXItMS9wZW5kaW5nQnVpbGRzJyk7Ci0gICAgICAgICAgICAgICAgTW9ja1JlbW90ZUFQSS5yZXF1
ZXN0c1s0XS5yZXNvbHZlKFtNb2NrRGF0YS5wZW5kaW5nQnVpbGQoe2J1aWxkUmVxdWVzdElkOiA3
MDB9KV0pOworICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVl
c3RzLmxlbmd0aCwgNyk7CiAgICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVB
UEkucmVxdWVzdHNbNV0ubWV0aG9kLCAnR0VUJyk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVx
dWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbNV0udXJsLCAnL2pzb24vYnVpbGRlcnMvc29tZSUy
MGJ1aWxkZXIlMjAyL3BlbmRpbmdCdWlsZHMnKTsKLSAgICAgICAgICAgICAgICBNb2NrUmVtb3Rl
QVBJLnJlcXVlc3RzWzVdLnJlc29sdmUoW10pOworICAgICAgICAgICAgICAgIGFzc2VydC5lcXVh
bChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzVdLnVybCwgJy9qc29uL2J1aWxkZXJzL3NvbWUtYnVp
bGRlci0xL3BlbmRpbmdCdWlsZHMnKTsKKyAgICAgICAgICAgICAgICBNb2NrUmVtb3RlQVBJLnJl
cXVlc3RzWzVdLnJlc29sdmUoW01vY2tEYXRhLnBlbmRpbmdCdWlsZCh7YnVpbGRSZXF1ZXN0SWQ6
IDcwMH0pXSk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVx
dWVzdHNbNl0ubWV0aG9kLCAnR0VUJyk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1v
Y2tSZW1vdGVBUEkucmVxdWVzdHNbNl0udXJsLCAnL2pzb24vYnVpbGRlcnMvc29tZSUyMGJ1aWxk
ZXIlMjAyL3BlbmRpbmdCdWlsZHMnKTsKKyAgICAgICAgICAgICAgICBNb2NrUmVtb3RlQVBJLnJl
cXVlc3RzWzZdLnJlc29sdmUoW10pOwogICAgICAgICAgICAgICAgIHJldHVybiBNb2NrUmVtb3Rl
QVBJLndhaXRGb3JSZXF1ZXN0KCk7CiAgICAgICAgICAgICB9KS50aGVuKCgpID0+IHsKLSAgICAg
ICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0cy5sZW5ndGgsIDgp
OwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzZd
Lm1ldGhvZCwgJ0dFVCcpOwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3Rl
QVBJLnJlcXVlc3RzWzZdLnVybCwgJy9qc29uL2J1aWxkZXJzL3NvbWUtYnVpbGRlci0xL2J1aWxk
cy8/c2VsZWN0PS0xJnNlbGVjdD0tMicpOwotICAgICAgICAgICAgICAgIE1vY2tSZW1vdGVBUEku
cmVxdWVzdHNbNl0ucmVzb2x2ZSh7fSk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1v
Y2tSZW1vdGVBUEkucmVxdWVzdHMubGVuZ3RoLCA5KTsKICAgICAgICAgICAgICAgICBhc3NlcnQu
ZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1s3XS5tZXRob2QsICdHRVQnKTsKLSAgICAgICAg
ICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1s3XS51cmwsICcvanNv
bi9idWlsZGVycy9zb21lJTIwYnVpbGRlciUyMDIvYnVpbGRzLz9zZWxlY3Q9LTEmc2VsZWN0PS0y
Jyk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNb
N10udXJsLCAnL2pzb24vYnVpbGRlcnMvc29tZS1idWlsZGVyLTEvYnVpbGRzLz9zZWxlY3Q9LTEm
c2VsZWN0PS0yJyk7CiAgICAgICAgICAgICAgICAgTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1s3XS5y
ZXNvbHZlKHt9KTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5y
ZXF1ZXN0c1s4XS5tZXRob2QsICdHRVQnKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwo
TW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1s4XS51cmwsICcvanNvbi9idWlsZGVycy9zb21lJTIwYnVp
bGRlciUyMDIvYnVpbGRzLz9zZWxlY3Q9LTEmc2VsZWN0PS0yJyk7CisgICAgICAgICAgICAgICAg
TW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1s4XS5yZXNvbHZlKHt9KTsKICAgICAgICAgICAgICAgICBy
ZXR1cm4gc3luY1Byb21pc2U7CiAgICAgICAgICAgICB9KS50aGVuKCgpID0+IHsKICAgICAgICAg
ICAgICAgICBhc3NlcnQuZXF1YWwoQnVpbGRSZXF1ZXN0LmFsbCgpLmxlbmd0aCwgNCk7CkBAIC0y
ODksNDkgKzI5Myw1MCBAQCBkZXNjcmliZSgnQnVpbGRib3RUcmlnZ2VyYWJsZScsIGZ1bmN0aW9u
CiAgICAgICAgICAgICAgICAgY29uc3Qgc2xhdmVJbmZvID0ge25hbWU6ICdzeW5jLXNsYXZlJywg
cGFzc3dvcmQ6ICdwYXNzd29yZCd9OwogICAgICAgICAgICAgICAgIGNvbnN0IHRyaWdnZXJhYmxl
ID0gbmV3IEJ1aWxkYm90VHJpZ2dlcmFibGUoY29uZmlnLCBUZXN0U2VydmVyLnJlbW90ZUFQSSgp
LCBNb2NrUmVtb3RlQVBJLCBzbGF2ZUluZm8sIGxvZ2dlcik7CiAgICAgICAgICAgICAgICAgc3lu
Y1Byb21pc2UgPSB0cmlnZ2VyYWJsZS5pbml0U3luY2VycygpLnRoZW4oKCkgPT4gdHJpZ2dlcmFi
bGUuc3luY09uY2UoKSk7CisgICAgICAgICAgICAgICAgYXNzZXJ0UmVxdWVzdEFuZFJlc29sdmUo
TW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1swXSwgJ0dFVCcsIE1vY2tEYXRhLmJ1aWxkYm90QnVpbGRl
cnNVUkwoKSwgTW9ja0RhdGEubW9ja0J1aWxkYm90QnVpbGRlcnMoKSk7CiAgICAgICAgICAgICAg
ICAgcmV0dXJuIE1vY2tSZW1vdGVBUEkud2FpdEZvclJlcXVlc3QoKTsKICAgICAgICAgICAgIH0p
LnRoZW4oKCkgPT4gewotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJ
LnJlcXVlc3RzLmxlbmd0aCwgMik7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tS
ZW1vdGVBUEkucmVxdWVzdHNbMF0ubWV0aG9kLCAnR0VUJyk7Ci0gICAgICAgICAgICAgICAgYXNz
ZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMF0udXJsLCAnL2pzb24vYnVpbGRlcnMv
c29tZS1idWlsZGVyLTEvcGVuZGluZ0J1aWxkcycpOwotICAgICAgICAgICAgICAgIE1vY2tSZW1v
dGVBUEkucmVxdWVzdHNbMF0ucmVzb2x2ZShbXSk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LmVx
dWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHMubGVuZ3RoLCAzKTsKICAgICAgICAgICAgICAgICBh
c3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1sxXS5tZXRob2QsICdHRVQnKTsKLSAg
ICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1sxXS51cmws
ICcvanNvbi9idWlsZGVycy9zb21lJTIwYnVpbGRlciUyMDIvcGVuZGluZ0J1aWxkcycpOworICAg
ICAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzFdLnVybCwg
Jy9qc29uL2J1aWxkZXJzL3NvbWUtYnVpbGRlci0xL3BlbmRpbmdCdWlsZHMnKTsKICAgICAgICAg
ICAgICAgICBNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzFdLnJlc29sdmUoW10pOworICAgICAgICAg
ICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzJdLm1ldGhvZCwgJ0dF
VCcpOworICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3Rz
WzJdLnVybCwgJy9qc29uL2J1aWxkZXJzL3NvbWUlMjBidWlsZGVyJTIwMi9wZW5kaW5nQnVpbGRz
Jyk7CisgICAgICAgICAgICAgICAgTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1syXS5yZXNvbHZlKFtd
KTsKICAgICAgICAgICAgICAgICByZXR1cm4gTW9ja1JlbW90ZUFQSS53YWl0Rm9yUmVxdWVzdCgp
OwogICAgICAgICAgICAgfSkudGhlbigoKSA9PiB7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVx
dWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHMubGVuZ3RoLCA0KTsKLSAgICAgICAgICAgICAgICBh
c3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1syXS5tZXRob2QsICdHRVQnKTsKLSAg
ICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1syXS51cmws
ICcvanNvbi9idWlsZGVycy9zb21lLWJ1aWxkZXItMS9idWlsZHMvP3NlbGVjdD0tMSZzZWxlY3Q9
LTInKTsKLSAgICAgICAgICAgICAgICBNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzJdLnJlc29sdmUo
e1stMV06IE1vY2tEYXRhLnJ1bm5pbmdCdWlsZCh7YnVpbGRSZXF1ZXN0SWQ6IDcwMX0pLCBbLTJd
OiBNb2NrRGF0YS5maW5pc2hlZEJ1aWxkKHtidWlsZFJlcXVlc3RJZDogNzAwfSl9KTsKKyAgICAg
ICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0cy5sZW5ndGgsIDUp
OwogICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzNd
Lm1ldGhvZCwgJ0dFVCcpOwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3Rl
QVBJLnJlcXVlc3RzWzNdLnVybCwgJy9qc29uL2J1aWxkZXJzL3NvbWUlMjBidWlsZGVyJTIwMi9i
dWlsZHMvP3NlbGVjdD0tMSZzZWxlY3Q9LTInKTsKLSAgICAgICAgICAgICAgICBNb2NrUmVtb3Rl
QVBJLnJlcXVlc3RzWzNdLnJlc29sdmUoe30pOworICAgICAgICAgICAgICAgIGFzc2VydC5lcXVh
bChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzNdLnVybCwgJy9qc29uL2J1aWxkZXJzL3NvbWUtYnVp
bGRlci0xL2J1aWxkcy8/c2VsZWN0PS0xJnNlbGVjdD0tMicpOworICAgICAgICAgICAgICAgIE1v
Y2tSZW1vdGVBUEkucmVxdWVzdHNbM10ucmVzb2x2ZSh7Wy0xXTogTW9ja0RhdGEucnVubmluZ0J1
aWxkKHtidWlsZFJlcXVlc3RJZDogNzAxfSksIFstMl06IE1vY2tEYXRhLmZpbmlzaGVkQnVpbGQo
e2J1aWxkUmVxdWVzdElkOiA3MDB9KX0pOworICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChN
b2NrUmVtb3RlQVBJLnJlcXVlc3RzWzRdLm1ldGhvZCwgJ0dFVCcpOworICAgICAgICAgICAgICAg
IGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzRdLnVybCwgJy9qc29uL2J1aWxk
ZXJzL3NvbWUlMjBidWlsZGVyJTIwMi9idWlsZHMvP3NlbGVjdD0tMSZzZWxlY3Q9LTInKTsKKyAg
ICAgICAgICAgICAgICBNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzRdLnJlc29sdmUoe30pOwogICAg
ICAgICAgICAgICAgIHJldHVybiBNb2NrUmVtb3RlQVBJLndhaXRGb3JSZXF1ZXN0KCk7CiAgICAg
ICAgICAgICB9KS50aGVuKCgpID0+IHsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9j
a1JlbW90ZUFQSS5yZXF1ZXN0cy5sZW5ndGgsIDUpOwotICAgICAgICAgICAgICAgIGFzc2VydC5l
cXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzRdLm1ldGhvZCwgJ1BPU1QnKTsKLSAgICAgICAg
ICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1s0XS51cmwsICcvYnVp
bGRlcnMvc29tZS1idWlsZGVyLTEvZm9yY2UnKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZGVl
cEVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbNF0uZGF0YSwgeyd3ayc6ICcxOTE2MjInLCAn
b3MnOiAnMTAuMTEgMTVBMjg0JywgJ2J1aWxkLXJlcXVlc3QtaWQnOiAnNzAyJ30pOwotICAgICAg
ICAgICAgICAgIE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbNF0ucmVzb2x2ZSgnT0snKTsKKyAgICAg
ICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0cy5sZW5ndGgsIDYp
OworICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzVd
Lm1ldGhvZCwgJ1BPU1QnKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90
ZUFQSS5yZXF1ZXN0c1s1XS51cmwsICcvYnVpbGRlcnMvc29tZS1idWlsZGVyLTEvZm9yY2UnKTsK
KyAgICAgICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNb
NV0uZGF0YSwgeyd3ayc6ICcxOTE2MjInLCAnb3MnOiAnMTAuMTEgMTVBMjg0JywgJ2J1aWxkLXJl
cXVlc3QtaWQnOiAnNzAyJ30pOworICAgICAgICAgICAgICAgIE1vY2tSZW1vdGVBUEkucmVxdWVz
dHNbNV0ucmVzb2x2ZSgnT0snKTsKICAgICAgICAgICAgICAgICByZXR1cm4gTW9ja1JlbW90ZUFQ
SS53YWl0Rm9yUmVxdWVzdCgpOwogICAgICAgICAgICAgfSkudGhlbigoKSA9PiB7Ci0gICAgICAg
ICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHMubGVuZ3RoLCA3KTsK
LSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1s1XS5t
ZXRob2QsICdHRVQnKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQ
SS5yZXF1ZXN0c1s1XS51cmwsICcvanNvbi9idWlsZGVycy9zb21lLWJ1aWxkZXItMS9wZW5kaW5n
QnVpbGRzJyk7Ci0gICAgICAgICAgICAgICAgTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1s1XS5yZXNv
bHZlKFtNb2NrRGF0YS5wZW5kaW5nQnVpbGQoe2J1aWxkUmVxdWVzdElkOiA3MDJ9KV0pOworICAg
ICAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzLmxlbmd0aCwg
OCk7CiAgICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNb
Nl0ubWV0aG9kLCAnR0VUJyk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1v
dGVBUEkucmVxdWVzdHNbNl0udXJsLCAnL2pzb24vYnVpbGRlcnMvc29tZSUyMGJ1aWxkZXIlMjAy
L3BlbmRpbmdCdWlsZHMnKTsKLSAgICAgICAgICAgICAgICBNb2NrUmVtb3RlQVBJLnJlcXVlc3Rz
WzZdLnJlc29sdmUoW10pOworICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3Rl
QVBJLnJlcXVlc3RzWzZdLnVybCwgJy9qc29uL2J1aWxkZXJzL3NvbWUtYnVpbGRlci0xL3BlbmRp
bmdCdWlsZHMnKTsKKyAgICAgICAgICAgICAgICBNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzZdLnJl
c29sdmUoW01vY2tEYXRhLnBlbmRpbmdCdWlsZCh7YnVpbGRSZXF1ZXN0SWQ6IDcwMn0pXSk7Cisg
ICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbN10ubWV0
aG9kLCAnR0VUJyk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEku
cmVxdWVzdHNbN10udXJsLCAnL2pzb24vYnVpbGRlcnMvc29tZSUyMGJ1aWxkZXIlMjAyL3BlbmRp
bmdCdWlsZHMnKTsKKyAgICAgICAgICAgICAgICBNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzddLnJl
c29sdmUoW10pOwogICAgICAgICAgICAgICAgIHJldHVybiBNb2NrUmVtb3RlQVBJLndhaXRGb3JS
ZXF1ZXN0KCk7CiAgICAgICAgICAgICB9KS50aGVuKCgpID0+IHsKLSAgICAgICAgICAgICAgICBh
c3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0cy5sZW5ndGgsIDkpOwotICAgICAgICAg
ICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzddLm1ldGhvZCwgJ0dF
VCcpOwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3Rz
WzddLnVybCwgJy9qc29uL2J1aWxkZXJzL3NvbWUtYnVpbGRlci0xL2J1aWxkcy8/c2VsZWN0PS0x
JnNlbGVjdD0tMicpOwotICAgICAgICAgICAgICAgIE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbN10u
cmVzb2x2ZSh7Wy0xXTogTW9ja0RhdGEucnVubmluZ0J1aWxkKHtidWlsZFJlcXVlc3RJZDogNzAx
fSksIFstMl06IE1vY2tEYXRhLmZpbmlzaGVkQnVpbGQoe2J1aWxkUmVxdWVzdElkOiA3MDB9KX0p
OworICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzLmxl
bmd0aCwgMTApOwogICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJl
cXVlc3RzWzhdLm1ldGhvZCwgJ0dFVCcpOwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChN
b2NrUmVtb3RlQVBJLnJlcXVlc3RzWzhdLnVybCwgJy9qc29uL2J1aWxkZXJzL3NvbWUlMjBidWls
ZGVyJTIwMi9idWlsZHMvP3NlbGVjdD0tMSZzZWxlY3Q9LTInKTsKLSAgICAgICAgICAgICAgICBN
b2NrUmVtb3RlQVBJLnJlcXVlc3RzWzhdLnJlc29sdmUoe30pOworICAgICAgICAgICAgICAgIGFz
c2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzhdLnVybCwgJy9qc29uL2J1aWxkZXJz
L3NvbWUtYnVpbGRlci0xL2J1aWxkcy8/c2VsZWN0PS0xJnNlbGVjdD0tMicpOworICAgICAgICAg
ICAgICAgIE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbOF0ucmVzb2x2ZSh7Wy0xXTogTW9ja0RhdGEu
cnVubmluZ0J1aWxkKHtidWlsZFJlcXVlc3RJZDogNzAxfSksIFstMl06IE1vY2tEYXRhLmZpbmlz
aGVkQnVpbGQoe2J1aWxkUmVxdWVzdElkOiA3MDB9KX0pOworICAgICAgICAgICAgICAgIGFzc2Vy
dC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzldLm1ldGhvZCwgJ0dFVCcpOworICAgICAg
ICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzldLnVybCwgJy9q
c29uL2J1aWxkZXJzL3NvbWUlMjBidWlsZGVyJTIwMi9idWlsZHMvP3NlbGVjdD0tMSZzZWxlY3Q9
LTInKTsKKyAgICAgICAgICAgICAgICBNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzldLnJlc29sdmUo
e30pOwogICAgICAgICAgICAgICAgIHJldHVybiBzeW5jUHJvbWlzZTsKICAgICAgICAgICAgIH0p
LnRoZW4oKCkgPT4gewogICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChCdWlsZFJlcXVlc3Qu
YWxsKCkubGVuZ3RoLCA0KTsKQEAgLTM2OCwzMCArMzczLDMxIEBAIGRlc2NyaWJlKCdCdWlsZGJv
dFRyaWdnZXJhYmxlJywgZnVuY3Rpb24KICAgICAgICAgICAgICAgICBsZXQgc2xhdmVJbmZvID0g
e25hbWU6ICdzeW5jLXNsYXZlJywgcGFzc3dvcmQ6ICdwYXNzd29yZCd9OwogICAgICAgICAgICAg
ICAgIGxldCB0cmlnZ2VyYWJsZSA9IG5ldyBCdWlsZGJvdFRyaWdnZXJhYmxlKGNvbmZpZywgVGVz
dFNlcnZlci5yZW1vdGVBUEkoKSwgTW9ja1JlbW90ZUFQSSwgc2xhdmVJbmZvLCBsb2dnZXIpOwog
ICAgICAgICAgICAgICAgIHN5bmNQcm9taXNlID0gdHJpZ2dlcmFibGUuaW5pdFN5bmNlcnMoKS50
aGVuKCgpID0+IHRyaWdnZXJhYmxlLnN5bmNPbmNlKCkpOwotICAgICAgICAgICAgICAgIHJldHVy
biBNb2NrUmVtb3RlQVBJLndhaXRGb3JSZXF1ZXN0KCk7Ci0gICAgICAgICAgICB9KS50aGVuKCgp
ID0+IHsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0
cy5sZW5ndGgsIDEpOwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJ
LnJlcXVlc3RzWzBdLm1ldGhvZCwgJ0dFVCcpOwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVh
bChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzBdLnVybCwgJy9qc29uL2J1aWxkZXJzL3NvbWUtYnVp
bGRlci0xL3BlbmRpbmdCdWlsZHMnKTsKLSAgICAgICAgICAgICAgICBNb2NrUmVtb3RlQVBJLnJl
cXVlc3RzWzBdLnJlc29sdmUoW01vY2tEYXRhLnBlbmRpbmdCdWlsZCh7YnVpbGRSZXF1ZXN0SWQ6
IDcwMH0pXSk7CisgICAgICAgICAgICAgICAgYXNzZXJ0UmVxdWVzdEFuZFJlc29sdmUoTW9ja1Jl
bW90ZUFQSS5yZXF1ZXN0c1swXSwgJ0dFVCcsIE1vY2tEYXRhLmJ1aWxkYm90QnVpbGRlcnNVUkwo
KSwgTW9ja0RhdGEubW9ja0J1aWxkYm90QnVpbGRlcnMoKSk7CiAgICAgICAgICAgICAgICAgcmV0
dXJuIE1vY2tSZW1vdGVBUEkud2FpdEZvclJlcXVlc3QoKTsKICAgICAgICAgICAgIH0pLnRoZW4o
KCkgPT4gewogICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVl
c3RzLmxlbmd0aCwgMik7CiAgICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVB
UEkucmVxdWVzdHNbMV0ubWV0aG9kLCAnR0VUJyk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVx
dWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMV0udXJsLCAnL2pzb24vYnVpbGRlcnMvc29tZS1i
dWlsZGVyLTEvYnVpbGRzLz9zZWxlY3Q9LTEmc2VsZWN0PS0yJyk7Ci0gICAgICAgICAgICAgICAg
TW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1sxXS5yZXNvbHZlKHt9KTsKKyAgICAgICAgICAgICAgICBh
c3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1sxXS51cmwsICcvanNvbi9idWlsZGVy
cy9zb21lLWJ1aWxkZXItMS9wZW5kaW5nQnVpbGRzJyk7CisgICAgICAgICAgICAgICAgTW9ja1Jl
bW90ZUFQSS5yZXF1ZXN0c1sxXS5yZXNvbHZlKFtNb2NrRGF0YS5wZW5kaW5nQnVpbGQoe2J1aWxk
UmVxdWVzdElkOiA3MDB9KV0pOwogICAgICAgICAgICAgICAgIHJldHVybiBNb2NrUmVtb3RlQVBJ
LndhaXRGb3JSZXF1ZXN0KCk7CiAgICAgICAgICAgICB9KS50aGVuKCgpID0+IHsKICAgICAgICAg
ICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0cy5sZW5ndGgsIDMpOwog
ICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzJdLm1l
dGhvZCwgJ0dFVCcpOwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJ
LnJlcXVlc3RzWzJdLnVybCwgJy9qc29uL2J1aWxkZXJzL3NvbWUtYnVpbGRlci0xL3BlbmRpbmdC
dWlsZHMnKTsKLSAgICAgICAgICAgICAgICBNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzJdLnJlc29s
dmUoW10pOworICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVl
c3RzWzJdLnVybCwgJy9qc29uL2J1aWxkZXJzL3NvbWUtYnVpbGRlci0xL2J1aWxkcy8/c2VsZWN0
PS0xJnNlbGVjdD0tMicpOworICAgICAgICAgICAgICAgIE1vY2tSZW1vdGVBUEkucmVxdWVzdHNb
Ml0ucmVzb2x2ZSh7fSk7CiAgICAgICAgICAgICAgICAgcmV0dXJuIE1vY2tSZW1vdGVBUEkud2Fp
dEZvclJlcXVlc3QoKTsKICAgICAgICAgICAgIH0pLnRoZW4oKCkgPT4gewogICAgICAgICAgICAg
ICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzLmxlbmd0aCwgNCk7CiAgICAg
ICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbM10ubWV0aG9k
LCAnR0VUJyk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVx
dWVzdHNbM10udXJsLCAnL2pzb24vYnVpbGRlcnMvc29tZS1idWlsZGVyLTEvYnVpbGRzLz9zZWxl
Y3Q9LTEmc2VsZWN0PS0yJyk7Ci0gICAgICAgICAgICAgICAgTW9ja1JlbW90ZUFQSS5yZXF1ZXN0
c1szXS5yZXNvbHZlKHtbLTFdOiBNb2NrRGF0YS5ydW5uaW5nQnVpbGQoe2J1aWxkUmVxdWVzdElk
OiA3MDB9KX0pOworICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJl
cXVlc3RzWzNdLnVybCwgJy9qc29uL2J1aWxkZXJzL3NvbWUtYnVpbGRlci0xL3BlbmRpbmdCdWls
ZHMnKTsKKyAgICAgICAgICAgICAgICBNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzNdLnJlc29sdmUo
W10pOworICAgICAgICAgICAgICAgIHJldHVybiBNb2NrUmVtb3RlQVBJLndhaXRGb3JSZXF1ZXN0
KCk7CisgICAgICAgICAgICB9KS50aGVuKCgpID0+IHsKKyAgICAgICAgICAgICAgICBhc3NlcnQu
ZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0cy5sZW5ndGgsIDUpOworICAgICAgICAgICAgICAg
IGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzRdLm1ldGhvZCwgJ0dFVCcpOwor
ICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzRdLnVy
bCwgJy9qc29uL2J1aWxkZXJzL3NvbWUtYnVpbGRlci0xL2J1aWxkcy8/c2VsZWN0PS0xJnNlbGVj
dD0tMicpOworICAgICAgICAgICAgICAgIE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbNF0ucmVzb2x2
ZSh7Wy0xXTogTW9ja0RhdGEucnVubmluZ0J1aWxkKHtidWlsZFJlcXVlc3RJZDogNzAwfSl9KTsK
ICAgICAgICAgICAgICAgICByZXR1cm4gc3luY1Byb21pc2U7CiAgICAgICAgICAgICB9KS50aGVu
KCgpID0+IHsKICAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoQnVpbGRSZXF1ZXN0LmFsbCgp
Lmxlbmd0aCwgNCk7CkBAIC00MzEsNDkgKzQzNyw1MCBAQCBkZXNjcmliZSgnQnVpbGRib3RUcmln
Z2VyYWJsZScsIGZ1bmN0aW9uCiAgICAgICAgICAgICAgICAgY29uc3Qgc2xhdmVJbmZvID0ge25h
bWU6ICdzeW5jLXNsYXZlJywgcGFzc3dvcmQ6ICdwYXNzd29yZCd9OwogICAgICAgICAgICAgICAg
IGNvbnN0IHRyaWdnZXJhYmxlID0gbmV3IEJ1aWxkYm90VHJpZ2dlcmFibGUoY29uZmlnLCBUZXN0
U2VydmVyLnJlbW90ZUFQSSgpLCBNb2NrUmVtb3RlQVBJLCBzbGF2ZUluZm8sIGxvZ2dlcik7CiAg
ICAgICAgICAgICAgICAgc3luY1Byb21pc2UgPSB0cmlnZ2VyYWJsZS5pbml0U3luY2VycygpLnRo
ZW4oKCkgPT4gdHJpZ2dlcmFibGUuc3luY09uY2UoKSk7CisgICAgICAgICAgICAgICAgYXNzZXJ0
UmVxdWVzdEFuZFJlc29sdmUoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1swXSwgJ0dFVCcsIE1vY2tE
YXRhLmJ1aWxkYm90QnVpbGRlcnNVUkwoKSwgTW9ja0RhdGEubW9ja0J1aWxkYm90QnVpbGRlcnMo
KSk7CiAgICAgICAgICAgICAgICAgcmV0dXJuIE1vY2tSZW1vdGVBUEkud2FpdEZvclJlcXVlc3Qo
KTsKICAgICAgICAgICAgIH0pLnRoZW4oKCkgPT4gewotICAgICAgICAgICAgICAgIGFzc2VydC5l
cXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzLmxlbmd0aCwgMik7Ci0gICAgICAgICAgICAgICAg
YXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMF0ubWV0aG9kLCAnR0VUJyk7Ci0g
ICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMF0udXJs
LCAnL2pzb24vYnVpbGRlcnMvc29tZS1idWlsZGVyLTEvcGVuZGluZ0J1aWxkcycpOwotICAgICAg
ICAgICAgICAgIE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMF0ucmVzb2x2ZShbTW9ja0RhdGEucGVu
ZGluZ0J1aWxkKHtidWlsZFJlcXVlc3RJZDogNzAyfSldKTsKKyAgICAgICAgICAgICAgICBhc3Nl
cnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0cy5sZW5ndGgsIDMpOwogICAgICAgICAgICAg
ICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzFdLm1ldGhvZCwgJ0dFVCcp
OwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzFd
LnVybCwgJy9qc29uL2J1aWxkZXJzL3NvbWUlMjBidWlsZGVyJTIwMi9wZW5kaW5nQnVpbGRzJyk7
Ci0gICAgICAgICAgICAgICAgTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1sxXS5yZXNvbHZlKFtdKTsK
KyAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1sxXS51
cmwsICcvanNvbi9idWlsZGVycy9zb21lLWJ1aWxkZXItMS9wZW5kaW5nQnVpbGRzJyk7CisgICAg
ICAgICAgICAgICAgTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1sxXS5yZXNvbHZlKFtNb2NrRGF0YS5w
ZW5kaW5nQnVpbGQoe2J1aWxkUmVxdWVzdElkOiA3MDJ9KV0pOworICAgICAgICAgICAgICAgIGFz
c2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzJdLm1ldGhvZCwgJ0dFVCcpOworICAg
ICAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzJdLnVybCwg
Jy9qc29uL2J1aWxkZXJzL3NvbWUlMjBidWlsZGVyJTIwMi9wZW5kaW5nQnVpbGRzJyk7CisgICAg
ICAgICAgICAgICAgTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1syXS5yZXNvbHZlKFtdKTsKICAgICAg
ICAgICAgICAgICByZXR1cm4gTW9ja1JlbW90ZUFQSS53YWl0Rm9yUmVxdWVzdCgpOwogICAgICAg
ICAgICAgfSkudGhlbigoKSA9PiB7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tS
ZW1vdGVBUEkucmVxdWVzdHMubGVuZ3RoLCA0KTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1
YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1syXS5tZXRob2QsICdHRVQnKTsKLSAgICAgICAgICAg
ICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1syXS51cmwsICcvanNvbi9i
dWlsZGVycy9zb21lLWJ1aWxkZXItMS9idWlsZHMvP3NlbGVjdD0tMSZzZWxlY3Q9LTInKTsKLSAg
ICAgICAgICAgICAgICBNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzJdLnJlc29sdmUoe1stMV06IE1v
Y2tEYXRhLnJ1bm5pbmdCdWlsZCh7YnVpbGRSZXF1ZXN0SWQ6IDcwMX0pLCBbLTJdOiBNb2NrRGF0
YS5maW5pc2hlZEJ1aWxkKHtidWlsZFJlcXVlc3RJZDogNzAwfSl9KTsKKyAgICAgICAgICAgICAg
ICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0cy5sZW5ndGgsIDUpOwogICAgICAg
ICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzNdLm1ldGhvZCwg
J0dFVCcpOwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVl
c3RzWzNdLnVybCwgJy9qc29uL2J1aWxkZXJzL3NvbWUlMjBidWlsZGVyJTIwMi9idWlsZHMvP3Nl
bGVjdD0tMSZzZWxlY3Q9LTInKTsKLSAgICAgICAgICAgICAgICBNb2NrUmVtb3RlQVBJLnJlcXVl
c3RzWzNdLnJlc29sdmUoe30pOworICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVt
b3RlQVBJLnJlcXVlc3RzWzNdLnVybCwgJy9qc29uL2J1aWxkZXJzL3NvbWUtYnVpbGRlci0xL2J1
aWxkcy8/c2VsZWN0PS0xJnNlbGVjdD0tMicpOworICAgICAgICAgICAgICAgIE1vY2tSZW1vdGVB
UEkucmVxdWVzdHNbM10ucmVzb2x2ZSh7Wy0xXTogTW9ja0RhdGEucnVubmluZ0J1aWxkKHtidWls
ZFJlcXVlc3RJZDogNzAxfSksIFstMl06IE1vY2tEYXRhLmZpbmlzaGVkQnVpbGQoe2J1aWxkUmVx
dWVzdElkOiA3MDB9KX0pOworICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3Rl
QVBJLnJlcXVlc3RzWzRdLm1ldGhvZCwgJ0dFVCcpOworICAgICAgICAgICAgICAgIGFzc2VydC5l
cXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzRdLnVybCwgJy9qc29uL2J1aWxkZXJzL3NvbWUl
MjBidWlsZGVyJTIwMi9idWlsZHMvP3NlbGVjdD0tMSZzZWxlY3Q9LTInKTsKKyAgICAgICAgICAg
ICAgICBNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzRdLnJlc29sdmUoe30pOwogICAgICAgICAgICAg
ICAgIHJldHVybiBNb2NrUmVtb3RlQVBJLndhaXRGb3JSZXF1ZXN0KCk7CiAgICAgICAgICAgICB9
KS50aGVuKCgpID0+IHsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQ
SS5yZXF1ZXN0cy5sZW5ndGgsIDUpOwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2Nr
UmVtb3RlQVBJLnJlcXVlc3RzWzRdLm1ldGhvZCwgJ1BPU1QnKTsKLSAgICAgICAgICAgICAgICBh
c3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1s0XS51cmwsICcvYnVpbGRlcnMvc29t
ZSUyMGJ1aWxkZXIlMjAyL2ZvcmNlJyk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVh
bChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzRdLmRhdGEsIHsnd2snOiAnMTkxNjIyJywgJ29zJzog
JzEwLjExIDE1QTI4NCcsICdidWlsZC1yZXF1ZXN0LWlkJzogJzcxMCd9KTsKLSAgICAgICAgICAg
ICAgICBNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzRdLnJlc29sdmUoJ09LJyk7CisgICAgICAgICAg
ICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHMubGVuZ3RoLCA2KTsKKyAg
ICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1s1XS5tZXRo
b2QsICdQT1NUJyk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEku
cmVxdWVzdHNbNV0udXJsLCAnL2J1aWxkZXJzL3NvbWUlMjBidWlsZGVyJTIwMi9mb3JjZScpOwor
ICAgICAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1s1
XS5kYXRhLCB7J3drJzogJzE5MTYyMicsICdvcyc6ICcxMC4xMSAxNUEyODQnLCAnYnVpbGQtcmVx
dWVzdC1pZCc6ICc3MTAnfSk7CisgICAgICAgICAgICAgICAgTW9ja1JlbW90ZUFQSS5yZXF1ZXN0
c1s1XS5yZXNvbHZlKCdPSycpOwogICAgICAgICAgICAgICAgIHJldHVybiBNb2NrUmVtb3RlQVBJ
LndhaXRGb3JSZXF1ZXN0KCk7CiAgICAgICAgICAgICB9KS50aGVuKCgpID0+IHsKLSAgICAgICAg
ICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0cy5sZW5ndGgsIDcpOwot
ICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzVdLm1l
dGhvZCwgJ0dFVCcpOwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJ
LnJlcXVlc3RzWzVdLnVybCwgJy9qc29uL2J1aWxkZXJzL3NvbWUtYnVpbGRlci0xL3BlbmRpbmdC
dWlsZHMnKTsKLSAgICAgICAgICAgICAgICBNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzVdLnJlc29s
dmUoW01vY2tEYXRhLnBlbmRpbmdCdWlsZCh7YnVpbGRSZXF1ZXN0SWQ6IDcwMn0pXSk7CisgICAg
ICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHMubGVuZ3RoLCA4
KTsKICAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1s2
XS5tZXRob2QsICdHRVQnKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90
ZUFQSS5yZXF1ZXN0c1s2XS51cmwsICcvanNvbi9idWlsZGVycy9zb21lJTIwYnVpbGRlciUyMDIv
cGVuZGluZ0J1aWxkcycpOwotICAgICAgICAgICAgICAgIE1vY2tSZW1vdGVBUEkucmVxdWVzdHNb
Nl0ucmVzb2x2ZShbTW9ja0RhdGEucGVuZGluZ0J1aWxkKHtidWlsZGVyOiAnc29tZSBidWlsZGVy
IDInLCBidWlsZFJlcXVlc3RJZDogNzEwfSldKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuZXF1
YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1s2XS51cmwsICcvanNvbi9idWlsZGVycy9zb21lLWJ1
aWxkZXItMS9wZW5kaW5nQnVpbGRzJyk7CisgICAgICAgICAgICAgICAgTW9ja1JlbW90ZUFQSS5y
ZXF1ZXN0c1s2XS5yZXNvbHZlKFtNb2NrRGF0YS5wZW5kaW5nQnVpbGQoe2J1aWxkUmVxdWVzdElk
OiA3MDJ9KV0pOworICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJl
cXVlc3RzWzddLm1ldGhvZCwgJ0dFVCcpOworICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChN
b2NrUmVtb3RlQVBJLnJlcXVlc3RzWzddLnVybCwgJy9qc29uL2J1aWxkZXJzL3NvbWUlMjBidWls
ZGVyJTIwMi9wZW5kaW5nQnVpbGRzJyk7CisgICAgICAgICAgICAgICAgTW9ja1JlbW90ZUFQSS5y
ZXF1ZXN0c1s3XS5yZXNvbHZlKFtNb2NrRGF0YS5wZW5kaW5nQnVpbGQoe2J1aWxkZXI6ICdzb21l
IGJ1aWxkZXIgMicsIGJ1aWxkUmVxdWVzdElkOiA3MTB9KV0pOwogICAgICAgICAgICAgICAgIHJl
dHVybiBNb2NrUmVtb3RlQVBJLndhaXRGb3JSZXF1ZXN0KCk7CiAgICAgICAgICAgICB9KS50aGVu
KCgpID0+IHsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1
ZXN0cy5sZW5ndGgsIDkpOwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3Rl
QVBJLnJlcXVlc3RzWzddLm1ldGhvZCwgJ0dFVCcpOwotICAgICAgICAgICAgICAgIGFzc2VydC5l
cXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzddLnVybCwgJy9qc29uL2J1aWxkZXJzL3NvbWUt
YnVpbGRlci0xL2J1aWxkcy8/c2VsZWN0PS0xJnNlbGVjdD0tMicpOwotICAgICAgICAgICAgICAg
IE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbN10ucmVzb2x2ZSh7Wy0xXTogTW9ja0RhdGEucnVubmlu
Z0J1aWxkKHtidWlsZFJlcXVlc3RJZDogNzAxfSksIFstMl06IE1vY2tEYXRhLmZpbmlzaGVkQnVp
bGQoe2J1aWxkUmVxdWVzdElkOiA3MDB9KX0pOworICAgICAgICAgICAgICAgIGFzc2VydC5lcXVh
bChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzLmxlbmd0aCwgMTApOwogICAgICAgICAgICAgICAgIGFz
c2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzhdLm1ldGhvZCwgJ0dFVCcpOwotICAg
ICAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzhdLnVybCwg
Jy9qc29uL2J1aWxkZXJzL3NvbWUlMjBidWlsZGVyJTIwMi9idWlsZHMvP3NlbGVjdD0tMSZzZWxl
Y3Q9LTInKTsKLSAgICAgICAgICAgICAgICBNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzhdLnJlc29s
dmUoe30pOworICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVl
c3RzWzhdLnVybCwgJy9qc29uL2J1aWxkZXJzL3NvbWUtYnVpbGRlci0xL2J1aWxkcy8/c2VsZWN0
PS0xJnNlbGVjdD0tMicpOworICAgICAgICAgICAgICAgIE1vY2tSZW1vdGVBUEkucmVxdWVzdHNb
OF0ucmVzb2x2ZSh7Wy0xXTogTW9ja0RhdGEucnVubmluZ0J1aWxkKHtidWlsZFJlcXVlc3RJZDog
NzAxfSksIFstMl06IE1vY2tEYXRhLmZpbmlzaGVkQnVpbGQoe2J1aWxkUmVxdWVzdElkOiA3MDB9
KX0pOworICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3Rz
WzldLm1ldGhvZCwgJ0dFVCcpOworICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVt
b3RlQVBJLnJlcXVlc3RzWzldLnVybCwgJy9qc29uL2J1aWxkZXJzL3NvbWUlMjBidWlsZGVyJTIw
Mi9idWlsZHMvP3NlbGVjdD0tMSZzZWxlY3Q9LTInKTsKKyAgICAgICAgICAgICAgICBNb2NrUmVt
b3RlQVBJLnJlcXVlc3RzWzldLnJlc29sdmUoe30pOwogICAgICAgICAgICAgICAgIHJldHVybiBz
eW5jUHJvbWlzZTsKICAgICAgICAgICAgIH0pLnRoZW4oKCkgPT4gewogICAgICAgICAgICAgICAg
IGFzc2VydC5lcXVhbChCdWlsZFJlcXVlc3QuYWxsKCkubGVuZ3RoLCA4KTsKQEAgLTUyOSw1MyAr
NTM2LDU0IEBAIGRlc2NyaWJlKCdCdWlsZGJvdFRyaWdnZXJhYmxlJywgZnVuY3Rpb24KICAgICAg
ICAgICAgICAgICBjb25zdCBzbGF2ZUluZm8gPSB7bmFtZTogJ3N5bmMtc2xhdmUnLCBwYXNzd29y
ZDogJ3Bhc3N3b3JkJ307CiAgICAgICAgICAgICAgICAgY29uc3QgdHJpZ2dlcmFibGUgPSBuZXcg
QnVpbGRib3RUcmlnZ2VyYWJsZShjb25maWcsIFRlc3RTZXJ2ZXIucmVtb3RlQVBJKCksIE1vY2tS
ZW1vdGVBUEksIHNsYXZlSW5mbywgbG9nZ2VyKTsKICAgICAgICAgICAgICAgICBzeW5jUHJvbWlz
ZSA9IHRyaWdnZXJhYmxlLmluaXRTeW5jZXJzKCkudGhlbigoKSA9PiB0cmlnZ2VyYWJsZS5zeW5j
T25jZSgpKTsKKyAgICAgICAgICAgICAgICBhc3NlcnRSZXF1ZXN0QW5kUmVzb2x2ZShNb2NrUmVt
b3RlQVBJLnJlcXVlc3RzWzBdLCAnR0VUJywgTW9ja0RhdGEuYnVpbGRib3RCdWlsZGVyc1VSTCgp
LCBNb2NrRGF0YS5tb2NrQnVpbGRib3RCdWlsZGVycygpKTsKICAgICAgICAgICAgICAgICByZXR1
cm4gTW9ja1JlbW90ZUFQSS53YWl0Rm9yUmVxdWVzdCgpOwogICAgICAgICAgICAgfSkudGhlbigo
KSA9PiB7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVz
dHMubGVuZ3RoLCAyKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQ
SS5yZXF1ZXN0c1swXS5tZXRob2QsICdHRVQnKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1
YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1swXS51cmwsICcvanNvbi9idWlsZGVycy9zb21lLWJ1
aWxkZXItMS9wZW5kaW5nQnVpbGRzJyk7Ci0gICAgICAgICAgICAgICAgTW9ja1JlbW90ZUFQSS5y
ZXF1ZXN0c1swXS5yZXNvbHZlKFtdKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9j
a1JlbW90ZUFQSS5yZXF1ZXN0cy5sZW5ndGgsIDMpOwogICAgICAgICAgICAgICAgIGFzc2VydC5l
cXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzFdLm1ldGhvZCwgJ0dFVCcpOwotICAgICAgICAg
ICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzFdLnVybCwgJy9qc29u
L2J1aWxkZXJzL3NvbWUlMjBidWlsZGVyJTIwMi9wZW5kaW5nQnVpbGRzJyk7CisgICAgICAgICAg
ICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMV0udXJsLCAnL2pzb24v
YnVpbGRlcnMvc29tZS1idWlsZGVyLTEvcGVuZGluZ0J1aWxkcycpOwogICAgICAgICAgICAgICAg
IE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMV0ucmVzb2x2ZShbXSk7CisgICAgICAgICAgICAgICAg
YXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMl0ubWV0aG9kLCAnR0VUJyk7Cisg
ICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMl0udXJs
LCAnL2pzb24vYnVpbGRlcnMvc29tZSUyMGJ1aWxkZXIlMjAyL3BlbmRpbmdCdWlsZHMnKTsKKyAg
ICAgICAgICAgICAgICBNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzJdLnJlc29sdmUoW10pOwogICAg
ICAgICAgICAgICAgIHJldHVybiBNb2NrUmVtb3RlQVBJLndhaXRGb3JSZXF1ZXN0KCk7CiAgICAg
ICAgICAgICB9KS50aGVuKCgpID0+IHsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9j
a1JlbW90ZUFQSS5yZXF1ZXN0cy5sZW5ndGgsIDQpOwotICAgICAgICAgICAgICAgIGFzc2VydC5l
cXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzJdLm1ldGhvZCwgJ0dFVCcpOwotICAgICAgICAg
ICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzJdLnVybCwgJy9qc29u
L2J1aWxkZXJzL3NvbWUtYnVpbGRlci0xL2J1aWxkcy8/c2VsZWN0PS0xJnNlbGVjdD0tMicpOwot
ICAgICAgICAgICAgICAgIE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMl0ucmVzb2x2ZSh7Wy0xXTog
TW9ja0RhdGEucnVubmluZ0J1aWxkKHtidWlsZFJlcXVlc3RJZDogNzEwfSl9KTsKKyAgICAgICAg
ICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0cy5sZW5ndGgsIDUpOwog
ICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzNdLm1l
dGhvZCwgJ0dFVCcpOwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJ
LnJlcXVlc3RzWzNdLnVybCwgJy9qc29uL2J1aWxkZXJzL3NvbWUlMjBidWlsZGVyJTIwMi9idWls
ZHMvP3NlbGVjdD0tMSZzZWxlY3Q9LTInKTsKLSAgICAgICAgICAgICAgICBNb2NrUmVtb3RlQVBJ
LnJlcXVlc3RzWzNdLnJlc29sdmUoe1stMV06IE1vY2tEYXRhLnJ1bm5pbmdCdWlsZCh7YnVpbGRl
cjogJ3NvbWUgYnVpbGRlciAyJywgYnVpbGRSZXF1ZXN0SWQ6IDcwMH0pfSk7CisgICAgICAgICAg
ICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbM10udXJsLCAnL2pzb24v
YnVpbGRlcnMvc29tZS1idWlsZGVyLTEvYnVpbGRzLz9zZWxlY3Q9LTEmc2VsZWN0PS0yJyk7Cisg
ICAgICAgICAgICAgICAgTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1szXS5yZXNvbHZlKHtbLTFdOiBN
b2NrRGF0YS5ydW5uaW5nQnVpbGQoe2J1aWxkUmVxdWVzdElkOiA3MTB9KX0pOworICAgICAgICAg
ICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzRdLm1ldGhvZCwgJ0dF
VCcpOworICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3Rz
WzRdLnVybCwgJy9qc29uL2J1aWxkZXJzL3NvbWUlMjBidWlsZGVyJTIwMi9idWlsZHMvP3NlbGVj
dD0tMSZzZWxlY3Q9LTInKTsKKyAgICAgICAgICAgICAgICBNb2NrUmVtb3RlQVBJLnJlcXVlc3Rz
WzRdLnJlc29sdmUoe1stMV06IE1vY2tEYXRhLnJ1bm5pbmdCdWlsZCh7YnVpbGRlcjogJ3NvbWUg
YnVpbGRlciAyJywgYnVpbGRSZXF1ZXN0SWQ6IDcwMH0pfSk7CiAgICAgICAgICAgICAgICAgcmV0
dXJuIE1vY2tSZW1vdGVBUEkud2FpdEZvclJlcXVlc3QoKTsKICAgICAgICAgICAgIH0pLnRoZW4o
KCkgPT4gewotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVl
c3RzLmxlbmd0aCwgNik7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVB
UEkucmVxdWVzdHNbNF0ubWV0aG9kLCAnUE9TVCcpOwotICAgICAgICAgICAgICAgIGFzc2VydC5l
cXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzRdLnVybCwgJy9idWlsZGVycy9zb21lJTIwYnVp
bGRlciUyMDIvZm9yY2UnKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKE1vY2tS
ZW1vdGVBUEkucmVxdWVzdHNbNF0uZGF0YSwgeyd3ayc6ICcxOTI3MzYnLCAnb3MnOiAnMTAuMTEg
MTVBMjg0JywgJ2J1aWxkLXJlcXVlc3QtaWQnOiAnNzAxJ30pOwotICAgICAgICAgICAgICAgIE1v
Y2tSZW1vdGVBUEkucmVxdWVzdHNbNF0ucmVzb2x2ZSgnT0snKTsKKyAgICAgICAgICAgICAgICBh
c3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0cy5sZW5ndGgsIDcpOwogICAgICAgICAg
ICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzVdLm1ldGhvZCwgJ1BP
U1QnKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0
c1s1XS51cmwsICcvYnVpbGRlcnMvc29tZS1idWlsZGVyLTEvZm9yY2UnKTsKLSAgICAgICAgICAg
ICAgICBhc3NlcnQuZGVlcEVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbNV0uZGF0YSwgeyd3
ayc6ICcxOTI3MzYnLCAnb3MnOiAnMTAuMTEgMTVBMjg0JywgJ2J1aWxkLXJlcXVlc3QtaWQnOiAn
NzExJ30pOworICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVl
c3RzWzVdLnVybCwgJy9idWlsZGVycy9zb21lJTIwYnVpbGRlciUyMDIvZm9yY2UnKTsKKyAgICAg
ICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbNV0uZGF0
YSwgeyd3ayc6ICcxOTI3MzYnLCAnb3MnOiAnMTAuMTEgMTVBMjg0JywgJ2J1aWxkLXJlcXVlc3Qt
aWQnOiAnNzAxJ30pOwogICAgICAgICAgICAgICAgIE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbNV0u
cmVzb2x2ZSgnT0snKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQ
SS5yZXF1ZXN0c1s2XS5tZXRob2QsICdQT1NUJyk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LmVx
dWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbNl0udXJsLCAnL2J1aWxkZXJzL3NvbWUtYnVpbGRl
ci0xL2ZvcmNlJyk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChNb2NrUmVtb3Rl
QVBJLnJlcXVlc3RzWzZdLmRhdGEsIHsnd2snOiAnMTkyNzM2JywgJ29zJzogJzEwLjExIDE1QTI4
NCcsICdidWlsZC1yZXF1ZXN0LWlkJzogJzcxMSd9KTsKKyAgICAgICAgICAgICAgICBNb2NrUmVt
b3RlQVBJLnJlcXVlc3RzWzZdLnJlc29sdmUoJ09LJyk7CiAgICAgICAgICAgICAgICAgcmV0dXJu
IE1vY2tSZW1vdGVBUEkud2FpdEZvclJlcXVlc3QoKTsKICAgICAgICAgICAgIH0pLnRoZW4oKCkg
PT4gewotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3Rz
Lmxlbmd0aCwgOCk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEku
cmVxdWVzdHNbNl0ubWV0aG9kLCAnR0VUJyk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFs
KE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbNl0udXJsLCAnL2pzb24vYnVpbGRlcnMvc29tZS1idWls
ZGVyLTEvcGVuZGluZ0J1aWxkcycpOwotICAgICAgICAgICAgICAgIE1vY2tSZW1vdGVBUEkucmVx
dWVzdHNbNl0ucmVzb2x2ZShbTW9ja0RhdGEucGVuZGluZ0J1aWxkKHtidWlsZFJlcXVlc3RJZDog
NzExfSldKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1
ZXN0cy5sZW5ndGgsIDkpOwogICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3Rl
QVBJLnJlcXVlc3RzWzddLm1ldGhvZCwgJ0dFVCcpOwotICAgICAgICAgICAgICAgIGFzc2VydC5l
cXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzddLnVybCwgJy9qc29uL2J1aWxkZXJzL3NvbWUl
MjBidWlsZGVyJTIwMi9wZW5kaW5nQnVpbGRzJyk7Ci0gICAgICAgICAgICAgICAgTW9ja1JlbW90
ZUFQSS5yZXF1ZXN0c1s3XS5yZXNvbHZlKFtNb2NrRGF0YS5wZW5kaW5nQnVpbGQoe2J1aWxkZXI6
ICdzb21lIGJ1aWxkZXIgMicsYnVpbGRSZXF1ZXN0SWQ6IDcwMX0pXSk7CisgICAgICAgICAgICAg
ICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbN10udXJsLCAnL2pzb24vYnVp
bGRlcnMvc29tZS1idWlsZGVyLTEvcGVuZGluZ0J1aWxkcycpOworICAgICAgICAgICAgICAgIE1v
Y2tSZW1vdGVBUEkucmVxdWVzdHNbN10ucmVzb2x2ZShbTW9ja0RhdGEucGVuZGluZ0J1aWxkKHti
dWlsZFJlcXVlc3RJZDogNzExfSldKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9j
a1JlbW90ZUFQSS5yZXF1ZXN0c1s4XS5tZXRob2QsICdHRVQnKTsKKyAgICAgICAgICAgICAgICBh
c3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1s4XS51cmwsICcvanNvbi9idWlsZGVy
cy9zb21lJTIwYnVpbGRlciUyMDIvcGVuZGluZ0J1aWxkcycpOworICAgICAgICAgICAgICAgIE1v
Y2tSZW1vdGVBUEkucmVxdWVzdHNbOF0ucmVzb2x2ZShbTW9ja0RhdGEucGVuZGluZ0J1aWxkKHti
dWlsZGVyOiAnc29tZSBidWlsZGVyIDInLGJ1aWxkUmVxdWVzdElkOiA3MDF9KV0pOwogICAgICAg
ICAgICAgICAgIHJldHVybiBNb2NrUmVtb3RlQVBJLndhaXRGb3JSZXF1ZXN0KCk7CiAgICAgICAg
ICAgICB9KS50aGVuKCgpID0+IHsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1Jl
bW90ZUFQSS5yZXF1ZXN0cy5sZW5ndGgsIDEwKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1
YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1s4XS5tZXRob2QsICdHRVQnKTsKLSAgICAgICAgICAg
ICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1s4XS51cmwsICcvanNvbi9i
dWlsZGVycy9zb21lLWJ1aWxkZXItMS9idWlsZHMvP3NlbGVjdD0tMSZzZWxlY3Q9LTInKTsKLSAg
ICAgICAgICAgICAgICBNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzhdLnJlc29sdmUoe1stMV06IE1v
Y2tEYXRhLnJ1bm5pbmdCdWlsZCh7YnVpbGRSZXF1ZXN0SWQ6IDcxMH0pfSk7CisgICAgICAgICAg
ICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHMubGVuZ3RoLCAxMSk7CiAg
ICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbOV0ubWV0
aG9kLCAnR0VUJyk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEku
cmVxdWVzdHNbOV0udXJsLCAnL2pzb24vYnVpbGRlcnMvc29tZSUyMGJ1aWxkZXIlMjAyL2J1aWxk
cy8/c2VsZWN0PS0xJnNlbGVjdD0tMicpOwotICAgICAgICAgICAgICAgIE1vY2tSZW1vdGVBUEku
cmVxdWVzdHNbOV0ucmVzb2x2ZSh7Wy0xXTogTW9ja0RhdGEucnVubmluZ0J1aWxkKHtidWlsZGVy
OiAnc29tZSBidWlsZGVyIDInLCBidWlsZFJlcXVlc3RJZDogNzAwfSl9KTsKKyAgICAgICAgICAg
ICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1s5XS51cmwsICcvanNvbi9i
dWlsZGVycy9zb21lLWJ1aWxkZXItMS9idWlsZHMvP3NlbGVjdD0tMSZzZWxlY3Q9LTInKTsKKyAg
ICAgICAgICAgICAgICBNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzldLnJlc29sdmUoe1stMV06IE1v
Y2tEYXRhLnJ1bm5pbmdCdWlsZCh7YnVpbGRSZXF1ZXN0SWQ6IDcxMH0pfSk7CisgICAgICAgICAg
ICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMTBdLm1ldGhvZCwgJ0dF
VCcpOworICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3Rz
WzEwXS51cmwsICcvanNvbi9idWlsZGVycy9zb21lJTIwYnVpbGRlciUyMDIvYnVpbGRzLz9zZWxl
Y3Q9LTEmc2VsZWN0PS0yJyk7CisgICAgICAgICAgICAgICAgTW9ja1JlbW90ZUFQSS5yZXF1ZXN0
c1sxMF0ucmVzb2x2ZSh7Wy0xXTogTW9ja0RhdGEucnVubmluZ0J1aWxkKHtidWlsZGVyOiAnc29t
ZSBidWlsZGVyIDInLCBidWlsZFJlcXVlc3RJZDogNzAwfSl9KTsKICAgICAgICAgICAgICAgICBy
ZXR1cm4gc3luY1Byb21pc2U7CiAgICAgICAgICAgICB9KS50aGVuKCgpID0+IHsKICAgICAgICAg
ICAgICAgICBhc3NlcnQuZXF1YWwoQnVpbGRSZXF1ZXN0LmFsbCgpLmxlbmd0aCwgOCk7CkBAIC02
MzAsNDAgKzYzOCw0MSBAQCBkZXNjcmliZSgnQnVpbGRib3RUcmlnZ2VyYWJsZScsIGZ1bmN0aW9u
CiAgICAgICAgICAgICAgICAgY29uc3Qgc2xhdmVJbmZvID0ge25hbWU6ICdzeW5jLXNsYXZlJywg
cGFzc3dvcmQ6ICdwYXNzd29yZCd9OwogICAgICAgICAgICAgICAgIGNvbnN0IHRyaWdnZXJhYmxl
ID0gbmV3IEJ1aWxkYm90VHJpZ2dlcmFibGUoY29uZmlnLCBUZXN0U2VydmVyLnJlbW90ZUFQSSgp
LCBNb2NrUmVtb3RlQVBJLCBzbGF2ZUluZm8sIGxvZ2dlcik7CiAgICAgICAgICAgICAgICAgc3lu
Y1Byb21pc2UgPSB0cmlnZ2VyYWJsZS5pbml0U3luY2VycygpLnRoZW4oKCkgPT4gdHJpZ2dlcmFi
bGUuc3luY09uY2UoKSk7Ci0gICAgICAgICAgICAgICAgcmV0dXJuIE1vY2tSZW1vdGVBUEkud2Fp
dEZvclJlcXVlc3QoKTsKLSAgICAgICAgICAgIH0pLnRoZW4oKCkgPT4gewotICAgICAgICAgICAg
ICAgIGFzc2VydC5lcXVhbChyZXF1ZXN0cy5sZW5ndGgsIDEpOwotICAgICAgICAgICAgICAgIGFz
c2VydC5lcXVhbChyZXF1ZXN0c1swXS5tZXRob2QsICdHRVQnKTsKLSAgICAgICAgICAgICAgICBh
c3NlcnQuZXF1YWwocmVxdWVzdHNbMF0udXJsLCAnL2pzb24vYnVpbGRlcnMvc29tZS1idWlsZGVy
LTEvcGVuZGluZ0J1aWxkcycpOwotICAgICAgICAgICAgICAgIE1vY2tSZW1vdGVBUEkucmVxdWVz
dHNbMF0ucmVzb2x2ZShbXSk7CisgICAgICAgICAgICAgICAgYXNzZXJ0UmVxdWVzdEFuZFJlc29s
dmUocmVxdWVzdHNbMF0sICdHRVQnLCBNb2NrRGF0YS5idWlsZGJvdEJ1aWxkZXJzVVJMKCksIE1v
Y2tEYXRhLm1vY2tCdWlsZGJvdEJ1aWxkZXJzKCkpOwogICAgICAgICAgICAgICAgIHJldHVybiBN
b2NrUmVtb3RlQVBJLndhaXRGb3JSZXF1ZXN0KCk7CiAgICAgICAgICAgICB9KS50aGVuKCgpID0+
IHsKICAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVxdWVzdHMubGVuZ3RoLCAyKTsKICAg
ICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVxdWVzdHNbMV0ubWV0aG9kLCAnR0VUJyk7Ci0g
ICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlcXVlc3RzWzFdLnVybCwgJy9qc29uL2J1aWxk
ZXJzL3NvbWUtYnVpbGRlci0xL2J1aWxkcy8/c2VsZWN0PS0xJnNlbGVjdD0tMicpOwotICAgICAg
ICAgICAgICAgIHJlcXVlc3RzWzFdLnJlc29sdmUoe30pOworICAgICAgICAgICAgICAgIGFzc2Vy
dC5lcXVhbChyZXF1ZXN0c1sxXS51cmwsICcvanNvbi9idWlsZGVycy9zb21lLWJ1aWxkZXItMS9w
ZW5kaW5nQnVpbGRzJyk7CisgICAgICAgICAgICAgICAgTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1sx
XS5yZXNvbHZlKFtdKTsKICAgICAgICAgICAgICAgICByZXR1cm4gTW9ja1JlbW90ZUFQSS53YWl0
Rm9yUmVxdWVzdCgpOwogICAgICAgICAgICAgfSkudGhlbigoKSA9PiB7CiAgICAgICAgICAgICAg
ICAgYXNzZXJ0LmVxdWFsKHJlcXVlc3RzLmxlbmd0aCwgMyk7Ci0gICAgICAgICAgICAgICAgYXNz
ZXJ0LmVxdWFsKHJlcXVlc3RzWzJdLm1ldGhvZCwgJ1BPU1QnKTsKLSAgICAgICAgICAgICAgICBh
c3NlcnQuZXF1YWwocmVxdWVzdHNbMl0udXJsLCAnL2J1aWxkZXJzL3NvbWUtYnVpbGRlci0xL2Zv
cmNlJyk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChyZXF1ZXN0c1syXS5kYXRh
LCB7J3drJzogJzE5MTYyMicsICdvcyc6ICcxMC4xMSAxNUEyODQnLCAnYnVpbGQtcmVxdWVzdC1p
ZCc6ICc3MDAnfSk7Ci0gICAgICAgICAgICAgICAgcmV0dXJuIG5ldyBQcm9taXNlKChyZXNvbHZl
KSA9PiBzZXRUaW1lb3V0KHJlc29sdmUsIDEwKSk7Ci0gICAgICAgICAgICB9KS50aGVuKCgpID0+
IHsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVxdWVzdHMubGVuZ3RoLCAzKTsKLSAg
ICAgICAgICAgICAgICByZXF1ZXN0c1syXS5yZXNvbHZlKCdPSycpOworICAgICAgICAgICAgICAg
IGFzc2VydC5lcXVhbChyZXF1ZXN0c1syXS5tZXRob2QsICdHRVQnKTsKKyAgICAgICAgICAgICAg
ICBhc3NlcnQuZXF1YWwocmVxdWVzdHNbMl0udXJsLCAnL2pzb24vYnVpbGRlcnMvc29tZS1idWls
ZGVyLTEvYnVpbGRzLz9zZWxlY3Q9LTEmc2VsZWN0PS0yJyk7CisgICAgICAgICAgICAgICAgcmVx
dWVzdHNbMl0ucmVzb2x2ZSh7fSk7CiAgICAgICAgICAgICAgICAgcmV0dXJuIE1vY2tSZW1vdGVB
UEkud2FpdEZvclJlcXVlc3QoKTsKICAgICAgICAgICAgIH0pLnRoZW4oKCkgPT4gewogICAgICAg
ICAgICAgICAgIGFzc2VydC5lcXVhbChyZXF1ZXN0cy5sZW5ndGgsIDQpOwotICAgICAgICAgICAg
ICAgIGFzc2VydC5lcXVhbChyZXF1ZXN0c1szXS5tZXRob2QsICdHRVQnKTsKLSAgICAgICAgICAg
ICAgICBhc3NlcnQuZXF1YWwocmVxdWVzdHNbM10udXJsLCAnL2pzb24vYnVpbGRlcnMvc29tZS1i
dWlsZGVyLTEvcGVuZGluZ0J1aWxkcycpOwotICAgICAgICAgICAgICAgIE1vY2tSZW1vdGVBUEku
cmVxdWVzdHNbM10ucmVzb2x2ZShbTW9ja0RhdGEucGVuZGluZ0J1aWxkKHtidWlsZFJlcXVlc3RJ
ZDogNzAwfSldKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVxdWVzdHNbM10ubWV0
aG9kLCAnUE9TVCcpOworICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXF1ZXN0c1szXS51
cmwsICcvYnVpbGRlcnMvc29tZS1idWlsZGVyLTEvZm9yY2UnKTsKKyAgICAgICAgICAgICAgICBh
c3NlcnQuZGVlcEVxdWFsKHJlcXVlc3RzWzNdLmRhdGEsIHsnd2snOiAnMTkxNjIyJywgJ29zJzog
JzEwLjExIDE1QTI4NCcsICdidWlsZC1yZXF1ZXN0LWlkJzogJzcwMCd9KTsKKyAgICAgICAgICAg
ICAgICByZXR1cm4gbmV3IFByb21pc2UoKHJlc29sdmUpID0+IHNldFRpbWVvdXQocmVzb2x2ZSwg
MTApKTsKKyAgICAgICAgICAgIH0pLnRoZW4oKCkgPT4geworICAgICAgICAgICAgICAgIGFzc2Vy
dC5lcXVhbChyZXF1ZXN0cy5sZW5ndGgsIDQpOworICAgICAgICAgICAgICAgIHJlcXVlc3RzWzNd
LnJlc29sdmUoJ09LJyk7CiAgICAgICAgICAgICAgICAgcmV0dXJuIE1vY2tSZW1vdGVBUEkud2Fp
dEZvclJlcXVlc3QoKTsKICAgICAgICAgICAgIH0pLnRoZW4oKCkgPT4gewogICAgICAgICAgICAg
ICAgIGFzc2VydC5lcXVhbChyZXF1ZXN0cy5sZW5ndGgsIDUpOwogICAgICAgICAgICAgICAgIGFz
c2VydC5lcXVhbChyZXF1ZXN0c1s0XS5tZXRob2QsICdHRVQnKTsKLSAgICAgICAgICAgICAgICBh
c3NlcnQuZXF1YWwocmVxdWVzdHNbNF0udXJsLCAnL2pzb24vYnVpbGRlcnMvc29tZS1idWlsZGVy
LTEvYnVpbGRzLz9zZWxlY3Q9LTEmc2VsZWN0PS0yJyk7Ci0gICAgICAgICAgICAgICAgcmVxdWVz
dHNbNF0ucmVzb2x2ZSh7fSk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlcXVlc3Rz
WzRdLnVybCwgJy9qc29uL2J1aWxkZXJzL3NvbWUtYnVpbGRlci0xL3BlbmRpbmdCdWlsZHMnKTsK
KyAgICAgICAgICAgICAgICBNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzRdLnJlc29sdmUoW01vY2tE
YXRhLnBlbmRpbmdCdWlsZCh7YnVpbGRSZXF1ZXN0SWQ6IDcwMH0pXSk7CisgICAgICAgICAgICAg
ICAgcmV0dXJuIE1vY2tSZW1vdGVBUEkud2FpdEZvclJlcXVlc3QoKTsKKyAgICAgICAgICAgIH0p
LnRoZW4oKCkgPT4geworICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXF1ZXN0cy5sZW5n
dGgsIDYpOworICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXF1ZXN0c1s1XS5tZXRob2Qs
ICdHRVQnKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVxdWVzdHNbNV0udXJsLCAn
L2pzb24vYnVpbGRlcnMvc29tZS1idWlsZGVyLTEvYnVpbGRzLz9zZWxlY3Q9LTEmc2VsZWN0PS0y
Jyk7CisgICAgICAgICAgICAgICAgcmVxdWVzdHNbNV0ucmVzb2x2ZSh7fSk7CiAgICAgICAgICAg
ICAgICAgcmV0dXJuIHN5bmNQcm9taXNlOwogICAgICAgICAgICAgfSkudGhlbigoKSA9PiB7CiAg
ICAgICAgICAgICAgICAgcmV0dXJuIEJ1aWxkUmVxdWVzdC5mZXRjaEZvclRyaWdnZXJhYmxlKE1v
Y2tEYXRhLm1vY2tUZXN0U3luY0NvbmZpZ1dpdGhUd29CdWlsZGVycygpLnRyaWdnZXJhYmxlTmFt
ZSk7CkBAIC03MDUsNTAgKzcxNCw1MiBAQCBkZXNjcmliZSgnQnVpbGRib3RUcmlnZ2VyYWJsZScs
IGZ1bmN0aW9uCiAgICAgICAgICAgICAgICAgY29uc3Qgc2xhdmVJbmZvID0ge25hbWU6ICdzeW5j
LXNsYXZlJywgcGFzc3dvcmQ6ICdwYXNzd29yZCd9OwogICAgICAgICAgICAgICAgIHRyaWdnZXJh
YmxlID0gbmV3IEJ1aWxkYm90VHJpZ2dlcmFibGUoY29uZmlnLCBUZXN0U2VydmVyLnJlbW90ZUFQ
SSgpLCBNb2NrUmVtb3RlQVBJLCBzbGF2ZUluZm8sIGxvZ2dlcik7CiAgICAgICAgICAgICAgICAg
c3luY1Byb21pc2UgPSB0cmlnZ2VyYWJsZS5pbml0U3luY2VycygpLnRoZW4oKCkgPT4gdHJpZ2dl
cmFibGUuc3luY09uY2UoKSk7Ci0gICAgICAgICAgICAgICAgcmV0dXJuIE1vY2tSZW1vdGVBUEku
d2FpdEZvclJlcXVlc3QoKTsKLSAgICAgICAgICAgIH0pLnRoZW4oKCkgPT4gewotICAgICAgICAg
ICAgICAgIGFzc2VydC5lcXVhbChyZXF1ZXN0cy5sZW5ndGgsIDEpOwotICAgICAgICAgICAgICAg
IGFzc2VydFJlcXVlc3RBbmRSZXNvbHZlKHJlcXVlc3RzWzBdLCAnR0VUJywgJy9qc29uL2J1aWxk
ZXJzL3NvbWUtYnVpbGRlci0xL3BlbmRpbmdCdWlsZHMnLCBbXSk7CisgICAgICAgICAgICAgICAg
YXNzZXJ0UmVxdWVzdEFuZFJlc29sdmUocmVxdWVzdHNbMF0sICdHRVQnLCBNb2NrRGF0YS5idWls
ZGJvdEJ1aWxkZXJzVVJMKCksIE1vY2tEYXRhLm1vY2tCdWlsZGJvdEJ1aWxkZXJzKCkpOwogICAg
ICAgICAgICAgICAgIHJldHVybiBNb2NrUmVtb3RlQVBJLndhaXRGb3JSZXF1ZXN0KCk7CiAgICAg
ICAgICAgICB9KS50aGVuKCgpID0+IHsKICAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVx
dWVzdHMubGVuZ3RoLCAyKTsKLSAgICAgICAgICAgICAgICBhc3NlcnRSZXF1ZXN0QW5kUmVzb2x2
ZShyZXF1ZXN0c1sxXSwgJ0dFVCcsICcvanNvbi9idWlsZGVycy9zb21lLWJ1aWxkZXItMS9idWls
ZHMvP3NlbGVjdD0tMSZzZWxlY3Q9LTInLAotICAgICAgICAgICAgICAgICAgICB7Wy0xXTogTW9j
a0RhdGEucnVubmluZ0J1aWxkKHtidWlsZFJlcXVlc3RJZDogNzAwfSksIFstMl06IE1vY2tEYXRh
LmZpbmlzaGVkQnVpbGQoe2J1aWxkUmVxdWVzdElkOiA3MTB9KX0pOworICAgICAgICAgICAgICAg
IGFzc2VydFJlcXVlc3RBbmRSZXNvbHZlKHJlcXVlc3RzWzFdLCAnR0VUJywgJy9qc29uL2J1aWxk
ZXJzL3NvbWUtYnVpbGRlci0xL3BlbmRpbmdCdWlsZHMnLCBbXSk7CiAgICAgICAgICAgICAgICAg
cmV0dXJuIE1vY2tSZW1vdGVBUEkud2FpdEZvclJlcXVlc3QoKTsKICAgICAgICAgICAgIH0pLnRo
ZW4oKCkgPT4gewogICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXF1ZXN0cy5sZW5ndGgs
IDMpOwotICAgICAgICAgICAgICAgIGFzc2VydFJlcXVlc3RBbmRSZXNvbHZlKHJlcXVlc3RzWzJd
LCAnUE9TVCcsICcvYnVpbGRlcnMvc29tZS1idWlsZGVyLTEvZm9yY2UnKTsKLSAgICAgICAgICAg
ICAgICBhc3NlcnQuZGVlcEVxdWFsKHJlcXVlc3RzWzJdLmRhdGEsIHsnd2snOiAnMTkyNzM2Jywg
J29zJzogJzEwLjExIDE1QTI4NCcsICdidWlsZC1yZXF1ZXN0LWlkJzogJzcwMSd9KTsKKyAgICAg
ICAgICAgICAgICBhc3NlcnRSZXF1ZXN0QW5kUmVzb2x2ZShyZXF1ZXN0c1syXSwgJ0dFVCcsICcv
anNvbi9idWlsZGVycy9zb21lLWJ1aWxkZXItMS9idWlsZHMvP3NlbGVjdD0tMSZzZWxlY3Q9LTIn
LAorICAgICAgICAgICAgICAgICAgICB7Wy0xXTogTW9ja0RhdGEucnVubmluZ0J1aWxkKHtidWls
ZFJlcXVlc3RJZDogNzAwfSksIFstMl06IE1vY2tEYXRhLmZpbmlzaGVkQnVpbGQoe2J1aWxkUmVx
dWVzdElkOiA3MTB9KX0pOwogICAgICAgICAgICAgICAgIHJldHVybiBNb2NrUmVtb3RlQVBJLndh
aXRGb3JSZXF1ZXN0KCk7CiAgICAgICAgICAgICB9KS50aGVuKCgpID0+IHsKICAgICAgICAgICAg
ICAgICBhc3NlcnQuZXF1YWwocmVxdWVzdHMubGVuZ3RoLCA0KTsKLSAgICAgICAgICAgICAgICBh
c3NlcnRSZXF1ZXN0QW5kUmVzb2x2ZShyZXF1ZXN0c1szXSwgJ0dFVCcsICcvanNvbi9idWlsZGVy
cy9zb21lLWJ1aWxkZXItMS9wZW5kaW5nQnVpbGRzJywKLSAgICAgICAgICAgICAgICAgICAgW01v
Y2tEYXRhLnBlbmRpbmdCdWlsZCh7YnVpbGRSZXF1ZXN0SWQ6IDcwMX0pXSk7CisgICAgICAgICAg
ICAgICAgYXNzZXJ0UmVxdWVzdEFuZFJlc29sdmUocmVxdWVzdHNbM10sICdQT1NUJywgJy9idWls
ZGVycy9zb21lLWJ1aWxkZXItMS9mb3JjZScpOworICAgICAgICAgICAgICAgIGFzc2VydC5kZWVw
RXF1YWwocmVxdWVzdHNbM10uZGF0YSwgeyd3ayc6ICcxOTI3MzYnLCAnb3MnOiAnMTAuMTEgMTVB
Mjg0JywgJ2J1aWxkLXJlcXVlc3QtaWQnOiAnNzAxJ30pOwogICAgICAgICAgICAgICAgIHJldHVy
biBNb2NrUmVtb3RlQVBJLndhaXRGb3JSZXF1ZXN0KCk7CiAgICAgICAgICAgICB9KS50aGVuKCgp
ID0+IHsKICAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVxdWVzdHMubGVuZ3RoLCA1KTsK
LSAgICAgICAgICAgICAgICBhc3NlcnRSZXF1ZXN0QW5kUmVzb2x2ZShyZXF1ZXN0c1s0XSwgJ0dF
VCcsICcvanNvbi9idWlsZGVycy9zb21lLWJ1aWxkZXItMS9idWlsZHMvP3NlbGVjdD0tMSZzZWxl
Y3Q9LTInLAorICAgICAgICAgICAgICAgIGFzc2VydFJlcXVlc3RBbmRSZXNvbHZlKHJlcXVlc3Rz
WzRdLCAnR0VUJywgJy9qc29uL2J1aWxkZXJzL3NvbWUtYnVpbGRlci0xL3BlbmRpbmdCdWlsZHMn
LAorICAgICAgICAgICAgICAgICAgICBbTW9ja0RhdGEucGVuZGluZ0J1aWxkKHtidWlsZFJlcXVl
c3RJZDogNzAxfSldKTsKKyAgICAgICAgICAgICAgICByZXR1cm4gTW9ja1JlbW90ZUFQSS53YWl0
Rm9yUmVxdWVzdCgpOworICAgICAgICAgICAgfSkudGhlbigoKSA9PiB7CisgICAgICAgICAgICAg
ICAgYXNzZXJ0LmVxdWFsKHJlcXVlc3RzLmxlbmd0aCwgNik7CisgICAgICAgICAgICAgICAgYXNz
ZXJ0UmVxdWVzdEFuZFJlc29sdmUocmVxdWVzdHNbNV0sICdHRVQnLCAnL2pzb24vYnVpbGRlcnMv
c29tZS1idWlsZGVyLTEvYnVpbGRzLz9zZWxlY3Q9LTEmc2VsZWN0PS0yJywKICAgICAgICAgICAg
ICAgICAgICAge1stMV06IE1vY2tEYXRhLnJ1bm5pbmdCdWlsZCh7YnVpbGRSZXF1ZXN0SWQ6IDcw
MH0pLCBbLTJdOiBNb2NrRGF0YS5maW5pc2hlZEJ1aWxkKHtidWlsZFJlcXVlc3RJZDogNzEwfSl9
KTsKICAgICAgICAgICAgICAgICByZXR1cm4gc3luY1Byb21pc2U7CiAgICAgICAgICAgICB9KS50
aGVuKCgpID0+IHsKICAgICAgICAgICAgICAgICBzeW5jUHJvbWlzZSA9IHRyaWdnZXJhYmxlLmlu
aXRTeW5jZXJzKCkudGhlbigoKSA9PiB0cmlnZ2VyYWJsZS5zeW5jT25jZSgpKTsKKyAgICAgICAg
ICAgICAgICBhc3NlcnRSZXF1ZXN0QW5kUmVzb2x2ZShyZXF1ZXN0c1s2XSwgJ0dFVCcsIE1vY2tE
YXRhLmJ1aWxkYm90QnVpbGRlcnNVUkwoKSwgTW9ja0RhdGEubW9ja0J1aWxkYm90QnVpbGRlcnMo
KSk7CiAgICAgICAgICAgICAgICAgcmV0dXJuIE1vY2tSZW1vdGVBUEkud2FpdEZvclJlcXVlc3Qo
KTsKICAgICAgICAgICAgIH0pLnRoZW4oKCkgPT4gewotICAgICAgICAgICAgICAgIGFzc2VydC5l
cXVhbChyZXF1ZXN0cy5sZW5ndGgsIDYpOwotICAgICAgICAgICAgICAgIGFzc2VydFJlcXVlc3RB
bmRSZXNvbHZlKHJlcXVlc3RzWzVdLCAnR0VUJywgJy9qc29uL2J1aWxkZXJzL3NvbWUtYnVpbGRl
ci0xL3BlbmRpbmdCdWlsZHMnLCBbXSk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJl
cXVlc3RzLmxlbmd0aCwgOCk7CisgICAgICAgICAgICAgICAgYXNzZXJ0UmVxdWVzdEFuZFJlc29s
dmUocmVxdWVzdHNbN10sICdHRVQnLCAnL2pzb24vYnVpbGRlcnMvc29tZS1idWlsZGVyLTEvcGVu
ZGluZ0J1aWxkcycsIFtdKTsKICAgICAgICAgICAgICAgICByZXR1cm4gTW9ja1JlbW90ZUFQSS53
YWl0Rm9yUmVxdWVzdCgpOwogICAgICAgICAgICAgfSkudGhlbigoKSA9PiB7Ci0gICAgICAgICAg
ICAgICAgYXNzZXJ0LmVxdWFsKHJlcXVlc3RzLmxlbmd0aCwgNyk7Ci0gICAgICAgICAgICAgICAg
YXNzZXJ0UmVxdWVzdEFuZFJlc29sdmUocmVxdWVzdHNbNl0sICdHRVQnLCAnL2pzb24vYnVpbGRl
cnMvc29tZS1idWlsZGVyLTEvYnVpbGRzLz9zZWxlY3Q9LTEmc2VsZWN0PS0yJywKKyAgICAgICAg
ICAgICAgICBhc3NlcnQuZXF1YWwocmVxdWVzdHMubGVuZ3RoLCA5KTsKKyAgICAgICAgICAgICAg
ICBhc3NlcnRSZXF1ZXN0QW5kUmVzb2x2ZShyZXF1ZXN0c1s4XSwgJ0dFVCcsICcvanNvbi9idWls
ZGVycy9zb21lLWJ1aWxkZXItMS9idWlsZHMvP3NlbGVjdD0tMSZzZWxlY3Q9LTInLAogICAgICAg
ICAgICAgICAgICAgICB7Wy0xXTogTW9ja0RhdGEucnVubmluZ0J1aWxkKHtidWlsZFJlcXVlc3RJ
ZDogNzAxfSksIFstMl06IE1vY2tEYXRhLnJ1bm5pbmdCdWlsZCh7YnVpbGRSZXF1ZXN0SWQ6IDcw
MH0pfSk7CiAgICAgICAgICAgICAgICAgcmV0dXJuIE1vY2tSZW1vdGVBUEkud2FpdEZvclJlcXVl
c3QoKTsKICAgICAgICAgICAgIH0pLnRoZW4oKCkgPT4gewotICAgICAgICAgICAgICAgIGFzc2Vy
dC5lcXVhbChyZXF1ZXN0cy5sZW5ndGgsIDgpOwotICAgICAgICAgICAgICAgIGFzc2VydFJlcXVl
c3RBbmRSZXNvbHZlKHJlcXVlc3RzWzddLCAnR0VUJywgJy9qc29uL2J1aWxkZXJzL3NvbWUtYnVp
bGRlci0xL3BlbmRpbmdCdWlsZHMnLCBbXSk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFs
KHJlcXVlc3RzLmxlbmd0aCwgMTApOworICAgICAgICAgICAgICAgIGFzc2VydFJlcXVlc3RBbmRS
ZXNvbHZlKHJlcXVlc3RzWzldLCAnR0VUJywgJy9qc29uL2J1aWxkZXJzL3NvbWUtYnVpbGRlci0x
L3BlbmRpbmdCdWlsZHMnLCBbXSk7CiAgICAgICAgICAgICAgICAgcmV0dXJuIE1vY2tSZW1vdGVB
UEkud2FpdEZvclJlcXVlc3QoKTsKICAgICAgICAgICAgIH0pLnRoZW4oKCkgPT4gewotICAgICAg
ICAgICAgICAgIGFzc2VydC5lcXVhbChyZXF1ZXN0cy5sZW5ndGgsIDkpOwotICAgICAgICAgICAg
ICAgIGFzc2VydFJlcXVlc3RBbmRSZXNvbHZlKHJlcXVlc3RzWzhdLCAnR0VUJywgJy9qc29uL2J1
aWxkZXJzL3NvbWUtYnVpbGRlci0xL2J1aWxkcy8/c2VsZWN0PS0xJnNlbGVjdD0tMicsCisgICAg
ICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlcXVlc3RzLmxlbmd0aCwgMTEpOworICAgICAgICAg
ICAgICAgIGFzc2VydFJlcXVlc3RBbmRSZXNvbHZlKHJlcXVlc3RzWzEwXSwgJ0dFVCcsICcvanNv
bi9idWlsZGVycy9zb21lLWJ1aWxkZXItMS9idWlsZHMvP3NlbGVjdD0tMSZzZWxlY3Q9LTInLAog
ICAgICAgICAgICAgICAgICAgICB7Wy0xXTogTW9ja0RhdGEucnVubmluZ0J1aWxkKHtidWlsZFJl
cXVlc3RJZDogNzAxfSksIFstMl06IE1vY2tEYXRhLnJ1bm5pbmdCdWlsZCh7YnVpbGRSZXF1ZXN0
SWQ6IDcwMH0pfSk7CiAgICAgICAgICAgICAgICAgcmV0dXJuIHN5bmNQcm9taXNlOwogICAgICAg
ICAgICAgfSk7CkBAIC03NjUsMzcgKzc3NiwzOCBAQCBkZXNjcmliZSgnQnVpbGRib3RUcmlnZ2Vy
YWJsZScsIGZ1bmN0aW9uCiAgICAgICAgICAgICAgICAgY29uc3Qgc2xhdmVJbmZvID0ge25hbWU6
ICdzeW5jLXNsYXZlJywgcGFzc3dvcmQ6ICdwYXNzd29yZCd9OwogICAgICAgICAgICAgICAgIGNv
bnN0IHRyaWdnZXJhYmxlID0gbmV3IEJ1aWxkYm90VHJpZ2dlcmFibGUoY29uZmlnLCBUZXN0U2Vy
dmVyLnJlbW90ZUFQSSgpLCBNb2NrUmVtb3RlQVBJLCBzbGF2ZUluZm8sIGxvZ2dlcik7CiAgICAg
ICAgICAgICAgICAgc3luY1Byb21pc2UgPSB0cmlnZ2VyYWJsZS5pbml0U3luY2VycygpLnRoZW4o
KCkgPT4gdHJpZ2dlcmFibGUuc3luY09uY2UoKSk7Ci0gICAgICAgICAgICAgICAgcmV0dXJuIE1v
Y2tSZW1vdGVBUEkud2FpdEZvclJlcXVlc3QoKTsKLSAgICAgICAgICAgIH0pLnRoZW4oKCkgPT4g
ewotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzLmxl
bmd0aCwgMSk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVx
dWVzdHNbMF0ubWV0aG9kLCAnR0VUJyk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1v
Y2tSZW1vdGVBUEkucmVxdWVzdHNbMF0udXJsLCAnL2pzb24vYnVpbGRlcnMvc29tZS1idWlsZGVy
LTEvcGVuZGluZ0J1aWxkcycpOwotICAgICAgICAgICAgICAgIE1vY2tSZW1vdGVBUEkucmVxdWVz
dHNbMF0ucmVzb2x2ZShbXSk7CisgICAgICAgICAgICAgICAgYXNzZXJ0UmVxdWVzdEFuZFJlc29s
dmUoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1swXSwgJ0dFVCcsIE1vY2tEYXRhLmJ1aWxkYm90QnVp
bGRlcnNVUkwoKSwgTW9ja0RhdGEubW9ja0J1aWxkYm90QnVpbGRlcnMoKSk7CiAgICAgICAgICAg
ICAgICAgcmV0dXJuIE1vY2tSZW1vdGVBUEkud2FpdEZvclJlcXVlc3QoKTsKICAgICAgICAgICAg
IH0pLnRoZW4oKCkgPT4gewogICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3Rl
QVBJLnJlcXVlc3RzLmxlbmd0aCwgMik7CiAgICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1v
Y2tSZW1vdGVBUEkucmVxdWVzdHNbMV0ubWV0aG9kLCAnR0VUJyk7Ci0gICAgICAgICAgICAgICAg
YXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMV0udXJsLCAnL2pzb24vYnVpbGRl
cnMvc29tZS1idWlsZGVyLTEvYnVpbGRzLz9zZWxlY3Q9LTEmc2VsZWN0PS0yJyk7Ci0gICAgICAg
ICAgICAgICAgTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1sxXS5yZXNvbHZlKHt9KTsKKyAgICAgICAg
ICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1sxXS51cmwsICcvanNv
bi9idWlsZGVycy9zb21lLWJ1aWxkZXItMS9wZW5kaW5nQnVpbGRzJyk7CisgICAgICAgICAgICAg
ICAgTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1sxXS5yZXNvbHZlKFtdKTsKICAgICAgICAgICAgICAg
ICByZXR1cm4gTW9ja1JlbW90ZUFQSS53YWl0Rm9yUmVxdWVzdCgpOwogICAgICAgICAgICAgfSku
dGhlbigoKSA9PiB7CiAgICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEku
cmVxdWVzdHMubGVuZ3RoLCAzKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1Jl
bW90ZUFQSS5yZXF1ZXN0c1syXS5tZXRob2QsICdQT1NUJyk7Ci0gICAgICAgICAgICAgICAgYXNz
ZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMl0udXJsLCAnL2J1aWxkZXJzL3NvbWUt
YnVpbGRlci0xL2ZvcmNlJyk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChNb2Nr
UmVtb3RlQVBJLnJlcXVlc3RzWzJdLmRhdGEsIHsnd2snOiAnMTkyNzM2JywgJ29zJzogJzEwLjEx
IDE1QTI4NCcsICdidWlsZC1yZXF1ZXN0LWlkJzogJzcwMSd9KTsKLSAgICAgICAgICAgICAgICBN
b2NrUmVtb3RlQVBJLnJlcXVlc3RzWzJdLnJlc29sdmUoJ09LJyk7CisgICAgICAgICAgICAgICAg
YXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMl0ubWV0aG9kLCAnR0VUJyk7Cisg
ICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMl0udXJs
LCAnL2pzb24vYnVpbGRlcnMvc29tZS1idWlsZGVyLTEvYnVpbGRzLz9zZWxlY3Q9LTEmc2VsZWN0
PS0yJyk7CisgICAgICAgICAgICAgICAgTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1syXS5yZXNvbHZl
KHt9KTsKICAgICAgICAgICAgICAgICByZXR1cm4gTW9ja1JlbW90ZUFQSS53YWl0Rm9yUmVxdWVz
dCgpOwogICAgICAgICAgICAgfSkudGhlbigoKSA9PiB7CiAgICAgICAgICAgICAgICAgYXNzZXJ0
LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHMubGVuZ3RoLCA0KTsKLSAgICAgICAgICAgICAg
ICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1szXS5tZXRob2QsICdHRVQnKTsK
LSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1szXS51
cmwsICcvanNvbi9idWlsZGVycy9zb21lLWJ1aWxkZXItMS9wZW5kaW5nQnVpbGRzJyk7Ci0gICAg
ICAgICAgICAgICAgTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1szXS5yZXNvbHZlKFtNb2NrRGF0YS5w
ZW5kaW5nQnVpbGQoe2J1aWxkUmVxdWVzdElkOiA3MDF9KV0pOworICAgICAgICAgICAgICAgIGFz
c2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzNdLm1ldGhvZCwgJ1BPU1QnKTsKKyAg
ICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1szXS51cmws
ICcvYnVpbGRlcnMvc29tZS1idWlsZGVyLTEvZm9yY2UnKTsKKyAgICAgICAgICAgICAgICBhc3Nl
cnQuZGVlcEVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbM10uZGF0YSwgeyd3ayc6ICcxOTI3
MzYnLCAnb3MnOiAnMTAuMTEgMTVBMjg0JywgJ2J1aWxkLXJlcXVlc3QtaWQnOiAnNzAxJ30pOwor
ICAgICAgICAgICAgICAgIE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbM10ucmVzb2x2ZSgnT0snKTsK
ICAgICAgICAgICAgICAgICByZXR1cm4gTW9ja1JlbW90ZUFQSS53YWl0Rm9yUmVxdWVzdCgpOwog
ICAgICAgICAgICAgfSkudGhlbigoKSA9PiB7CiAgICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFs
KE1vY2tSZW1vdGVBUEkucmVxdWVzdHMubGVuZ3RoLCA1KTsKICAgICAgICAgICAgICAgICBhc3Nl
cnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1s0XS5tZXRob2QsICdHRVQnKTsKLSAgICAg
ICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1s0XS51cmwsICcv
anNvbi9idWlsZGVycy9zb21lLWJ1aWxkZXItMS9idWlsZHMvP3NlbGVjdD0tMSZzZWxlY3Q9LTIn
KTsKLSAgICAgICAgICAgICAgICBNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzRdLnJlc29sdmUoe30p
OworICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzRd
LnVybCwgJy9qc29uL2J1aWxkZXJzL3NvbWUtYnVpbGRlci0xL3BlbmRpbmdCdWlsZHMnKTsKKyAg
ICAgICAgICAgICAgICBNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzRdLnJlc29sdmUoW01vY2tEYXRh
LnBlbmRpbmdCdWlsZCh7YnVpbGRSZXF1ZXN0SWQ6IDcwMX0pXSk7CisgICAgICAgICAgICAgICAg
cmV0dXJuIE1vY2tSZW1vdGVBUEkud2FpdEZvclJlcXVlc3QoKTsKKyAgICAgICAgICAgIH0pLnRo
ZW4oKCkgPT4geworICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJl
cXVlc3RzLmxlbmd0aCwgNik7CisgICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1v
dGVBUEkucmVxdWVzdHNbNV0ubWV0aG9kLCAnR0VUJyk7CisgICAgICAgICAgICAgICAgYXNzZXJ0
LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbNV0udXJsLCAnL2pzb24vYnVpbGRlcnMvc29t
ZS1idWlsZGVyLTEvYnVpbGRzLz9zZWxlY3Q9LTEmc2VsZWN0PS0yJyk7CisgICAgICAgICAgICAg
ICAgTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1s1XS5yZXNvbHZlKHt9KTsKICAgICAgICAgICAgICAg
ICByZXR1cm4gc3luY1Byb21pc2U7CiAgICAgICAgICAgICB9KS50aGVuKCgpID0+IHsKICAgICAg
ICAgICAgICAgICBhc3NlcnQuZXF1YWwoQnVpbGRSZXF1ZXN0LmFsbCgpLmxlbmd0aCwgNCk7CkBA
IC04MzIsMzAgKzg0NCwzMSBAQCBkZXNjcmliZSgnQnVpbGRib3RUcmlnZ2VyYWJsZScsIGZ1bmN0
aW9uCiAgICAgICAgICAgICAgICAgY29uc3Qgc2xhdmVJbmZvID0ge25hbWU6ICdzeW5jLXNsYXZl
JywgcGFzc3dvcmQ6ICdwYXNzd29yZCd9OwogICAgICAgICAgICAgICAgIGNvbnN0IHRyaWdnZXJh
YmxlID0gbmV3IEJ1aWxkYm90VHJpZ2dlcmFibGUoY29uZmlnLCBUZXN0U2VydmVyLnJlbW90ZUFQ
SSgpLCBNb2NrUmVtb3RlQVBJLCBzbGF2ZUluZm8sIGxvZ2dlcik7CiAgICAgICAgICAgICAgICAg
c3luY1Byb21pc2UgPSB0cmlnZ2VyYWJsZS5pbml0U3luY2VycygpLnRoZW4oKCkgPT4gdHJpZ2dl
cmFibGUuc3luY09uY2UoKSk7Ci0gICAgICAgICAgICAgICAgcmV0dXJuIE1vY2tSZW1vdGVBUEku
d2FpdEZvclJlcXVlc3QoKTsKLSAgICAgICAgICAgIH0pLnRoZW4oKCkgPT4gewotICAgICAgICAg
ICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzLmxlbmd0aCwgMSk7Ci0g
ICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMF0ubWV0
aG9kLCAnR0VUJyk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEku
cmVxdWVzdHNbMF0udXJsLCAnL2pzb24vYnVpbGRlcnMvc29tZS1idWlsZGVyLTEvcGVuZGluZ0J1
aWxkcycpOwotICAgICAgICAgICAgICAgIE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMF0ucmVzb2x2
ZShbXSk7CisgICAgICAgICAgICAgICAgYXNzZXJ0UmVxdWVzdEFuZFJlc29sdmUoTW9ja1JlbW90
ZUFQSS5yZXF1ZXN0c1swXSwgJ0dFVCcsIE1vY2tEYXRhLmJ1aWxkYm90QnVpbGRlcnNVUkwoKSwg
TW9ja0RhdGEubW9ja0J1aWxkYm90QnVpbGRlcnMoKSk7CiAgICAgICAgICAgICAgICAgcmV0dXJu
IE1vY2tSZW1vdGVBUEkud2FpdEZvclJlcXVlc3QoKTsKICAgICAgICAgICAgIH0pLnRoZW4oKCkg
PT4gewogICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3Rz
Lmxlbmd0aCwgMik7CiAgICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEku
cmVxdWVzdHNbMV0ubWV0aG9kLCAnR0VUJyk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFs
KE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMV0udXJsLCAnL2pzb24vYnVpbGRlcnMvc29tZS1idWls
ZGVyLTEvYnVpbGRzLz9zZWxlY3Q9LTEmc2VsZWN0PS0yJyk7Ci0gICAgICAgICAgICAgICAgTW9j
a1JlbW90ZUFQSS5yZXF1ZXN0c1sxXS5yZXNvbHZlKHt9KTsKKyAgICAgICAgICAgICAgICBhc3Nl
cnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1sxXS51cmwsICcvanNvbi9idWlsZGVycy9z
b21lLWJ1aWxkZXItMS9wZW5kaW5nQnVpbGRzJyk7CisgICAgICAgICAgICAgICAgTW9ja1JlbW90
ZUFQSS5yZXF1ZXN0c1sxXS5yZXNvbHZlKFtdKTsKICAgICAgICAgICAgICAgICByZXR1cm4gTW9j
a1JlbW90ZUFQSS53YWl0Rm9yUmVxdWVzdCgpOwogICAgICAgICAgICAgfSkudGhlbigoKSA9PiB7
CiAgICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHMubGVu
Z3RoLCAzKTsKICAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1
ZXN0c1syXS5tZXRob2QsICdHRVQnKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9j
a1JlbW90ZUFQSS5yZXF1ZXN0c1syXS51cmwsICcvanNvbi9idWlsZGVycy9zb21lLWJ1aWxkZXIt
MS9wZW5kaW5nQnVpbGRzJyk7Ci0gICAgICAgICAgICAgICAgTW9ja1JlbW90ZUFQSS5yZXF1ZXN0
c1syXS5yZXNvbHZlKFtdKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90
ZUFQSS5yZXF1ZXN0c1syXS51cmwsICcvanNvbi9idWlsZGVycy9zb21lLWJ1aWxkZXItMS9idWls
ZHMvP3NlbGVjdD0tMSZzZWxlY3Q9LTInKTsKKyAgICAgICAgICAgICAgICBNb2NrUmVtb3RlQVBJ
LnJlcXVlc3RzWzJdLnJlc29sdmUoe30pOwogICAgICAgICAgICAgICAgIHJldHVybiBNb2NrUmVt
b3RlQVBJLndhaXRGb3JSZXF1ZXN0KCk7CiAgICAgICAgICAgICB9KS50aGVuKCgpID0+IHsKICAg
ICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0cy5sZW5ndGgs
IDQpOwogICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3Rz
WzNdLm1ldGhvZCwgJ0dFVCcpOwotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVt
b3RlQVBJLnJlcXVlc3RzWzNdLnVybCwgJy9qc29uL2J1aWxkZXJzL3NvbWUtYnVpbGRlci0xL2J1
aWxkcy8/c2VsZWN0PS0xJnNlbGVjdD0tMicpOwotICAgICAgICAgICAgICAgIE1vY2tSZW1vdGVB
UEkucmVxdWVzdHNbM10ucmVzb2x2ZSh7fSk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFs
KE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbM10udXJsLCAnL2pzb24vYnVpbGRlcnMvc29tZS1idWls
ZGVyLTEvcGVuZGluZ0J1aWxkcycpOworICAgICAgICAgICAgICAgIE1vY2tSZW1vdGVBUEkucmVx
dWVzdHNbM10ucmVzb2x2ZShbXSk7CisgICAgICAgICAgICAgICAgcmV0dXJuIE1vY2tSZW1vdGVB
UEkud2FpdEZvclJlcXVlc3QoKTsKKyAgICAgICAgICAgIH0pLnRoZW4oKCkgPT4geworICAgICAg
ICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzLmxlbmd0aCwgNSk7
CisgICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbNF0u
bWV0aG9kLCAnR0VUJyk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVB
UEkucmVxdWVzdHNbNF0udXJsLCAnL2pzb24vYnVpbGRlcnMvc29tZS1idWlsZGVyLTEvYnVpbGRz
Lz9zZWxlY3Q9LTEmc2VsZWN0PS0yJyk7CisgICAgICAgICAgICAgICAgTW9ja1JlbW90ZUFQSS5y
ZXF1ZXN0c1s0XS5yZXNvbHZlKHt9KTsKICAgICAgICAgICAgICAgICByZXR1cm4gc3luY1Byb21p
c2U7CiAgICAgICAgICAgICB9KS50aGVuKCgpID0+IHsKICAgICAgICAgICAgICAgICBhc3NlcnQu
ZXF1YWwoQnVpbGRSZXF1ZXN0LmFsbCgpLmxlbmd0aCwgNCk7CkBAIC04ODcsMjUgKzkwMCwyNiBA
QCBkZXNjcmliZSgnQnVpbGRib3RUcmlnZ2VyYWJsZScsIGZ1bmN0aW9uCiAgICAgICAgICAgICAg
ICAgY29uc3Qgc2xhdmVJbmZvID0ge25hbWU6ICdzeW5jLXNsYXZlJywgcGFzc3dvcmQ6ICdwYXNz
d29yZCd9OwogICAgICAgICAgICAgICAgIGNvbnN0IHRyaWdnZXJhYmxlID0gbmV3IEJ1aWxkYm90
VHJpZ2dlcmFibGUoY29uZmlnLCBUZXN0U2VydmVyLnJlbW90ZUFQSSgpLCBNb2NrUmVtb3RlQVBJ
LCBzbGF2ZUluZm8sIGxvZ2dlcik7CiAgICAgICAgICAgICAgICAgc3luY1Byb21pc2UgPSB0cmln
Z2VyYWJsZS5pbml0U3luY2VycygpLnRoZW4oKCkgPT4gdHJpZ2dlcmFibGUuc3luY09uY2UoKSk7
Ci0gICAgICAgICAgICAgICAgcmV0dXJuIE1vY2tSZW1vdGVBUEkud2FpdEZvclJlcXVlc3QoKTsK
LSAgICAgICAgICAgIH0pLnRoZW4oKCkgPT4gewotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVh
bChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzLmxlbmd0aCwgMSk7Ci0gICAgICAgICAgICAgICAgYXNz
ZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMF0ubWV0aG9kLCAnR0VUJyk7Ci0gICAg
ICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMF0udXJsLCAn
L2pzb24vYnVpbGRlcnMvc29tZS1idWlsZGVyLTEvcGVuZGluZ0J1aWxkcycpOwotICAgICAgICAg
ICAgICAgIE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMF0ucmVzb2x2ZShbXSk7CisgICAgICAgICAg
ICAgICAgYXNzZXJ0UmVxdWVzdEFuZFJlc29sdmUoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1swXSwg
J0dFVCcsIE1vY2tEYXRhLmJ1aWxkYm90QnVpbGRlcnNVUkwoKSwgTW9ja0RhdGEubW9ja0J1aWxk
Ym90QnVpbGRlcnMoKSk7CiAgICAgICAgICAgICAgICAgcmV0dXJuIE1vY2tSZW1vdGVBUEkud2Fp
dEZvclJlcXVlc3QoKTsKICAgICAgICAgICAgIH0pLnRoZW4oKCkgPT4gewogICAgICAgICAgICAg
ICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzLmxlbmd0aCwgMik7CiAgICAg
ICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMV0ubWV0aG9k
LCAnR0VUJyk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVx
dWVzdHNbMV0udXJsLCAnL2pzb24vYnVpbGRlcnMvc29tZS1idWlsZGVyLTEvYnVpbGRzLz9zZWxl
Y3Q9LTEmc2VsZWN0PS0yJyk7Ci0gICAgICAgICAgICAgICAgTW9ja1JlbW90ZUFQSS5yZXF1ZXN0
c1sxXS5yZXNvbHZlKHt9KTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90
ZUFQSS5yZXF1ZXN0c1sxXS51cmwsICcvanNvbi9idWlsZGVycy9zb21lLWJ1aWxkZXItMS9wZW5k
aW5nQnVpbGRzJyk7CisgICAgICAgICAgICAgICAgTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1sxXS5y
ZXNvbHZlKFtdKTsKICAgICAgICAgICAgICAgICByZXR1cm4gTW9ja1JlbW90ZUFQSS53YWl0Rm9y
UmVxdWVzdCgpOwogICAgICAgICAgICAgfSkudGhlbigoKSA9PiB7CiAgICAgICAgICAgICAgICAg
YXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHMubGVuZ3RoLCAzKTsKLSAgICAgICAg
ICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1syXS5tZXRob2QsICdQ
T1NUJyk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVz
dHNbMl0udXJsLCAnL2J1aWxkZXJzL3NvbWUtYnVpbGRlci0xL2ZvcmNlJyk7Ci0gICAgICAgICAg
ICAgICAgYXNzZXJ0LmRlZXBFcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzJdLmRhdGEsIHsn
d2snOiAnMTkxNjIyJywgJ29zJzogJzEwLjExIDE1QTI4NCcsICdidWlsZC1yZXF1ZXN0LWlkJzog
JzcxMCd9KTsKLSAgICAgICAgICAgICAgICBNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzJdLnJlc29s
dmUoJ09LJyk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVx
dWVzdHNbMl0ubWV0aG9kLCAnR0VUJyk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1v
Y2tSZW1vdGVBUEkucmVxdWVzdHNbMl0udXJsLCAnL2pzb24vYnVpbGRlcnMvc29tZS1idWlsZGVy
LTEvYnVpbGRzLz9zZWxlY3Q9LTEmc2VsZWN0PS0yJyk7CisgICAgICAgICAgICAgICAgTW9ja1Jl
bW90ZUFQSS5yZXF1ZXN0c1syXS5yZXNvbHZlKHt9KTsKKyAgICAgICAgICAgICAgICByZXR1cm4g
TW9ja1JlbW90ZUFQSS53YWl0Rm9yUmVxdWVzdCgpOworICAgICAgICAgICAgfSkudGhlbigoKSA9
PiB7CisgICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHMu
bGVuZ3RoLCA0KTsKKyAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5y
ZXF1ZXN0c1szXS5tZXRob2QsICdQT1NUJyk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFs
KE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbM10udXJsLCAnL2J1aWxkZXJzL3NvbWUtYnVpbGRlci0x
L2ZvcmNlJyk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChNb2NrUmVtb3RlQVBJ
LnJlcXVlc3RzWzNdLmRhdGEsIHsnd2snOiAnMTkxNjIyJywgJ29zJzogJzEwLjExIDE1QTI4NCcs
ICdidWlsZC1yZXF1ZXN0LWlkJzogJzcxMCd9KTsKKyAgICAgICAgICAgICAgICBNb2NrUmVtb3Rl
QVBJLnJlcXVlc3RzWzNdLnJlc29sdmUoJ09LJyk7CiAgICAgICAgICAgICB9KTsKICAgICAgICAg
fSk7CiAgICAgfSk7CkBAIC05NzIsNyArOTg2LDkgQEAgZGVzY3JpYmUoJ0J1aWxkYm90VHJpZ2dl
cmFibGUnLCBmdW5jdGlvbgogICAgICAgICAgICAgICAgIGNvbnN0IGxvZ2dlciA9IG5ldyBNb2Nr
TG9nZ2VyOwogICAgICAgICAgICAgICAgIGNvbnN0IHNsYXZlSW5mbyA9IHtuYW1lOiAnc3luYy1z
bGF2ZScsIHBhc3N3b3JkOiAncGFzc3dvcmQnfTsKICAgICAgICAgICAgICAgICBjb25zdCBidWls
ZGJvdFRyaWdnZXJhYmxlID0gbmV3IEJ1aWxkYm90VHJpZ2dlcmFibGUoY29uZmlnLCBUZXN0U2Vy
dmVyLnJlbW90ZUFQSSgpLCBNb2NrUmVtb3RlQVBJLCBzbGF2ZUluZm8sIGxvZ2dlcik7Ci0gICAg
ICAgICAgICAgICAgcmV0dXJuIGJ1aWxkYm90VHJpZ2dlcmFibGUuaW5pdFN5bmNlcnMoKS50aGVu
KCgpID0+IGJ1aWxkYm90VHJpZ2dlcmFibGUudXBkYXRlVHJpZ2dlcmFibGUoKSk7CisgICAgICAg
ICAgICAgICAgY29uc3QgdHJpZ2dlcmFibGVQcm9taXNlID0gYnVpbGRib3RUcmlnZ2VyYWJsZS5p
bml0U3luY2VycygpLnRoZW4oKCkgPT4gYnVpbGRib3RUcmlnZ2VyYWJsZS51cGRhdGVUcmlnZ2Vy
YWJsZSgpKTsKKyAgICAgICAgICAgICAgICBhc3NlcnRSZXF1ZXN0QW5kUmVzb2x2ZShNb2NrUmVt
b3RlQVBJLnJlcXVlc3RzWzBdLCAnR0VUJywgTW9ja0RhdGEuYnVpbGRib3RCdWlsZGVyc1VSTCgp
LCBNb2NrRGF0YS5tb2NrQnVpbGRib3RCdWlsZGVycygpKTsKKyAgICAgICAgICAgICAgICByZXR1
cm4gdHJpZ2dlcmFibGVQcm9taXNlOwogICAgICAgICAgICAgfSkudGhlbigoKSA9PiByZWZldGNo
TWFuaWZlc3QoKSkudGhlbigoKSA9PiB7CiAgICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKFRy
aWdnZXJhYmxlLmFsbCgpLmxlbmd0aCwgMSk7CiAKQEAgLTk5Nyw3ICsxMDEzLDkgQEAgZGVzY3Jp
YmUoJ0J1aWxkYm90VHJpZ2dlcmFibGUnLCBmdW5jdGlvbgogICAgICAgICAgICAgICAgIGNvbnN0
IGxvZ2dlciA9IG5ldyBNb2NrTG9nZ2VyOwogICAgICAgICAgICAgICAgIGNvbnN0IHNsYXZlSW5m
byA9IHtuYW1lOiAnc3luYy1zbGF2ZScsIHBhc3N3b3JkOiAncGFzc3dvcmQnfTsKICAgICAgICAg
ICAgICAgICBjb25zdCBidWlsZGJvdFRyaWdnZXJhYmxlID0gbmV3IEJ1aWxkYm90VHJpZ2dlcmFi
bGUoY29uZmlnLCBUZXN0U2VydmVyLnJlbW90ZUFQSSgpLCBNb2NrUmVtb3RlQVBJLCBzbGF2ZUlu
Zm8sIGxvZ2dlcik7Ci0gICAgICAgICAgICAgICAgcmV0dXJuIGJ1aWxkYm90VHJpZ2dlcmFibGUu
aW5pdFN5bmNlcnMoKS50aGVuKCgpID0+IGJ1aWxkYm90VHJpZ2dlcmFibGUudXBkYXRlVHJpZ2dl
cmFibGUoKSk7CisgICAgICAgICAgICAgICAgY29uc3QgdHJpZ2dlcmFibGVQcm9taXNlID0gYnVp
bGRib3RUcmlnZ2VyYWJsZS5pbml0U3luY2VycygpLnRoZW4oKCkgPT4gYnVpbGRib3RUcmlnZ2Vy
YWJsZS51cGRhdGVUcmlnZ2VyYWJsZSgpKTsKKyAgICAgICAgICAgICAgICBhc3NlcnRSZXF1ZXN0
QW5kUmVzb2x2ZShNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzFdLCAnR0VUJywgTW9ja0RhdGEuYnVp
bGRib3RCdWlsZGVyc1VSTCgpLCBNb2NrRGF0YS5tb2NrQnVpbGRib3RCdWlsZGVycygpKTsKKyAg
ICAgICAgICAgICAgICByZXR1cm4gdHJpZ2dlcmFibGVQcm9taXNlOwogICAgICAgICAgICAgfSku
dGhlbigoKSA9PiByZWZldGNoTWFuaWZlc3QoKSkudGhlbigoKSA9PiB7CiAgICAgICAgICAgICAg
ICAgYXNzZXJ0LmVxdWFsKFRyaWdnZXJhYmxlLmFsbCgpLmxlbmd0aCwgMSk7CiAgICAgICAgICAg
ICAgICAgY29uc3QgZ3JvdXBzID0gVHJpZ2dlcmFibGVSZXBvc2l0b3J5R3JvdXAuc29ydEJ5TmFt
ZShUcmlnZ2VyYWJsZS5hbGwoKVswXS5yZXBvc2l0b3J5R3JvdXBzKCkpOwpJbmRleDogV2Vic2l0
ZXMvcGVyZi53ZWJraXQub3JnL3NlcnZlci10ZXN0cy90b29scy1zeW5jLWJ1aWxkYm90LWludGVn
cmF0aW9uLXRlc3RzLmpzCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy9z
ZXJ2ZXItdGVzdHMvdG9vbHMtc3luYy1idWlsZGJvdC1pbnRlZ3JhdGlvbi10ZXN0cy5qcwkocmV2
aXNpb24gMjI0ODg3KQorKysgV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL3NlcnZlci10ZXN0cy90
b29scy1zeW5jLWJ1aWxkYm90LWludGVncmF0aW9uLXRlc3RzLmpzCSh3b3JraW5nIGNvcHkpCkBA
IC0xNDYsNyArMTQ2LDExIEBAIGZ1bmN0aW9uIGNyZWF0ZVRyaWdnZXJhYmxlKGNvbmZpZyA9IGNv
bmYKICAgICAgICAgcmV0dXJuIE1hbmlmZXN0LmZldGNoKCk7CiAgICAgfSkudGhlbigoKSA9PiB7
CiAgICAgICAgIHRyaWdnZXJhYmxlID0gbmV3IEJ1aWxkYm90VHJpZ2dlcmFibGUoY29uZmlnLCBU
ZXN0U2VydmVyLnJlbW90ZUFQSSgpLCBNb2NrUmVtb3RlQVBJLCB7bmFtZTogJ3N5bmMtc2xhdmUn
LCBwYXNzd29yZDogJ3Bhc3N3b3JkJ30sIG5ldyBNb2NrTG9nZ2VyKTsKLSAgICAgICAgcmV0dXJu
IHRyaWdnZXJhYmxlLmluaXRTeW5jZXJzKCkudGhlbigoKSA9PiB0cmlnZ2VyYWJsZS51cGRhdGVU
cmlnZ2VyYWJsZSgpKTsKKyAgICAgICAgY29uc3Qgc3luY1Byb21pc2UgPSB0cmlnZ2VyYWJsZS5p
bml0U3luY2VycygpLnRoZW4oKCkgPT4gdHJpZ2dlcmFibGUudXBkYXRlVHJpZ2dlcmFibGUoKSk7
CisgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzBdLm1ldGhvZCwg
J0dFVCcpOworICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1swXS51
cmwsIE1vY2tEYXRhLmJ1aWxkYm90QnVpbGRlcnNVUkwoKSk7CisgICAgICAgIE1vY2tSZW1vdGVB
UEkucmVxdWVzdHNbMF0ucmVzb2x2ZShNb2NrRGF0YS5tb2NrQnVpbGRib3RCdWlsZGVycygpKTsK
KyAgICAgICAgcmV0dXJuIHN5bmNQcm9taXNlOwogICAgIH0pLnRoZW4oKCkgPT4gTWFuaWZlc3Qu
ZmV0Y2goKSkudGhlbigoKSA9PiB7CiAgICAgICAgIHJldHVybiBuZXcgQnVpbGRib3RUcmlnZ2Vy
YWJsZShjb25maWcsIFRlc3RTZXJ2ZXIucmVtb3RlQVBJKCksIE1vY2tSZW1vdGVBUEksIHtuYW1l
OiAnc3luYy1zbGF2ZScsIHBhc3N3b3JkOiAncGFzc3dvcmQnfSwgbmV3IE1vY2tMb2dnZXIpOwog
ICAgIH0pOwpAQCAtMjQ1LDMwICsyNDksMzEgQEAgZGVzY3JpYmUoJ3N5bmMtYnVpbGRib3QnLCBm
dW5jdGlvbiAoKSB7CiAgICAgICAgICAgICB0YXNrSWQgPSBmaXJzdFRlc3RHcm91cC50YXNrKCku
aWQoKTsKICAgICAgICAgICAgIGFub3RoZXJUYXNrSWQgPSBzZWNvbmRUZXN0R3JvdXAudGFzaygp
LmlkKCk7CiAgICAgICAgICAgICBzeW5jUHJvbWlzZSA9IHRyaWdnZXJhYmxlLmluaXRTeW5jZXJz
KCkudGhlbigoKSA9PiB0cmlnZ2VyYWJsZS5zeW5jT25jZSgpKTsKLSAgICAgICAgICAgIHJldHVy
biBNb2NrUmVtb3RlQVBJLndhaXRGb3JSZXF1ZXN0KCk7Ci0gICAgICAgIH0pLnRoZW4oKCkgPT4g
ewotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlcXVlc3RzLmxlbmd0aCwgMik7Ci0gICAgICAg
ICAgICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1swXSwgJ0dFVCcsICcvanNvbi9i
dWlsZGVycy9zb21lJTIwdGVzdGVyL3BlbmRpbmdCdWlsZHMnLCBbTW9ja0RhdGEucGVuZGluZ0J1
aWxkKHtidWlsZGVyOiAnc29tZSB0ZXN0ZXInLCBidWlsZFJlcXVlc3RJZDogNX0pXSk7Ci0gICAg
ICAgICAgICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1sxXSwgJ0dFVCcsICcvanNv
bi9idWlsZGVycy9hbm90aGVyJTIwdGVzdGVyL3BlbmRpbmdCdWlsZHMnLCBbXSk7CisgICAgICAg
ICAgICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1sxXSwgJ0dFVCcsIE1vY2tEYXRh
LmJ1aWxkYm90QnVpbGRlcnNVUkwoKSwgTW9ja0RhdGEubW9ja0J1aWxkYm90QnVpbGRlcnMoKSk7
CiAgICAgICAgICAgICByZXR1cm4gTW9ja1JlbW90ZUFQSS53YWl0Rm9yUmVxdWVzdCgpOwogICAg
ICAgICB9KS50aGVuKCgpID0+IHsKICAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXF1ZXN0cy5s
ZW5ndGgsIDQpOwotICAgICAgICAgICAgYXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNb
Ml0sICdHRVQnLCAnL2pzb24vYnVpbGRlcnMvc29tZSUyMHRlc3Rlci9idWlsZHMvP3NlbGVjdD0t
MSZzZWxlY3Q9LTInLCB7Ci0gICAgICAgICAgICAgICAgWy0xXTogTW9ja0RhdGEucnVubmluZ0J1
aWxkKHtidWlsZGVyOiAnc29tZSB0ZXN0ZXInLCBidWlsZFJlcXVlc3RJZDogMX0pfSk7Ci0gICAg
ICAgICAgICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1szXSwgJ0dFVCcsICcvanNv
bi9idWlsZGVycy9hbm90aGVyJTIwdGVzdGVyL2J1aWxkcy8/c2VsZWN0PS0xJnNlbGVjdD0tMics
IHt9KTsKKyAgICAgICAgICAgIGFzc2VydEFuZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3RzWzJdLCAn
R0VUJywgJy9qc29uL2J1aWxkZXJzL3NvbWUlMjB0ZXN0ZXIvcGVuZGluZ0J1aWxkcycsIFtNb2Nr
RGF0YS5wZW5kaW5nQnVpbGQoe2J1aWxkZXI6ICdzb21lIHRlc3RlcicsIGJ1aWxkUmVxdWVzdElk
OiA1fSldKTsKKyAgICAgICAgICAgIGFzc2VydEFuZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3RzWzNd
LCAnR0VUJywgJy9qc29uL2J1aWxkZXJzL2Fub3RoZXIlMjB0ZXN0ZXIvcGVuZGluZ0J1aWxkcycs
IFtdKTsKICAgICAgICAgICAgIHJldHVybiBNb2NrUmVtb3RlQVBJLndhaXRGb3JSZXF1ZXN0KCk7
CiAgICAgICAgIH0pLnRoZW4oKCkgPT4gewogICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlcXVl
c3RzLmxlbmd0aCwgNik7Ci0gICAgICAgICAgICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1
ZXN0c1s0XSwgJ0dFVCcsICcvanNvbi9idWlsZGVycy9zb21lJTIwdGVzdGVyL3BlbmRpbmdCdWls
ZHMnLCBbXSk7Ci0gICAgICAgICAgICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1s1
XSwgJ0dFVCcsICcvanNvbi9idWlsZGVycy9hbm90aGVyJTIwdGVzdGVyL3BlbmRpbmdCdWlsZHMn
LFtdKTsKKyAgICAgICAgICAgIGFzc2VydEFuZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3RzWzRdLCAn
R0VUJywgJy9qc29uL2J1aWxkZXJzL3NvbWUlMjB0ZXN0ZXIvYnVpbGRzLz9zZWxlY3Q9LTEmc2Vs
ZWN0PS0yJywgeworICAgICAgICAgICAgICAgIFstMV06IE1vY2tEYXRhLnJ1bm5pbmdCdWlsZCh7
YnVpbGRlcjogJ3NvbWUgdGVzdGVyJywgYnVpbGRSZXF1ZXN0SWQ6IDF9KX0pOworICAgICAgICAg
ICAgYXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNbNV0sICdHRVQnLCAnL2pzb24vYnVp
bGRlcnMvYW5vdGhlciUyMHRlc3Rlci9idWlsZHMvP3NlbGVjdD0tMSZzZWxlY3Q9LTInLCB7fSk7
CiAgICAgICAgICAgICByZXR1cm4gTW9ja1JlbW90ZUFQSS53YWl0Rm9yUmVxdWVzdCgpOwogICAg
ICAgICB9KS50aGVuKCgpID0+IHsKICAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXF1ZXN0cy5s
ZW5ndGgsIDgpOwotICAgICAgICAgICAgYXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNb
Nl0sICdHRVQnLCAnL2pzb24vYnVpbGRlcnMvc29tZSUyMHRlc3Rlci9idWlsZHMvP3NlbGVjdD0t
MSZzZWxlY3Q9LTInLCB7CisgICAgICAgICAgICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1
ZXN0c1s2XSwgJ0dFVCcsICcvanNvbi9idWlsZGVycy9zb21lJTIwdGVzdGVyL3BlbmRpbmdCdWls
ZHMnLCBbXSk7CisgICAgICAgICAgICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1s3
XSwgJ0dFVCcsICcvanNvbi9idWlsZGVycy9hbm90aGVyJTIwdGVzdGVyL3BlbmRpbmdCdWlsZHMn
LFtdKTsKKyAgICAgICAgICAgIHJldHVybiBNb2NrUmVtb3RlQVBJLndhaXRGb3JSZXF1ZXN0KCk7
CisgICAgICAgIH0pLnRoZW4oKCkgPT4geworICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlcXVl
c3RzLmxlbmd0aCwgMTApOworICAgICAgICAgICAgYXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVx
dWVzdHNbOF0sICdHRVQnLCAnL2pzb24vYnVpbGRlcnMvc29tZSUyMHRlc3Rlci9idWlsZHMvP3Nl
bGVjdD0tMSZzZWxlY3Q9LTInLCB7CiAgICAgICAgICAgICAgICAgWy0xXTogTW9ja0RhdGEucnVu
bmluZ0J1aWxkKHtidWlsZGVyOiAnc29tZSB0ZXN0ZXInLCBidWlsZFJlcXVlc3RJZDogNX0pLAog
ICAgICAgICAgICAgICAgIFstMl06IE1vY2tEYXRhLmZpbmlzaGVkQnVpbGQoe2J1aWxkZXI6ICdz
b21lIHRlc3RlcicsIGJ1aWxkUmVxdWVzdElkOiAxfSkKICAgICAgICAgICAgIH0pOwotICAgICAg
ICAgICAgYXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNbN10sICdHRVQnLCAnL2pzb24v
YnVpbGRlcnMvYW5vdGhlciUyMHRlc3Rlci9idWlsZHMvP3NlbGVjdD0tMSZzZWxlY3Q9LTInLCB7
fSk7CisgICAgICAgICAgICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1s5XSwgJ0dF
VCcsICcvanNvbi9idWlsZGVycy9hbm90aGVyJTIwdGVzdGVyL2J1aWxkcy8/c2VsZWN0PS0xJnNl
bGVjdD0tMicsIHt9KTsKICAgICAgICAgICAgIHJldHVybiBzeW5jUHJvbWlzZTsKICAgICAgICAg
fSkudGhlbigoKSA9PiB7CiAgICAgICAgICAgICByZXR1cm4gVGVzdEdyb3VwLmZldGNoRm9yVGFz
ayh0YXNrSWQsIHRydWUpOwpAQCAtMzU3LDM5ICszNjIsNDAgQEAgZGVzY3JpYmUoJ3N5bmMtYnVp
bGRib3QnLCBmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKG90aGVy
Q29tbWl0U2V0LmFsbFJvb3RGaWxlcygpLCBbXSk7CiAKICAgICAgICAgICAgIHN5bmNQcm9taXNl
ID0gdHJpZ2dlcmFibGUuaW5pdFN5bmNlcnMoKS50aGVuKCgpID0+IHRyaWdnZXJhYmxlLnN5bmNP
bmNlKCkpOworICAgICAgICAgICAgYXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNbMV0s
ICdHRVQnLCBNb2NrRGF0YS5idWlsZGJvdEJ1aWxkZXJzVVJMKCksIE1vY2tEYXRhLm1vY2tCdWls
ZGJvdEJ1aWxkZXJzKCkpOwogICAgICAgICAgICAgcmV0dXJuIE1vY2tSZW1vdGVBUEkud2FpdEZv
clJlcXVlc3QoKTsKICAgICAgICAgfSkudGhlbigoKSA9PiB7Ci0gICAgICAgICAgICBhc3NlcnQu
ZXF1YWwocmVxdWVzdHMubGVuZ3RoLCAzKTsKLSAgICAgICAgICAgIGFzc2VydEFuZFJlc29sdmVS
ZXF1ZXN0KHJlcXVlc3RzWzBdLCAnR0VUJywgJy9qc29uL2J1aWxkZXJzL3NvbWUlMjB0ZXN0ZXIv
cGVuZGluZ0J1aWxkcycsIFtdKTsKLSAgICAgICAgICAgIGFzc2VydEFuZFJlc29sdmVSZXF1ZXN0
KHJlcXVlc3RzWzFdLCAnR0VUJywgJy9qc29uL2J1aWxkZXJzL3NvbWUlMjBidWlsZGVyL3BlbmRp
bmdCdWlsZHMnLCBbXSk7Ci0gICAgICAgICAgICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1
ZXN0c1syXSwgJ0dFVCcsICcvanNvbi9idWlsZGVycy9vdGhlciUyMGJ1aWxkZXIvcGVuZGluZ0J1
aWxkcycsIFtdKTsKKyAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXF1ZXN0cy5sZW5ndGgsIDUp
OworICAgICAgICAgICAgYXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNbMl0sICdHRVQn
LCAnL2pzb24vYnVpbGRlcnMvc29tZSUyMHRlc3Rlci9wZW5kaW5nQnVpbGRzJywgW10pOworICAg
ICAgICAgICAgYXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNbM10sICdHRVQnLCAnL2pz
b24vYnVpbGRlcnMvc29tZSUyMGJ1aWxkZXIvcGVuZGluZ0J1aWxkcycsIFtdKTsKKyAgICAgICAg
ICAgIGFzc2VydEFuZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3RzWzRdLCAnR0VUJywgJy9qc29uL2J1
aWxkZXJzL290aGVyJTIwYnVpbGRlci9wZW5kaW5nQnVpbGRzJywgW10pOwogICAgICAgICAgICAg
cmV0dXJuIE1vY2tSZW1vdGVBUEkud2FpdEZvclJlcXVlc3QoKTsKICAgICAgICAgfSkudGhlbigo
KSA9PiB7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVxdWVzdHMubGVuZ3RoLCA2KTsKLSAg
ICAgICAgICAgIGFzc2VydEFuZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3RzWzNdLCAnR0VUJywgJy9q
c29uL2J1aWxkZXJzL3NvbWUlMjB0ZXN0ZXIvYnVpbGRzLz9zZWxlY3Q9LTEmc2VsZWN0PS0yJywg
e30pOwotICAgICAgICAgICAgYXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNbNF0sICdH
RVQnLCAnL2pzb24vYnVpbGRlcnMvc29tZSUyMGJ1aWxkZXIvYnVpbGRzLz9zZWxlY3Q9LTEmc2Vs
ZWN0PS0yJywge30pOwotICAgICAgICAgICAgYXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVz
dHNbNV0sICdHRVQnLCAnL2pzb24vYnVpbGRlcnMvb3RoZXIlMjBidWlsZGVyL2J1aWxkcy8/c2Vs
ZWN0PS0xJnNlbGVjdD0tMicsIHt9KTsKKyAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXF1ZXN0
cy5sZW5ndGgsIDgpOworICAgICAgICAgICAgYXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVz
dHNbNV0sICdHRVQnLCAnL2pzb24vYnVpbGRlcnMvc29tZSUyMHRlc3Rlci9idWlsZHMvP3NlbGVj
dD0tMSZzZWxlY3Q9LTInLCB7fSk7CisgICAgICAgICAgICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVz
dChyZXF1ZXN0c1s2XSwgJ0dFVCcsICcvanNvbi9idWlsZGVycy9zb21lJTIwYnVpbGRlci9idWls
ZHMvP3NlbGVjdD0tMSZzZWxlY3Q9LTInLCB7fSk7CisgICAgICAgICAgICBhc3NlcnRBbmRSZXNv
bHZlUmVxdWVzdChyZXF1ZXN0c1s3XSwgJ0dFVCcsICcvanNvbi9idWlsZGVycy9vdGhlciUyMGJ1
aWxkZXIvYnVpbGRzLz9zZWxlY3Q9LTEmc2VsZWN0PS0yJywge30pOwogICAgICAgICAgICAgcmV0
dXJuIE1vY2tSZW1vdGVBUEkud2FpdEZvclJlcXVlc3QoKTsKICAgICAgICAgfSkudGhlbigoKSA9
PiB7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVxdWVzdHMubGVuZ3RoLCA3KTsKLSAgICAg
ICAgICAgIGFzc2VydEFuZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3RzWzZdLCAnUE9TVCcsICcvYnVp
bGRlcnMvc29tZSUyMGJ1aWxkZXIvZm9yY2UnLCAnT0snKTsKLSAgICAgICAgICAgIGFzc2VydC5k
ZWVwRXF1YWwocmVxdWVzdHNbNl0uZGF0YSwgeyd3ayc6ICcxOTE2MjInLCAnd2stcGF0Y2gnOiBS
ZW1vdGVBUEkudXJsKCcvYXBpL3VwbG9hZGVkLWZpbGUvMS5kYXQnKSwKKyAgICAgICAgICAgIGFz
c2VydC5lcXVhbChyZXF1ZXN0cy5sZW5ndGgsIDkpOworICAgICAgICAgICAgYXNzZXJ0QW5kUmVz
b2x2ZVJlcXVlc3QocmVxdWVzdHNbOF0sICdQT1NUJywgJy9idWlsZGVycy9zb21lJTIwYnVpbGRl
ci9mb3JjZScsICdPSycpOworICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChyZXF1ZXN0c1s4
XS5kYXRhLCB7J3drJzogJzE5MTYyMicsICd3ay1wYXRjaCc6IFJlbW90ZUFQSS51cmwoJy9hcGkv
dXBsb2FkZWQtZmlsZS8xLmRhdCcpLAogICAgICAgICAgICAgICAgICdidWlsZC1yZXF1ZXN0LWlk
JzogJzEnLCAnZm9yY2VzY2hlZHVsZXInOiAnZm9yY2UtYWItYnVpbGRzJywgJ2NoZWNrYm94Jzog
J2J1aWxkLXdrJ30pOwogICAgICAgICAgICAgcmV0dXJuIE1vY2tSZW1vdGVBUEkud2FpdEZvclJl
cXVlc3QoKTsKICAgICAgICAgfSkudGhlbigoKSA9PiB7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1
YWwocmVxdWVzdHMubGVuZ3RoLCAxMCk7Ci0gICAgICAgICAgICBhc3NlcnRBbmRSZXNvbHZlUmVx
dWVzdChyZXF1ZXN0c1s3XSwgJ0dFVCcsICcvanNvbi9idWlsZGVycy9zb21lJTIwdGVzdGVyL3Bl
bmRpbmdCdWlsZHMnLCBbXSk7Ci0gICAgICAgICAgICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVzdChy
ZXF1ZXN0c1s4XSwgJ0dFVCcsICcvanNvbi9idWlsZGVycy9zb21lJTIwYnVpbGRlci9wZW5kaW5n
QnVpbGRzJywKKyAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXF1ZXN0cy5sZW5ndGgsIDEyKTsK
KyAgICAgICAgICAgIGFzc2VydEFuZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3RzWzldLCAnR0VUJywg
Jy9qc29uL2J1aWxkZXJzL3NvbWUlMjB0ZXN0ZXIvcGVuZGluZ0J1aWxkcycsIFtdKTsKKyAgICAg
ICAgICAgIGFzc2VydEFuZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3RzWzEwXSwgJ0dFVCcsICcvanNv
bi9idWlsZGVycy9zb21lJTIwYnVpbGRlci9wZW5kaW5nQnVpbGRzJywKICAgICAgICAgICAgICAg
ICBbTW9ja0RhdGEucGVuZGluZ0J1aWxkKHtidWlsZGVyOiAnc29tZSBidWlsZGVyJywgYnVpbGRS
ZXF1ZXN0SWQ6IDF9KV0pOwotICAgICAgICAgICAgYXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVx
dWVzdHNbOV0sICdHRVQnLCAnL2pzb24vYnVpbGRlcnMvb3RoZXIlMjBidWlsZGVyL3BlbmRpbmdC
dWlsZHMnLCBbXSk7CisgICAgICAgICAgICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0
c1sxMV0sICdHRVQnLCAnL2pzb24vYnVpbGRlcnMvb3RoZXIlMjBidWlsZGVyL3BlbmRpbmdCdWls
ZHMnLCBbXSk7CiAgICAgICAgICAgICByZXR1cm4gTW9ja1JlbW90ZUFQSS53YWl0Rm9yUmVxdWVz
dCgpOwogICAgICAgICB9KS50aGVuKCgpID0+IHsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChy
ZXF1ZXN0cy5sZW5ndGgsIDEzKTsKLSAgICAgICAgICAgIGFzc2VydEFuZFJlc29sdmVSZXF1ZXN0
KHJlcXVlc3RzWzEwXSwgJ0dFVCcsICcvanNvbi9idWlsZGVycy9zb21lJTIwdGVzdGVyL2J1aWxk
cy8/c2VsZWN0PS0xJnNlbGVjdD0tMicsIHt9KTsKLSAgICAgICAgICAgIGFzc2VydEFuZFJlc29s
dmVSZXF1ZXN0KHJlcXVlc3RzWzExXSwgJ0dFVCcsICcvanNvbi9idWlsZGVycy9zb21lJTIwYnVp
bGRlci9idWlsZHMvP3NlbGVjdD0tMSZzZWxlY3Q9LTInLCB7CisgICAgICAgICAgICBhc3NlcnQu
ZXF1YWwocmVxdWVzdHMubGVuZ3RoLCAxNSk7CisgICAgICAgICAgICBhc3NlcnRBbmRSZXNvbHZl
UmVxdWVzdChyZXF1ZXN0c1sxMl0sICdHRVQnLCAnL2pzb24vYnVpbGRlcnMvc29tZSUyMHRlc3Rl
ci9idWlsZHMvP3NlbGVjdD0tMSZzZWxlY3Q9LTInLCB7fSk7CisgICAgICAgICAgICBhc3NlcnRB
bmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1sxM10sICdHRVQnLCAnL2pzb24vYnVpbGRlcnMvc29t
ZSUyMGJ1aWxkZXIvYnVpbGRzLz9zZWxlY3Q9LTEmc2VsZWN0PS0yJywgewogICAgICAgICAgICAg
ICAgIFstMV06IE1vY2tEYXRhLnJ1bm5pbmdCdWlsZCh7YnVpbGRlcjogJ3NvbWUgYnVpbGRlcics
IGJ1aWxkUmVxdWVzdElkOiAxfSkKICAgICAgICAgICAgIH0pOwotICAgICAgICAgICAgYXNzZXJ0
QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNbMTJdLCAnR0VUJywgJy9qc29uL2J1aWxkZXJzL290
aGVyJTIwYnVpbGRlci9idWlsZHMvP3NlbGVjdD0tMSZzZWxlY3Q9LTInLCB7fSk7CisgICAgICAg
ICAgICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1sxNF0sICdHRVQnLCAnL2pzb24v
YnVpbGRlcnMvb3RoZXIlMjBidWlsZGVyL2J1aWxkcy8/c2VsZWN0PS0xJnNlbGVjdD0tMicsIHt9
KTsKICAgICAgICAgICAgIHJldHVybiBzeW5jUHJvbWlzZTsKICAgICAgICAgfSkudGhlbigoKSA9
PiB7CiAgICAgICAgICAgICByZXR1cm4gVGVzdEdyb3VwLmZldGNoRm9yVGFzayh0YXNrSWQsIHRy
dWUpOwpAQCAtNDY4LDQwICs0NzQsNDEgQEAgZGVzY3JpYmUoJ3N5bmMtYnVpbGRib3QnLCBmdW5j
dGlvbiAoKSB7CiAKICAgICAgICAgICAgIE1vY2tSZW1vdGVBUEkucmVzZXQoKTsKICAgICAgICAg
ICAgIHN5bmNQcm9taXNlID0gdHJpZ2dlcmFibGUuaW5pdFN5bmNlcnMoKS50aGVuKCgpID0+IHRy
aWdnZXJhYmxlLnN5bmNPbmNlKCkpOworICAgICAgICAgICAgYXNzZXJ0QW5kUmVzb2x2ZVJlcXVl
c3QocmVxdWVzdHNbMF0sICdHRVQnLCBNb2NrRGF0YS5idWlsZGJvdEJ1aWxkZXJzVVJMKCksIE1v
Y2tEYXRhLm1vY2tCdWlsZGJvdEJ1aWxkZXJzKCkpOwogICAgICAgICAgICAgcmV0dXJuIE1vY2tS
ZW1vdGVBUEkud2FpdEZvclJlcXVlc3QoKTsKICAgICAgICAgfSkudGhlbigoKSA9PiB7Ci0gICAg
ICAgICAgICBhc3NlcnQuZXF1YWwocmVxdWVzdHMubGVuZ3RoLCAzKTsKLSAgICAgICAgICAgIGFz
c2VydEFuZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3RzWzBdLCAnR0VUJywgJy9qc29uL2J1aWxkZXJz
L3NvbWUlMjB0ZXN0ZXIvcGVuZGluZ0J1aWxkcycsIFtdKTsKLSAgICAgICAgICAgIGFzc2VydEFu
ZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3RzWzFdLCAnR0VUJywgJy9qc29uL2J1aWxkZXJzL3NvbWUl
MjBidWlsZGVyL3BlbmRpbmdCdWlsZHMnLCBbXSk7Ci0gICAgICAgICAgICBhc3NlcnRBbmRSZXNv
bHZlUmVxdWVzdChyZXF1ZXN0c1syXSwgJ0dFVCcsICcvanNvbi9idWlsZGVycy9vdGhlciUyMGJ1
aWxkZXIvcGVuZGluZ0J1aWxkcycsIFtdKTsKKyAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXF1
ZXN0cy5sZW5ndGgsIDQpOworICAgICAgICAgICAgYXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVx
dWVzdHNbMV0sICdHRVQnLCAnL2pzb24vYnVpbGRlcnMvc29tZSUyMHRlc3Rlci9wZW5kaW5nQnVp
bGRzJywgW10pOworICAgICAgICAgICAgYXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNb
Ml0sICdHRVQnLCAnL2pzb24vYnVpbGRlcnMvc29tZSUyMGJ1aWxkZXIvcGVuZGluZ0J1aWxkcycs
IFtdKTsKKyAgICAgICAgICAgIGFzc2VydEFuZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3RzWzNdLCAn
R0VUJywgJy9qc29uL2J1aWxkZXJzL290aGVyJTIwYnVpbGRlci9wZW5kaW5nQnVpbGRzJywgW10p
OwogICAgICAgICAgICAgcmV0dXJuIE1vY2tSZW1vdGVBUEkud2FpdEZvclJlcXVlc3QoKTsKICAg
ICAgICAgfSkudGhlbigoKSA9PiB7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVxdWVzdHMu
bGVuZ3RoLCA2KTsKLSAgICAgICAgICAgIGFzc2VydEFuZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3Rz
WzNdLCAnR0VUJywgJy9qc29uL2J1aWxkZXJzL3NvbWUlMjB0ZXN0ZXIvYnVpbGRzLz9zZWxlY3Q9
LTEmc2VsZWN0PS0yJywge30pOwotICAgICAgICAgICAgYXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3Qo
cmVxdWVzdHNbNF0sICdHRVQnLCAnL2pzb24vYnVpbGRlcnMvc29tZSUyMGJ1aWxkZXIvYnVpbGRz
Lz9zZWxlY3Q9LTEmc2VsZWN0PS0yJywgeworICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlcXVl
c3RzLmxlbmd0aCwgNyk7CisgICAgICAgICAgICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1
ZXN0c1s0XSwgJ0dFVCcsICcvanNvbi9idWlsZGVycy9zb21lJTIwdGVzdGVyL2J1aWxkcy8/c2Vs
ZWN0PS0xJnNlbGVjdD0tMicsIHt9KTsKKyAgICAgICAgICAgIGFzc2VydEFuZFJlc29sdmVSZXF1
ZXN0KHJlcXVlc3RzWzVdLCAnR0VUJywgJy9qc29uL2J1aWxkZXJzL3NvbWUlMjBidWlsZGVyL2J1
aWxkcy8/c2VsZWN0PS0xJnNlbGVjdD0tMicsIHsKICAgICAgICAgICAgICAgICBbLTFdOiBNb2Nr
RGF0YS5maW5pc2hlZEJ1aWxkKHtidWlsZGVyOiAnc29tZSBidWlsZGVyJywgYnVpbGRSZXF1ZXN0
SWQ6IDF9KQogICAgICAgICAgICAgfSk7Ci0gICAgICAgICAgICBhc3NlcnRBbmRSZXNvbHZlUmVx
dWVzdChyZXF1ZXN0c1s1XSwgJ0dFVCcsICcvanNvbi9idWlsZGVycy9vdGhlciUyMGJ1aWxkZXIv
YnVpbGRzLz9zZWxlY3Q9LTEmc2VsZWN0PS0yJywge30pOworICAgICAgICAgICAgYXNzZXJ0QW5k
UmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNbNl0sICdHRVQnLCAnL2pzb24vYnVpbGRlcnMvb3RoZXIl
MjBidWlsZGVyL2J1aWxkcy8/c2VsZWN0PS0xJnNlbGVjdD0tMicsIHt9KTsKICAgICAgICAgICAg
IHJldHVybiBNb2NrUmVtb3RlQVBJLndhaXRGb3JSZXF1ZXN0KCk7CiAgICAgICAgIH0pLnRoZW4o
KCkgPT4gewotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlcXVlc3RzLmxlbmd0aCwgNyk7Ci0g
ICAgICAgICAgICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1s2XSwgJ1BPU1QnLCAn
L2J1aWxkZXJzL3NvbWUlMjBidWlsZGVyL2ZvcmNlJywgJ09LJyk7Ci0gICAgICAgICAgICBhc3Nl
cnQuZGVlcEVxdWFsKHJlcXVlc3RzWzZdLmRhdGEsIHsnd2snOiAnMTkxNjIyJywgJ2J1aWxkLXJl
cXVlc3QtaWQnOiAnMicsICdmb3JjZXNjaGVkdWxlcic6ICdmb3JjZS1hYi1idWlsZHMnLCAnY2hl
Y2tib3gnOiAnYnVpbGQtd2snfSk7CisgICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVxdWVzdHMu
bGVuZ3RoLCA4KTsKKyAgICAgICAgICAgIGFzc2VydEFuZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3Rz
WzddLCAnUE9TVCcsICcvYnVpbGRlcnMvc29tZSUyMGJ1aWxkZXIvZm9yY2UnLCAnT0snKTsKKyAg
ICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwocmVxdWVzdHNbN10uZGF0YSwgeyd3ayc6ICcxOTE2
MjInLCAnYnVpbGQtcmVxdWVzdC1pZCc6ICcyJywgJ2ZvcmNlc2NoZWR1bGVyJzogJ2ZvcmNlLWFi
LWJ1aWxkcycsICdjaGVja2JveCc6ICdidWlsZC13ayd9KTsKICAgICAgICAgICAgIHJldHVybiBN
b2NrUmVtb3RlQVBJLndhaXRGb3JSZXF1ZXN0KCk7CiAgICAgICAgIH0pLnRoZW4oKCkgPT4gewot
ICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlcXVlc3RzLmxlbmd0aCwgMTApOwotICAgICAgICAg
ICAgYXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNbN10sICdHRVQnLCAnL2pzb24vYnVp
bGRlcnMvc29tZSUyMHRlc3Rlci9wZW5kaW5nQnVpbGRzJywgW10pOwotICAgICAgICAgICAgYXNz
ZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNbOF0sICdHRVQnLCAnL2pzb24vYnVpbGRlcnMv
c29tZSUyMGJ1aWxkZXIvcGVuZGluZ0J1aWxkcycsIFtdKTsKLSAgICAgICAgICAgIGFzc2VydEFu
ZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3RzWzldLCAnR0VUJywgJy9qc29uL2J1aWxkZXJzL290aGVy
JTIwYnVpbGRlci9wZW5kaW5nQnVpbGRzJywgW10pOworICAgICAgICAgICAgYXNzZXJ0LmVxdWFs
KHJlcXVlc3RzLmxlbmd0aCwgMTEpOworICAgICAgICAgICAgYXNzZXJ0QW5kUmVzb2x2ZVJlcXVl
c3QocmVxdWVzdHNbOF0sICdHRVQnLCAnL2pzb24vYnVpbGRlcnMvc29tZSUyMHRlc3Rlci9wZW5k
aW5nQnVpbGRzJywgW10pOworICAgICAgICAgICAgYXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVx
dWVzdHNbOV0sICdHRVQnLCAnL2pzb24vYnVpbGRlcnMvc29tZSUyMGJ1aWxkZXIvcGVuZGluZ0J1
aWxkcycsIFtdKTsKKyAgICAgICAgICAgIGFzc2VydEFuZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3Rz
WzEwXSwgJ0dFVCcsICcvanNvbi9idWlsZGVycy9vdGhlciUyMGJ1aWxkZXIvcGVuZGluZ0J1aWxk
cycsIFtdKTsKICAgICAgICAgICAgIHJldHVybiBNb2NrUmVtb3RlQVBJLndhaXRGb3JSZXF1ZXN0
KCk7CiAgICAgICAgIH0pLnRoZW4oKCkgPT4gewotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJl
cXVlc3RzLmxlbmd0aCwgMTMpOwotICAgICAgICAgICAgYXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3Qo
cmVxdWVzdHNbMTBdLCAnR0VUJywgJy9qc29uL2J1aWxkZXJzL3NvbWUlMjB0ZXN0ZXIvYnVpbGRz
Lz9zZWxlY3Q9LTEmc2VsZWN0PS0yJywge30pOwotICAgICAgICAgICAgYXNzZXJ0QW5kUmVzb2x2
ZVJlcXVlc3QocmVxdWVzdHNbMTFdLCAnR0VUJywgJy9qc29uL2J1aWxkZXJzL3NvbWUlMjBidWls
ZGVyL2J1aWxkcy8/c2VsZWN0PS0xJnNlbGVjdD0tMicsIHsKKyAgICAgICAgICAgIGFzc2VydC5l
cXVhbChyZXF1ZXN0cy5sZW5ndGgsIDE0KTsKKyAgICAgICAgICAgIGFzc2VydEFuZFJlc29sdmVS
ZXF1ZXN0KHJlcXVlc3RzWzExXSwgJ0dFVCcsICcvanNvbi9idWlsZGVycy9zb21lJTIwdGVzdGVy
L2J1aWxkcy8/c2VsZWN0PS0xJnNlbGVjdD0tMicsIHt9KTsKKyAgICAgICAgICAgIGFzc2VydEFu
ZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3RzWzEyXSwgJ0dFVCcsICcvanNvbi9idWlsZGVycy9zb21l
JTIwYnVpbGRlci9idWlsZHMvP3NlbGVjdD0tMSZzZWxlY3Q9LTInLCB7CiAgICAgICAgICAgICAg
ICAgWy0xXTogTW9ja0RhdGEucnVubmluZ0J1aWxkKHtidWlsZGVyOiAnc29tZSBidWlsZGVyJywg
YnVpbGRSZXF1ZXN0SWQ6IDJ9KSwKICAgICAgICAgICAgICAgICBbLTJdOiBNb2NrRGF0YS5maW5p
c2hlZEJ1aWxkKHtidWlsZGVyOiAnc29tZSBidWlsZGVyJywgYnVpbGRSZXF1ZXN0SWQ6IDF9KSwK
ICAgICAgICAgICAgIH0pOwotICAgICAgICAgICAgYXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVx
dWVzdHNbMTJdLCAnR0VUJywgJy9qc29uL2J1aWxkZXJzL290aGVyJTIwYnVpbGRlci9idWlsZHMv
P3NlbGVjdD0tMSZzZWxlY3Q9LTInLCB7fSk7CisgICAgICAgICAgICBhc3NlcnRBbmRSZXNvbHZl
UmVxdWVzdChyZXF1ZXN0c1sxM10sICdHRVQnLCAnL2pzb24vYnVpbGRlcnMvb3RoZXIlMjBidWls
ZGVyL2J1aWxkcy8/c2VsZWN0PS0xJnNlbGVjdD0tMicsIHt9KTsKICAgICAgICAgICAgIHJldHVy
biBzeW5jUHJvbWlzZTsKICAgICAgICAgfSkudGhlbigoKSA9PiB7CiAgICAgICAgICAgICByZXR1
cm4gVGVzdEdyb3VwLmZldGNoRm9yVGFzayh0YXNrSWQsIHRydWUpOwpAQCAtNjI2LDM5ICs2MzMs
NDAgQEAgZGVzY3JpYmUoJ3N5bmMtYnVpbGRib3QnLCBmdW5jdGlvbiAoKSB7CiAgICAgICAgICAg
ICBhc3NlcnQuZGVlcEVxdWFsKG90aGVyQ29tbWl0U2V0LmFsbFJvb3RGaWxlcygpLCBbXSk7CiAK
ICAgICAgICAgICAgIHN5bmNQcm9taXNlID0gdHJpZ2dlcmFibGUuaW5pdFN5bmNlcnMoKS50aGVu
KCgpID0+IHRyaWdnZXJhYmxlLnN5bmNPbmNlKCkpOworICAgICAgICAgICAgYXNzZXJ0QW5kUmVz
b2x2ZVJlcXVlc3QocmVxdWVzdHNbMV0sICdHRVQnLCBNb2NrRGF0YS5idWlsZGJvdEJ1aWxkZXJz
VVJMKCksIE1vY2tEYXRhLm1vY2tCdWlsZGJvdEJ1aWxkZXJzKCkpOwogICAgICAgICAgICAgcmV0
dXJuIE1vY2tSZW1vdGVBUEkud2FpdEZvclJlcXVlc3QoKTsKICAgICAgICAgfSkudGhlbigoKSA9
PiB7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVxdWVzdHMubGVuZ3RoLCAzKTsKLSAgICAg
ICAgICAgIGFzc2VydEFuZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3RzWzBdLCAnR0VUJywgJy9qc29u
L2J1aWxkZXJzL3NvbWUlMjB0ZXN0ZXIvcGVuZGluZ0J1aWxkcycsIFtdKTsKLSAgICAgICAgICAg
IGFzc2VydEFuZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3RzWzFdLCAnR0VUJywgJy9qc29uL2J1aWxk
ZXJzL3NvbWUlMjBidWlsZGVyL3BlbmRpbmdCdWlsZHMnLCBbXSk7Ci0gICAgICAgICAgICBhc3Nl
cnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1syXSwgJ0dFVCcsICcvanNvbi9idWlsZGVycy9v
dGhlciUyMGJ1aWxkZXIvcGVuZGluZ0J1aWxkcycsIFtdKTsKKyAgICAgICAgICAgIGFzc2VydC5l
cXVhbChyZXF1ZXN0cy5sZW5ndGgsIDUpOworICAgICAgICAgICAgYXNzZXJ0QW5kUmVzb2x2ZVJl
cXVlc3QocmVxdWVzdHNbMl0sICdHRVQnLCAnL2pzb24vYnVpbGRlcnMvc29tZSUyMHRlc3Rlci9w
ZW5kaW5nQnVpbGRzJywgW10pOworICAgICAgICAgICAgYXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3Qo
cmVxdWVzdHNbM10sICdHRVQnLCAnL2pzb24vYnVpbGRlcnMvc29tZSUyMGJ1aWxkZXIvcGVuZGlu
Z0J1aWxkcycsIFtdKTsKKyAgICAgICAgICAgIGFzc2VydEFuZFJlc29sdmVSZXF1ZXN0KHJlcXVl
c3RzWzRdLCAnR0VUJywgJy9qc29uL2J1aWxkZXJzL290aGVyJTIwYnVpbGRlci9wZW5kaW5nQnVp
bGRzJywgW10pOwogICAgICAgICAgICAgcmV0dXJuIE1vY2tSZW1vdGVBUEkud2FpdEZvclJlcXVl
c3QoKTsKICAgICAgICAgfSkudGhlbigoKSA9PiB7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwo
cmVxdWVzdHMubGVuZ3RoLCA2KTsKLSAgICAgICAgICAgIGFzc2VydEFuZFJlc29sdmVSZXF1ZXN0
KHJlcXVlc3RzWzNdLCAnR0VUJywgJy9qc29uL2J1aWxkZXJzL3NvbWUlMjB0ZXN0ZXIvYnVpbGRz
Lz9zZWxlY3Q9LTEmc2VsZWN0PS0yJywge30pOwotICAgICAgICAgICAgYXNzZXJ0QW5kUmVzb2x2
ZVJlcXVlc3QocmVxdWVzdHNbNF0sICdHRVQnLCAnL2pzb24vYnVpbGRlcnMvc29tZSUyMGJ1aWxk
ZXIvYnVpbGRzLz9zZWxlY3Q9LTEmc2VsZWN0PS0yJywge30pOwotICAgICAgICAgICAgYXNzZXJ0
QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNbNV0sICdHRVQnLCAnL2pzb24vYnVpbGRlcnMvb3Ro
ZXIlMjBidWlsZGVyL2J1aWxkcy8/c2VsZWN0PS0xJnNlbGVjdD0tMicsIHt9KTsKKyAgICAgICAg
ICAgIGFzc2VydC5lcXVhbChyZXF1ZXN0cy5sZW5ndGgsIDgpOworICAgICAgICAgICAgYXNzZXJ0
QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNbNV0sICdHRVQnLCAnL2pzb24vYnVpbGRlcnMvc29t
ZSUyMHRlc3Rlci9idWlsZHMvP3NlbGVjdD0tMSZzZWxlY3Q9LTInLCB7fSk7CisgICAgICAgICAg
ICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1s2XSwgJ0dFVCcsICcvanNvbi9idWls
ZGVycy9zb21lJTIwYnVpbGRlci9idWlsZHMvP3NlbGVjdD0tMSZzZWxlY3Q9LTInLCB7fSk7Cisg
ICAgICAgICAgICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1s3XSwgJ0dFVCcsICcv
anNvbi9idWlsZGVycy9vdGhlciUyMGJ1aWxkZXIvYnVpbGRzLz9zZWxlY3Q9LTEmc2VsZWN0PS0y
Jywge30pOwogICAgICAgICAgICAgcmV0dXJuIE1vY2tSZW1vdGVBUEkud2FpdEZvclJlcXVlc3Qo
KTsKICAgICAgICAgfSkudGhlbigoKSA9PiB7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVx
dWVzdHMubGVuZ3RoLCA3KTsKLSAgICAgICAgICAgIGFzc2VydEFuZFJlc29sdmVSZXF1ZXN0KHJl
cXVlc3RzWzZdLCAnUE9TVCcsICcvYnVpbGRlcnMvc29tZSUyMGJ1aWxkZXIvZm9yY2UnLCAnT0sn
KTsKLSAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwocmVxdWVzdHNbNl0uZGF0YSwgeyd3ayc6
ICcxOTE2MjInLCAnd2stcGF0Y2gnOiBSZW1vdGVBUEkudXJsKCcvYXBpL3VwbG9hZGVkLWZpbGUv
MS5kYXQnKSwKKyAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXF1ZXN0cy5sZW5ndGgsIDkpOwor
ICAgICAgICAgICAgYXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNbOF0sICdQT1NUJywg
Jy9idWlsZGVycy9zb21lJTIwYnVpbGRlci9mb3JjZScsICdPSycpOworICAgICAgICAgICAgYXNz
ZXJ0LmRlZXBFcXVhbChyZXF1ZXN0c1s4XS5kYXRhLCB7J3drJzogJzE5MTYyMicsICd3ay1wYXRj
aCc6IFJlbW90ZUFQSS51cmwoJy9hcGkvdXBsb2FkZWQtZmlsZS8xLmRhdCcpLAogICAgICAgICAg
ICAgICAgICdidWlsZC1yZXF1ZXN0LWlkJzogJzEnLCAnZm9yY2VzY2hlZHVsZXInOiAnZm9yY2Ut
YWItYnVpbGRzJywgJ2NoZWNrYm94JzogJ2J1aWxkLXdrJywgJ3BsYXRmb3JtLW5hbWUnOiAnc29t
ZSBwbGF0Zm9ybSd9KTsKICAgICAgICAgICAgIHJldHVybiBNb2NrUmVtb3RlQVBJLndhaXRGb3JS
ZXF1ZXN0KCk7CiAgICAgICAgIH0pLnRoZW4oKCkgPT4gewotICAgICAgICAgICAgYXNzZXJ0LmVx
dWFsKHJlcXVlc3RzLmxlbmd0aCwgMTApOwotICAgICAgICAgICAgYXNzZXJ0QW5kUmVzb2x2ZVJl
cXVlc3QocmVxdWVzdHNbN10sICdHRVQnLCAnL2pzb24vYnVpbGRlcnMvc29tZSUyMHRlc3Rlci9w
ZW5kaW5nQnVpbGRzJywgW10pOwotICAgICAgICAgICAgYXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3Qo
cmVxdWVzdHNbOF0sICdHRVQnLCAnL2pzb24vYnVpbGRlcnMvc29tZSUyMGJ1aWxkZXIvcGVuZGlu
Z0J1aWxkcycsCisgICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVxdWVzdHMubGVuZ3RoLCAxMik7
CisgICAgICAgICAgICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1s5XSwgJ0dFVCcs
ICcvanNvbi9idWlsZGVycy9zb21lJTIwdGVzdGVyL3BlbmRpbmdCdWlsZHMnLCBbXSk7CisgICAg
ICAgICAgICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1sxMF0sICdHRVQnLCAnL2pz
b24vYnVpbGRlcnMvc29tZSUyMGJ1aWxkZXIvcGVuZGluZ0J1aWxkcycsCiAgICAgICAgICAgICAg
ICAgW01vY2tEYXRhLnBlbmRpbmdCdWlsZCh7YnVpbGRlcjogJ3NvbWUgYnVpbGRlcicsIGJ1aWxk
UmVxdWVzdElkOiAxfSldKTsKLSAgICAgICAgICAgIGFzc2VydEFuZFJlc29sdmVSZXF1ZXN0KHJl
cXVlc3RzWzldLCAnR0VUJywgJy9qc29uL2J1aWxkZXJzL290aGVyJTIwYnVpbGRlci9wZW5kaW5n
QnVpbGRzJywgW10pOworICAgICAgICAgICAgYXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVz
dHNbMTFdLCAnR0VUJywgJy9qc29uL2J1aWxkZXJzL290aGVyJTIwYnVpbGRlci9wZW5kaW5nQnVp
bGRzJywgW10pOwogICAgICAgICAgICAgcmV0dXJuIE1vY2tSZW1vdGVBUEkud2FpdEZvclJlcXVl
c3QoKTsKICAgICAgICAgfSkudGhlbigoKSA9PiB7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwo
cmVxdWVzdHMubGVuZ3RoLCAxMyk7Ci0gICAgICAgICAgICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVz
dChyZXF1ZXN0c1sxMF0sICdHRVQnLCAnL2pzb24vYnVpbGRlcnMvc29tZSUyMHRlc3Rlci9idWls
ZHMvP3NlbGVjdD0tMSZzZWxlY3Q9LTInLCB7fSk7Ci0gICAgICAgICAgICBhc3NlcnRBbmRSZXNv
bHZlUmVxdWVzdChyZXF1ZXN0c1sxMV0sICdHRVQnLCAnL2pzb24vYnVpbGRlcnMvc29tZSUyMGJ1
aWxkZXIvYnVpbGRzLz9zZWxlY3Q9LTEmc2VsZWN0PS0yJywgeworICAgICAgICAgICAgYXNzZXJ0
LmVxdWFsKHJlcXVlc3RzLmxlbmd0aCwgMTUpOworICAgICAgICAgICAgYXNzZXJ0QW5kUmVzb2x2
ZVJlcXVlc3QocmVxdWVzdHNbMTJdLCAnR0VUJywgJy9qc29uL2J1aWxkZXJzL3NvbWUlMjB0ZXN0
ZXIvYnVpbGRzLz9zZWxlY3Q9LTEmc2VsZWN0PS0yJywge30pOworICAgICAgICAgICAgYXNzZXJ0
QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNbMTNdLCAnR0VUJywgJy9qc29uL2J1aWxkZXJzL3Nv
bWUlMjBidWlsZGVyL2J1aWxkcy8/c2VsZWN0PS0xJnNlbGVjdD0tMicsIHsKICAgICAgICAgICAg
ICAgICBbLTFdOiBNb2NrRGF0YS5ydW5uaW5nQnVpbGQoe2J1aWxkZXI6ICdzb21lIGJ1aWxkZXIn
LCBidWlsZFJlcXVlc3RJZDogMX0pCiAgICAgICAgICAgICB9KTsKLSAgICAgICAgICAgIGFzc2Vy
dEFuZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3RzWzEyXSwgJ0dFVCcsICcvanNvbi9idWlsZGVycy9v
dGhlciUyMGJ1aWxkZXIvYnVpbGRzLz9zZWxlY3Q9LTEmc2VsZWN0PS0yJywge30pOworICAgICAg
ICAgICAgYXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNbMTRdLCAnR0VUJywgJy9qc29u
L2J1aWxkZXJzL290aGVyJTIwYnVpbGRlci9idWlsZHMvP3NlbGVjdD0tMSZzZWxlY3Q9LTInLCB7
fSk7CiAgICAgICAgICAgICByZXR1cm4gc3luY1Byb21pc2U7CiAgICAgICAgIH0pLnRoZW4oKCkg
PT4gewogICAgICAgICAgICAgcmV0dXJuIFRlc3RHcm91cC5mZXRjaEZvclRhc2sodGFza0lkLCB0
cnVlKTsKQEAgLTczNyw0MCArNzQ1LDQxIEBAIGRlc2NyaWJlKCdzeW5jLWJ1aWxkYm90JywgZnVu
Y3Rpb24gKCkgewogCiAgICAgICAgICAgICBNb2NrUmVtb3RlQVBJLnJlc2V0KCk7CiAgICAgICAg
ICAgICBzeW5jUHJvbWlzZSA9IHRyaWdnZXJhYmxlLmluaXRTeW5jZXJzKCkudGhlbigoKSA9PiB0
cmlnZ2VyYWJsZS5zeW5jT25jZSgpKTsKKyAgICAgICAgICAgIGFzc2VydEFuZFJlc29sdmVSZXF1
ZXN0KHJlcXVlc3RzWzBdLCAnR0VUJywgTW9ja0RhdGEuYnVpbGRib3RCdWlsZGVyc1VSTCgpLCBN
b2NrRGF0YS5tb2NrQnVpbGRib3RCdWlsZGVycygpKTsKICAgICAgICAgICAgIHJldHVybiBNb2Nr
UmVtb3RlQVBJLndhaXRGb3JSZXF1ZXN0KCk7CiAgICAgICAgIH0pLnRoZW4oKCkgPT4gewotICAg
ICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlcXVlc3RzLmxlbmd0aCwgMyk7Ci0gICAgICAgICAgICBh
c3NlcnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1swXSwgJ0dFVCcsICcvanNvbi9idWlsZGVy
cy9zb21lJTIwdGVzdGVyL3BlbmRpbmdCdWlsZHMnLCBbXSk7Ci0gICAgICAgICAgICBhc3NlcnRB
bmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1sxXSwgJ0dFVCcsICcvanNvbi9idWlsZGVycy9zb21l
JTIwYnVpbGRlci9wZW5kaW5nQnVpbGRzJywgW10pOwotICAgICAgICAgICAgYXNzZXJ0QW5kUmVz
b2x2ZVJlcXVlc3QocmVxdWVzdHNbMl0sICdHRVQnLCAnL2pzb24vYnVpbGRlcnMvb3RoZXIlMjBi
dWlsZGVyL3BlbmRpbmdCdWlsZHMnLCBbXSk7CisgICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVx
dWVzdHMubGVuZ3RoLCA0KTsKKyAgICAgICAgICAgIGFzc2VydEFuZFJlc29sdmVSZXF1ZXN0KHJl
cXVlc3RzWzFdLCAnR0VUJywgJy9qc29uL2J1aWxkZXJzL3NvbWUlMjB0ZXN0ZXIvcGVuZGluZ0J1
aWxkcycsIFtdKTsKKyAgICAgICAgICAgIGFzc2VydEFuZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3Rz
WzJdLCAnR0VUJywgJy9qc29uL2J1aWxkZXJzL3NvbWUlMjBidWlsZGVyL3BlbmRpbmdCdWlsZHMn
LCBbXSk7CisgICAgICAgICAgICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1szXSwg
J0dFVCcsICcvanNvbi9idWlsZGVycy9vdGhlciUyMGJ1aWxkZXIvcGVuZGluZ0J1aWxkcycsIFtd
KTsKICAgICAgICAgICAgIHJldHVybiBNb2NrUmVtb3RlQVBJLndhaXRGb3JSZXF1ZXN0KCk7CiAg
ICAgICAgIH0pLnRoZW4oKCkgPT4gewotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlcXVlc3Rz
Lmxlbmd0aCwgNik7Ci0gICAgICAgICAgICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0
c1szXSwgJ0dFVCcsICcvanNvbi9idWlsZGVycy9zb21lJTIwdGVzdGVyL2J1aWxkcy8/c2VsZWN0
PS0xJnNlbGVjdD0tMicsIHt9KTsKLSAgICAgICAgICAgIGFzc2VydEFuZFJlc29sdmVSZXF1ZXN0
KHJlcXVlc3RzWzRdLCAnR0VUJywgJy9qc29uL2J1aWxkZXJzL3NvbWUlMjBidWlsZGVyL2J1aWxk
cy8/c2VsZWN0PS0xJnNlbGVjdD0tMicsIHsKKyAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXF1
ZXN0cy5sZW5ndGgsIDcpOworICAgICAgICAgICAgYXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVx
dWVzdHNbNF0sICdHRVQnLCAnL2pzb24vYnVpbGRlcnMvc29tZSUyMHRlc3Rlci9idWlsZHMvP3Nl
bGVjdD0tMSZzZWxlY3Q9LTInLCB7fSk7CisgICAgICAgICAgICBhc3NlcnRBbmRSZXNvbHZlUmVx
dWVzdChyZXF1ZXN0c1s1XSwgJ0dFVCcsICcvanNvbi9idWlsZGVycy9zb21lJTIwYnVpbGRlci9i
dWlsZHMvP3NlbGVjdD0tMSZzZWxlY3Q9LTInLCB7CiAgICAgICAgICAgICAgICAgWy0xXTogTW9j
a0RhdGEuZmluaXNoZWRCdWlsZCh7YnVpbGRlcjogJ3NvbWUgYnVpbGRlcicsIGJ1aWxkUmVxdWVz
dElkOiAxfSkKICAgICAgICAgICAgIH0pOwotICAgICAgICAgICAgYXNzZXJ0QW5kUmVzb2x2ZVJl
cXVlc3QocmVxdWVzdHNbNV0sICdHRVQnLCAnL2pzb24vYnVpbGRlcnMvb3RoZXIlMjBidWlsZGVy
L2J1aWxkcy8/c2VsZWN0PS0xJnNlbGVjdD0tMicsIHt9KTsKKyAgICAgICAgICAgIGFzc2VydEFu
ZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3RzWzZdLCAnR0VUJywgJy9qc29uL2J1aWxkZXJzL290aGVy
JTIwYnVpbGRlci9idWlsZHMvP3NlbGVjdD0tMSZzZWxlY3Q9LTInLCB7fSk7CiAgICAgICAgICAg
ICByZXR1cm4gTW9ja1JlbW90ZUFQSS53YWl0Rm9yUmVxdWVzdCgpOwogICAgICAgICB9KS50aGVu
KCgpID0+IHsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXF1ZXN0cy5sZW5ndGgsIDcpOwot
ICAgICAgICAgICAgYXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNbNl0sICdQT1NUJywg
Jy9idWlsZGVycy9zb21lJTIwYnVpbGRlci9mb3JjZScsICdPSycpOwotICAgICAgICAgICAgYXNz
ZXJ0LmRlZXBFcXVhbChyZXF1ZXN0c1s2XS5kYXRhLCB7J3drJzogJzE5MTYyMicsICdidWlsZC1y
ZXF1ZXN0LWlkJzogJzInLCAnZm9yY2VzY2hlZHVsZXInOiAnZm9yY2UtYWItYnVpbGRzJywgJ2No
ZWNrYm94JzogJ2J1aWxkLXdrJywgJ3BsYXRmb3JtLW5hbWUnOiAnc29tZSBwbGF0Zm9ybSd9KTsK
KyAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXF1ZXN0cy5sZW5ndGgsIDgpOworICAgICAgICAg
ICAgYXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNbN10sICdQT1NUJywgJy9idWlsZGVy
cy9zb21lJTIwYnVpbGRlci9mb3JjZScsICdPSycpOworICAgICAgICAgICAgYXNzZXJ0LmRlZXBF
cXVhbChyZXF1ZXN0c1s3XS5kYXRhLCB7J3drJzogJzE5MTYyMicsICdidWlsZC1yZXF1ZXN0LWlk
JzogJzInLCAnZm9yY2VzY2hlZHVsZXInOiAnZm9yY2UtYWItYnVpbGRzJywgJ2NoZWNrYm94Jzog
J2J1aWxkLXdrJywgJ3BsYXRmb3JtLW5hbWUnOiAnc29tZSBwbGF0Zm9ybSd9KTsKICAgICAgICAg
ICAgIHJldHVybiBNb2NrUmVtb3RlQVBJLndhaXRGb3JSZXF1ZXN0KCk7CiAgICAgICAgIH0pLnRo
ZW4oKCkgPT4gewotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlcXVlc3RzLmxlbmd0aCwgMTAp
OwotICAgICAgICAgICAgYXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNbN10sICdHRVQn
LCAnL2pzb24vYnVpbGRlcnMvc29tZSUyMHRlc3Rlci9wZW5kaW5nQnVpbGRzJywgW10pOwotICAg
ICAgICAgICAgYXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNbOF0sICdHRVQnLCAnL2pz
b24vYnVpbGRlcnMvc29tZSUyMGJ1aWxkZXIvcGVuZGluZ0J1aWxkcycsIFtdKTsKLSAgICAgICAg
ICAgIGFzc2VydEFuZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3RzWzldLCAnR0VUJywgJy9qc29uL2J1
aWxkZXJzL290aGVyJTIwYnVpbGRlci9wZW5kaW5nQnVpbGRzJywgW10pOworICAgICAgICAgICAg
YXNzZXJ0LmVxdWFsKHJlcXVlc3RzLmxlbmd0aCwgMTEpOworICAgICAgICAgICAgYXNzZXJ0QW5k
UmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNbOF0sICdHRVQnLCAnL2pzb24vYnVpbGRlcnMvc29tZSUy
MHRlc3Rlci9wZW5kaW5nQnVpbGRzJywgW10pOworICAgICAgICAgICAgYXNzZXJ0QW5kUmVzb2x2
ZVJlcXVlc3QocmVxdWVzdHNbOV0sICdHRVQnLCAnL2pzb24vYnVpbGRlcnMvc29tZSUyMGJ1aWxk
ZXIvcGVuZGluZ0J1aWxkcycsIFtdKTsKKyAgICAgICAgICAgIGFzc2VydEFuZFJlc29sdmVSZXF1
ZXN0KHJlcXVlc3RzWzEwXSwgJ0dFVCcsICcvanNvbi9idWlsZGVycy9vdGhlciUyMGJ1aWxkZXIv
cGVuZGluZ0J1aWxkcycsIFtdKTsKICAgICAgICAgICAgIHJldHVybiBNb2NrUmVtb3RlQVBJLndh
aXRGb3JSZXF1ZXN0KCk7CiAgICAgICAgIH0pLnRoZW4oKCkgPT4gewotICAgICAgICAgICAgYXNz
ZXJ0LmVxdWFsKHJlcXVlc3RzLmxlbmd0aCwgMTMpOwotICAgICAgICAgICAgYXNzZXJ0QW5kUmVz
b2x2ZVJlcXVlc3QocmVxdWVzdHNbMTBdLCAnR0VUJywgJy9qc29uL2J1aWxkZXJzL3NvbWUlMjB0
ZXN0ZXIvYnVpbGRzLz9zZWxlY3Q9LTEmc2VsZWN0PS0yJywge30pOwotICAgICAgICAgICAgYXNz
ZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNbMTFdLCAnR0VUJywgJy9qc29uL2J1aWxkZXJz
L3NvbWUlMjBidWlsZGVyL2J1aWxkcy8/c2VsZWN0PS0xJnNlbGVjdD0tMicsIHsKKyAgICAgICAg
ICAgIGFzc2VydC5lcXVhbChyZXF1ZXN0cy5sZW5ndGgsIDE0KTsKKyAgICAgICAgICAgIGFzc2Vy
dEFuZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3RzWzExXSwgJ0dFVCcsICcvanNvbi9idWlsZGVycy9z
b21lJTIwdGVzdGVyL2J1aWxkcy8/c2VsZWN0PS0xJnNlbGVjdD0tMicsIHt9KTsKKyAgICAgICAg
ICAgIGFzc2VydEFuZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3RzWzEyXSwgJ0dFVCcsICcvanNvbi9i
dWlsZGVycy9zb21lJTIwYnVpbGRlci9idWlsZHMvP3NlbGVjdD0tMSZzZWxlY3Q9LTInLCB7CiAg
ICAgICAgICAgICAgICAgWy0xXTogTW9ja0RhdGEucnVubmluZ0J1aWxkKHtidWlsZGVyOiAnc29t
ZSBidWlsZGVyJywgYnVpbGRSZXF1ZXN0SWQ6IDJ9KSwKICAgICAgICAgICAgICAgICBbLTJdOiBN
b2NrRGF0YS5maW5pc2hlZEJ1aWxkKHtidWlsZGVyOiAnc29tZSBidWlsZGVyJywgYnVpbGRSZXF1
ZXN0SWQ6IDF9KSwKICAgICAgICAgICAgIH0pOwotICAgICAgICAgICAgYXNzZXJ0QW5kUmVzb2x2
ZVJlcXVlc3QocmVxdWVzdHNbMTJdLCAnR0VUJywgJy9qc29uL2J1aWxkZXJzL290aGVyJTIwYnVp
bGRlci9idWlsZHMvP3NlbGVjdD0tMSZzZWxlY3Q9LTInLCB7fSk7CisgICAgICAgICAgICBhc3Nl
cnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1sxM10sICdHRVQnLCAnL2pzb24vYnVpbGRlcnMv
b3RoZXIlMjBidWlsZGVyL2J1aWxkcy8/c2VsZWN0PS0xJnNlbGVjdD0tMicsIHt9KTsKICAgICAg
ICAgICAgIHJldHVybiBzeW5jUHJvbWlzZTsKICAgICAgICAgfSkudGhlbigoKSA9PiB7CiAgICAg
ICAgICAgICByZXR1cm4gVGVzdEdyb3VwLmZldGNoRm9yVGFzayh0YXNrSWQsIHRydWUpOwpAQCAt
OTExLDQ0ICs5MjAsNDUgQEAgZGVzY3JpYmUoJ3N5bmMtYnVpbGRib3QnLCBmdW5jdGlvbiAoKSB7
CiAgICAgICAgICAgICBhc3NlcnQuZXF1YWwob3RoZXJSb290cy5sZW5ndGgsIDEpOwogICAgICAg
ICAgICAgYXNzZXJ0LmRlZXBFcXVhbChvdGhlclJvb3RzWzBdLmZpbGVuYW1lKCksICdyb290NDYu
ZGF0Jyk7CiAgICAgICAgICAgICBzeW5jUHJvbWlzZSA9IHRyaWdnZXJhYmxlLmluaXRTeW5jZXJz
KCkudGhlbigoKSA9PiB0cmlnZ2VyYWJsZS5zeW5jT25jZSgpKTsKKyAgICAgICAgICAgIGFzc2Vy
dEFuZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3RzWzFdLCAnR0VUJywgTW9ja0RhdGEuYnVpbGRib3RC
dWlsZGVyc1VSTCgpLCBNb2NrRGF0YS5tb2NrQnVpbGRib3RCdWlsZGVycygpKTsKICAgICAgICAg
ICAgIHJldHVybiBNb2NrUmVtb3RlQVBJLndhaXRGb3JSZXF1ZXN0KCk7CiAgICAgICAgIH0pLnRo
ZW4oKCkgPT4gewotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlcXVlc3RzLmxlbmd0aCwgMyk7
Ci0gICAgICAgICAgICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1swXSwgJ0dFVCcs
ICcvanNvbi9idWlsZGVycy9zb21lJTIwdGVzdGVyL3BlbmRpbmdCdWlsZHMnLCBbXSk7Ci0gICAg
ICAgICAgICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1sxXSwgJ0dFVCcsICcvanNv
bi9idWlsZGVycy9zb21lJTIwYnVpbGRlci9wZW5kaW5nQnVpbGRzJywgW10pOwotICAgICAgICAg
ICAgYXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNbMl0sICdHRVQnLCAnL2pzb24vYnVp
bGRlcnMvb3RoZXIlMjBidWlsZGVyL3BlbmRpbmdCdWlsZHMnLCBbXSk7CisgICAgICAgICAgICBh
c3NlcnQuZXF1YWwocmVxdWVzdHMubGVuZ3RoLCA1KTsKKyAgICAgICAgICAgIGFzc2VydEFuZFJl
c29sdmVSZXF1ZXN0KHJlcXVlc3RzWzJdLCAnR0VUJywgJy9qc29uL2J1aWxkZXJzL3NvbWUlMjB0
ZXN0ZXIvcGVuZGluZ0J1aWxkcycsIFtdKTsKKyAgICAgICAgICAgIGFzc2VydEFuZFJlc29sdmVS
ZXF1ZXN0KHJlcXVlc3RzWzNdLCAnR0VUJywgJy9qc29uL2J1aWxkZXJzL3NvbWUlMjBidWlsZGVy
L3BlbmRpbmdCdWlsZHMnLCBbXSk7CisgICAgICAgICAgICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVz
dChyZXF1ZXN0c1s0XSwgJ0dFVCcsICcvanNvbi9idWlsZGVycy9vdGhlciUyMGJ1aWxkZXIvcGVu
ZGluZ0J1aWxkcycsIFtdKTsKICAgICAgICAgICAgIHJldHVybiBNb2NrUmVtb3RlQVBJLndhaXRG
b3JSZXF1ZXN0KCk7CiAgICAgICAgIH0pLnRoZW4oKCkgPT4gewotICAgICAgICAgICAgYXNzZXJ0
LmVxdWFsKHJlcXVlc3RzLmxlbmd0aCwgNik7Ci0gICAgICAgICAgICBhc3NlcnRBbmRSZXNvbHZl
UmVxdWVzdChyZXF1ZXN0c1szXSwgJ0dFVCcsICcvanNvbi9idWlsZGVycy9zb21lJTIwdGVzdGVy
L2J1aWxkcy8/c2VsZWN0PS0xJnNlbGVjdD0tMicsIHt9KTsKLSAgICAgICAgICAgIGFzc2VydEFu
ZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3RzWzRdLCAnR0VUJywgJy9qc29uL2J1aWxkZXJzL3NvbWUl
MjBidWlsZGVyL2J1aWxkcy8/c2VsZWN0PS0xJnNlbGVjdD0tMicsIHsKKyAgICAgICAgICAgIGFz
c2VydC5lcXVhbChyZXF1ZXN0cy5sZW5ndGgsIDgpOworICAgICAgICAgICAgYXNzZXJ0QW5kUmVz
b2x2ZVJlcXVlc3QocmVxdWVzdHNbNV0sICdHRVQnLCAnL2pzb24vYnVpbGRlcnMvc29tZSUyMHRl
c3Rlci9idWlsZHMvP3NlbGVjdD0tMSZzZWxlY3Q9LTInLCB7fSk7CisgICAgICAgICAgICBhc3Nl
cnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1s2XSwgJ0dFVCcsICcvanNvbi9idWlsZGVycy9z
b21lJTIwYnVpbGRlci9idWlsZHMvP3NlbGVjdD0tMSZzZWxlY3Q9LTInLCB7CiAgICAgICAgICAg
ICAgICAgWy0xXTogTW9ja0RhdGEuZmluaXNoZWRCdWlsZCh7YnVpbGRlcjogJ3NvbWUgYnVpbGRl
cicsIGJ1aWxkUmVxdWVzdElkOiAxfSksCiAgICAgICAgICAgICAgICAgWy0yXTogTW9ja0RhdGEu
ZmluaXNoZWRCdWlsZCh7YnVpbGRlcjogJ3NvbWUgYnVpbGRlcicsIGJ1aWxkUmVxdWVzdElkOiAy
fSksCiAgICAgICAgICAgICB9KTsKLSAgICAgICAgICAgIGFzc2VydEFuZFJlc29sdmVSZXF1ZXN0
KHJlcXVlc3RzWzVdLCAnR0VUJywgJy9qc29uL2J1aWxkZXJzL290aGVyJTIwYnVpbGRlci9idWls
ZHMvP3NlbGVjdD0tMSZzZWxlY3Q9LTInLCB7fSk7CisgICAgICAgICAgICBhc3NlcnRBbmRSZXNv
bHZlUmVxdWVzdChyZXF1ZXN0c1s3XSwgJ0dFVCcsICcvanNvbi9idWlsZGVycy9vdGhlciUyMGJ1
aWxkZXIvYnVpbGRzLz9zZWxlY3Q9LTEmc2VsZWN0PS0yJywge30pOwogICAgICAgICAgICAgcmV0
dXJuIE1vY2tSZW1vdGVBUEkud2FpdEZvclJlcXVlc3QoKTsKICAgICAgICAgfSkudGhlbigoKSA9
PiB7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVxdWVzdHMubGVuZ3RoLCA3KTsKLSAgICAg
ICAgICAgIGFzc2VydEFuZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3RzWzZdLCAnUE9TVCcsICcvYnVp
bGRlcnMvc29tZSUyMHRlc3Rlci9mb3JjZScsICdPSycpOwotICAgICAgICAgICAgYXNzZXJ0LmRl
ZXBFcXVhbChyZXF1ZXN0c1s2XS5kYXRhLCB7J3Rlc3QnOiAnc29tZS10ZXN0JywgJ3drJzogJzE5
MTYyMicsICdidWlsZC1yZXF1ZXN0LWlkJzogJzMnLCAnZm9yY2VzY2hlZHVsZXInOiAnZm9yY2Ut
YWItdGVzdHMnLAorICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlcXVlc3RzLmxlbmd0aCwgOSk7
CisgICAgICAgICAgICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1s4XSwgJ1BPU1Qn
LCAnL2J1aWxkZXJzL3NvbWUlMjB0ZXN0ZXIvZm9yY2UnLCAnT0snKTsKKyAgICAgICAgICAgIGFz
c2VydC5kZWVwRXF1YWwocmVxdWVzdHNbOF0uZGF0YSwgeyd0ZXN0JzogJ3NvbWUtdGVzdCcsICd3
ayc6ICcxOTE2MjInLCAnYnVpbGQtcmVxdWVzdC1pZCc6ICczJywgJ2ZvcmNlc2NoZWR1bGVyJzog
J2ZvcmNlLWFiLXRlc3RzJywKICAgICAgICAgICAgICAgICAncm9vdHMnOiBKU09OLnN0cmluZ2lm
eShbe3VybDogZmlyc3RSb290LnVybCgpfV0pfSk7CiAgICAgICAgICAgICByZXR1cm4gTW9ja1Jl
bW90ZUFQSS53YWl0Rm9yUmVxdWVzdCgpOwogICAgICAgICB9KS50aGVuKCgpID0+IHsKLSAgICAg
ICAgICAgIGFzc2VydC5lcXVhbChyZXF1ZXN0cy5sZW5ndGgsIDEwKTsKLSAgICAgICAgICAgIGFz
c2VydEFuZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3RzWzddLCAnR0VUJywgJy9qc29uL2J1aWxkZXJz
L3NvbWUlMjB0ZXN0ZXIvcGVuZGluZ0J1aWxkcycsIFsKKyAgICAgICAgICAgIGFzc2VydC5lcXVh
bChyZXF1ZXN0cy5sZW5ndGgsIDEyKTsKKyAgICAgICAgICAgIGFzc2VydEFuZFJlc29sdmVSZXF1
ZXN0KHJlcXVlc3RzWzldLCAnR0VUJywgJy9qc29uL2J1aWxkZXJzL3NvbWUlMjB0ZXN0ZXIvcGVu
ZGluZ0J1aWxkcycsIFsKICAgICAgICAgICAgICAgICBNb2NrRGF0YS5wZW5kaW5nQnVpbGQoe2J1
aWxkZXI6ICdzb21lIHRlc3RlcicsIGJ1aWxkUmVxdWVzdElkOiAzfSksCiAgICAgICAgICAgICBd
KTsKLSAgICAgICAgICAgIGFzc2VydEFuZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3RzWzhdLCAnR0VU
JywgJy9qc29uL2J1aWxkZXJzL3NvbWUlMjBidWlsZGVyL3BlbmRpbmdCdWlsZHMnLCBbXSk7Ci0g
ICAgICAgICAgICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1s5XSwgJ0dFVCcsICcv
anNvbi9idWlsZGVycy9vdGhlciUyMGJ1aWxkZXIvcGVuZGluZ0J1aWxkcycsIFtdKTsKKyAgICAg
ICAgICAgIGFzc2VydEFuZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3RzWzEwXSwgJ0dFVCcsICcvanNv
bi9idWlsZGVycy9zb21lJTIwYnVpbGRlci9wZW5kaW5nQnVpbGRzJywgW10pOworICAgICAgICAg
ICAgYXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNbMTFdLCAnR0VUJywgJy9qc29uL2J1
aWxkZXJzL290aGVyJTIwYnVpbGRlci9wZW5kaW5nQnVpbGRzJywgW10pOwogICAgICAgICAgICAg
cmV0dXJuIE1vY2tSZW1vdGVBUEkud2FpdEZvclJlcXVlc3QoKTsKICAgICAgICAgfSkudGhlbigo
KSA9PiB7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVxdWVzdHMubGVuZ3RoLCAxMyk7Ci0g
ICAgICAgICAgICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1sxMF0sICdHRVQnLCAn
L2pzb24vYnVpbGRlcnMvc29tZSUyMHRlc3Rlci9idWlsZHMvP3NlbGVjdD0tMSZzZWxlY3Q9LTIn
LCB7fSk7Ci0gICAgICAgICAgICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1sxMV0s
ICdHRVQnLCAnL2pzb24vYnVpbGRlcnMvc29tZSUyMGJ1aWxkZXIvYnVpbGRzLz9zZWxlY3Q9LTEm
c2VsZWN0PS0yJywgeworICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlcXVlc3RzLmxlbmd0aCwg
MTUpOworICAgICAgICAgICAgYXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNbMTJdLCAn
R0VUJywgJy9qc29uL2J1aWxkZXJzL3NvbWUlMjB0ZXN0ZXIvYnVpbGRzLz9zZWxlY3Q9LTEmc2Vs
ZWN0PS0yJywge30pOworICAgICAgICAgICAgYXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVz
dHNbMTNdLCAnR0VUJywgJy9qc29uL2J1aWxkZXJzL3NvbWUlMjBidWlsZGVyL2J1aWxkcy8/c2Vs
ZWN0PS0xJnNlbGVjdD0tMicsIHsKICAgICAgICAgICAgICAgICBbLTFdOiBNb2NrRGF0YS5maW5p
c2hlZEJ1aWxkKHtidWlsZGVyOiAnc29tZSBidWlsZGVyJywgYnVpbGRSZXF1ZXN0SWQ6IDF9KSwK
ICAgICAgICAgICAgICAgICBbLTJdOiBNb2NrRGF0YS5maW5pc2hlZEJ1aWxkKHtidWlsZGVyOiAn
c29tZSBidWlsZGVyJywgYnVpbGRSZXF1ZXN0SWQ6IDJ9KSwKICAgICAgICAgICAgIH0pOwotICAg
ICAgICAgICAgYXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNbMTJdLCAnR0VUJywgJy9q
c29uL2J1aWxkZXJzL290aGVyJTIwYnVpbGRlci9idWlsZHMvP3NlbGVjdD0tMSZzZWxlY3Q9LTIn
LCB7fSk7CisgICAgICAgICAgICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1sxNF0s
ICdHRVQnLCAnL2pzb24vYnVpbGRlcnMvb3RoZXIlMjBidWlsZGVyL2J1aWxkcy8/c2VsZWN0PS0x
JnNlbGVjdD0tMicsIHt9KTsKICAgICAgICAgICAgIHJldHVybiBzeW5jUHJvbWlzZTsKICAgICAg
ICAgfSk7CiAgICAgfSk7CkBAIC05ODIsMzYgKzk5MiwzNyBAQCBkZXNjcmliZSgnc3luYy1idWls
ZGJvdCcsIGZ1bmN0aW9uICgpIHsKICAgICAgICAgICAgIGFzc2VydC5lcXVhbChvdGhlckJ1aWxk
UmVxdWVzdC5idWlsZElkKCksIG51bGwpOwogCiAgICAgICAgICAgICBzeW5jUHJvbWlzZSA9IHRy
aWdnZXJhYmxlLmluaXRTeW5jZXJzKCkudGhlbigoKSA9PiB0cmlnZ2VyYWJsZS5zeW5jT25jZSgp
KTsKKyAgICAgICAgICAgIGFzc2VydEFuZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3RzWzFdLCAnR0VU
JywgTW9ja0RhdGEuYnVpbGRib3RCdWlsZGVyc1VSTCgpLCBNb2NrRGF0YS5tb2NrQnVpbGRib3RC
dWlsZGVycygpKTsKICAgICAgICAgICAgIHJldHVybiBQcm9taXNlLmFsbChbTW9ja1JlbW90ZUFQ
SS53YWl0Rm9yUmVxdWVzdCgpLCB1cGxvYWRSb290KDEsIDEyMyldKTsKICAgICAgICAgfSkudGhl
bigoKSA9PiB7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVxdWVzdHMubGVuZ3RoLCAzKTsK
LSAgICAgICAgICAgIGFzc2VydEFuZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3RzWzBdLCAnR0VUJywg
Jy9qc29uL2J1aWxkZXJzL3NvbWUlMjB0ZXN0ZXIvcGVuZGluZ0J1aWxkcycsIFtdKTsKLSAgICAg
ICAgICAgIGFzc2VydEFuZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3RzWzFdLCAnR0VUJywgJy9qc29u
L2J1aWxkZXJzL3NvbWUlMjBidWlsZGVyL3BlbmRpbmdCdWlsZHMnLCBbXSk7Ci0gICAgICAgICAg
ICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1syXSwgJ0dFVCcsICcvanNvbi9idWls
ZGVycy9vdGhlciUyMGJ1aWxkZXIvcGVuZGluZ0J1aWxkcycsIFtdKTsKKyAgICAgICAgICAgIGFz
c2VydC5lcXVhbChyZXF1ZXN0cy5sZW5ndGgsIDUpOworICAgICAgICAgICAgYXNzZXJ0QW5kUmVz
b2x2ZVJlcXVlc3QocmVxdWVzdHNbMl0sICdHRVQnLCAnL2pzb24vYnVpbGRlcnMvc29tZSUyMHRl
c3Rlci9wZW5kaW5nQnVpbGRzJywgW10pOworICAgICAgICAgICAgYXNzZXJ0QW5kUmVzb2x2ZVJl
cXVlc3QocmVxdWVzdHNbM10sICdHRVQnLCAnL2pzb24vYnVpbGRlcnMvc29tZSUyMGJ1aWxkZXIv
cGVuZGluZ0J1aWxkcycsIFtdKTsKKyAgICAgICAgICAgIGFzc2VydEFuZFJlc29sdmVSZXF1ZXN0
KHJlcXVlc3RzWzRdLCAnR0VUJywgJy9qc29uL2J1aWxkZXJzL290aGVyJTIwYnVpbGRlci9wZW5k
aW5nQnVpbGRzJywgW10pOwogICAgICAgICAgICAgcmV0dXJuIE1vY2tSZW1vdGVBUEkud2FpdEZv
clJlcXVlc3QoKTsKICAgICAgICAgfSkudGhlbigoKSA9PiB7Ci0gICAgICAgICAgICBhc3NlcnQu
ZXF1YWwocmVxdWVzdHMubGVuZ3RoLCA2KTsKLSAgICAgICAgICAgIGFzc2VydEFuZFJlc29sdmVS
ZXF1ZXN0KHJlcXVlc3RzWzNdLCAnR0VUJywgJy9qc29uL2J1aWxkZXJzL3NvbWUlMjB0ZXN0ZXIv
YnVpbGRzLz9zZWxlY3Q9LTEmc2VsZWN0PS0yJywge30pOwotICAgICAgICAgICAgYXNzZXJ0QW5k
UmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNbNF0sICdHRVQnLCAnL2pzb24vYnVpbGRlcnMvc29tZSUy
MGJ1aWxkZXIvYnVpbGRzLz9zZWxlY3Q9LTEmc2VsZWN0PS0yJywgeworICAgICAgICAgICAgYXNz
ZXJ0LmVxdWFsKHJlcXVlc3RzLmxlbmd0aCwgOCk7CisgICAgICAgICAgICBhc3NlcnRBbmRSZXNv
bHZlUmVxdWVzdChyZXF1ZXN0c1s1XSwgJ0dFVCcsICcvanNvbi9idWlsZGVycy9zb21lJTIwdGVz
dGVyL2J1aWxkcy8/c2VsZWN0PS0xJnNlbGVjdD0tMicsIHt9KTsKKyAgICAgICAgICAgIGFzc2Vy
dEFuZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3RzWzZdLCAnR0VUJywgJy9qc29uL2J1aWxkZXJzL3Nv
bWUlMjBidWlsZGVyL2J1aWxkcy8/c2VsZWN0PS0xJnNlbGVjdD0tMicsIHsKICAgICAgICAgICAg
ICAgICBbLTFdOiBNb2NrRGF0YS5ydW5uaW5nQnVpbGQoe2J1aWxkZXI6ICdzb21lIGJ1aWxkZXIn
LCBidWlsZFJlcXVlc3RJZDogMn0pLAogICAgICAgICAgICAgICAgIFstMl06IE1vY2tEYXRhLmZp
bmlzaGVkQnVpbGQoe2J1aWxkZXI6ICdzb21lIGJ1aWxkZXInLCBidWlsZFJlcXVlc3RJZDogMX0p
LAogICAgICAgICAgICAgfSk7Ci0gICAgICAgICAgICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVzdChy
ZXF1ZXN0c1s1XSwgJ0dFVCcsICcvanNvbi9idWlsZGVycy9vdGhlciUyMGJ1aWxkZXIvYnVpbGRz
Lz9zZWxlY3Q9LTEmc2VsZWN0PS0yJywge30pOworICAgICAgICAgICAgYXNzZXJ0QW5kUmVzb2x2
ZVJlcXVlc3QocmVxdWVzdHNbN10sICdHRVQnLCAnL2pzb24vYnVpbGRlcnMvb3RoZXIlMjBidWls
ZGVyL2J1aWxkcy8/c2VsZWN0PS0xJnNlbGVjdD0tMicsIHt9KTsKICAgICAgICAgICAgIHJldHVy
biBNb2NrUmVtb3RlQVBJLndhaXRGb3JSZXF1ZXN0KCk7CiAgICAgICAgIH0pLnRoZW4oKCkgPT4g
ewotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlcXVlc3RzLmxlbmd0aCwgOSk7Ci0gICAgICAg
ICAgICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1s2XSwgJ0dFVCcsICcvanNvbi9i
dWlsZGVycy9zb21lJTIwdGVzdGVyL3BlbmRpbmdCdWlsZHMnLCBbXSk7Ci0gICAgICAgICAgICBh
c3NlcnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1s3XSwgJ0dFVCcsICcvanNvbi9idWlsZGVy
cy9zb21lJTIwYnVpbGRlci9wZW5kaW5nQnVpbGRzJywgW10pOwotICAgICAgICAgICAgYXNzZXJ0
QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNbOF0sICdHRVQnLCAnL2pzb24vYnVpbGRlcnMvb3Ro
ZXIlMjBidWlsZGVyL3BlbmRpbmdCdWlsZHMnLCBbXSk7CisgICAgICAgICAgICBhc3NlcnQuZXF1
YWwocmVxdWVzdHMubGVuZ3RoLCAxMSk7CisgICAgICAgICAgICBhc3NlcnRBbmRSZXNvbHZlUmVx
dWVzdChyZXF1ZXN0c1s4XSwgJ0dFVCcsICcvanNvbi9idWlsZGVycy9zb21lJTIwdGVzdGVyL3Bl
bmRpbmdCdWlsZHMnLCBbXSk7CisgICAgICAgICAgICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVzdChy
ZXF1ZXN0c1s5XSwgJ0dFVCcsICcvanNvbi9idWlsZGVycy9zb21lJTIwYnVpbGRlci9wZW5kaW5n
QnVpbGRzJywgW10pOworICAgICAgICAgICAgYXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVz
dHNbMTBdLCAnR0VUJywgJy9qc29uL2J1aWxkZXJzL290aGVyJTIwYnVpbGRlci9wZW5kaW5nQnVp
bGRzJywgW10pOwogICAgICAgICAgICAgcmV0dXJuIE1vY2tSZW1vdGVBUEkud2FpdEZvclJlcXVl
c3QoKTsKICAgICAgICAgfSkudGhlbigoKSA9PiB7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwo
cmVxdWVzdHMubGVuZ3RoLCAxMik7Ci0gICAgICAgICAgICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVz
dChyZXF1ZXN0c1s5XSwgJ0dFVCcsICcvanNvbi9idWlsZGVycy9zb21lJTIwdGVzdGVyL2J1aWxk
cy8/c2VsZWN0PS0xJnNlbGVjdD0tMicsIHt9KTsKLSAgICAgICAgICAgIGFzc2VydEFuZFJlc29s
dmVSZXF1ZXN0KHJlcXVlc3RzWzEwXSwgJ0dFVCcsICcvanNvbi9idWlsZGVycy9zb21lJTIwYnVp
bGRlci9idWlsZHMvP3NlbGVjdD0tMSZzZWxlY3Q9LTInLCB7CisgICAgICAgICAgICBhc3NlcnQu
ZXF1YWwocmVxdWVzdHMubGVuZ3RoLCAxNCk7CisgICAgICAgICAgICBhc3NlcnRBbmRSZXNvbHZl
UmVxdWVzdChyZXF1ZXN0c1sxMV0sICdHRVQnLCAnL2pzb24vYnVpbGRlcnMvc29tZSUyMHRlc3Rl
ci9idWlsZHMvP3NlbGVjdD0tMSZzZWxlY3Q9LTInLCB7fSk7CisgICAgICAgICAgICBhc3NlcnRB
bmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1sxMl0sICdHRVQnLCAnL2pzb24vYnVpbGRlcnMvc29t
ZSUyMGJ1aWxkZXIvYnVpbGRzLz9zZWxlY3Q9LTEmc2VsZWN0PS0yJywgewogICAgICAgICAgICAg
ICAgIFstMV06IE1vY2tEYXRhLnJ1bm5pbmdCdWlsZCh7YnVpbGRlcjogJ3NvbWUgYnVpbGRlcics
IGJ1aWxkUmVxdWVzdElkOiAyLCBidWlsZE51bWJlcjogMTAwMn0pLAogICAgICAgICAgICAgICAg
IFstMl06IE1vY2tEYXRhLmZpbmlzaGVkQnVpbGQoe2J1aWxkZXI6ICdzb21lIGJ1aWxkZXInLCBi
dWlsZFJlcXVlc3RJZDogMX0pLAogICAgICAgICAgICAgfSk7Ci0gICAgICAgICAgICBhc3NlcnRB
bmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1sxMV0sICdHRVQnLCAnL2pzb24vYnVpbGRlcnMvb3Ro
ZXIlMjBidWlsZGVyL2J1aWxkcy8/c2VsZWN0PS0xJnNlbGVjdD0tMicsIHt9KTsKKyAgICAgICAg
ICAgIGFzc2VydEFuZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3RzWzEzXSwgJ0dFVCcsICcvanNvbi9i
dWlsZGVycy9vdGhlciUyMGJ1aWxkZXIvYnVpbGRzLz9zZWxlY3Q9LTEmc2VsZWN0PS0yJywge30p
OwogICAgICAgICAgICAgcmV0dXJuIHN5bmNQcm9taXNlOwogICAgICAgICB9KS50aGVuKCgpID0+
IHsKICAgICAgICAgICAgIHJldHVybiBUZXN0R3JvdXAuZmV0Y2hGb3JUYXNrKHRhc2tJZCwgdHJ1
ZSk7CkBAIC0xMDY2LDMyICsxMDc3LDMzIEBAIGRlc2NyaWJlKCdzeW5jLWJ1aWxkYm90JywgZnVu
Y3Rpb24gKCkgewogICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKG90aGVyQnVpbGRSZXF1ZXN0LmJ1
aWxkSWQoKSwgbnVsbCk7CiAKICAgICAgICAgICAgIHN5bmNQcm9taXNlID0gdHJpZ2dlcmFibGUu
aW5pdFN5bmNlcnMoKS50aGVuKCgpID0+IHRyaWdnZXJhYmxlLnN5bmNPbmNlKCkpOworICAgICAg
ICAgICAgYXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNbMV0sICdHRVQnLCBNb2NrRGF0
YS5idWlsZGJvdEJ1aWxkZXJzVVJMKCksIE1vY2tEYXRhLm1vY2tCdWlsZGJvdEJ1aWxkZXJzKCkp
OwogICAgICAgICAgICAgcmV0dXJuIE1vY2tSZW1vdGVBUEkud2FpdEZvclJlcXVlc3QoKTsKICAg
ICAgICAgfSkudGhlbigoKSA9PiB7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVxdWVzdHMu
bGVuZ3RoLCAzKTsKLSAgICAgICAgICAgIGFzc2VydEFuZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3Rz
WzBdLCAnR0VUJywgJy9qc29uL2J1aWxkZXJzL3NvbWUlMjB0ZXN0ZXIvcGVuZGluZ0J1aWxkcycs
IFtdKTsKLSAgICAgICAgICAgIGFzc2VydEFuZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3RzWzFdLCAn
R0VUJywgJy9qc29uL2J1aWxkZXJzL3NvbWUlMjBidWlsZGVyL3BlbmRpbmdCdWlsZHMnLCBbXSk7
Ci0gICAgICAgICAgICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1syXSwgJ0dFVCcs
ICcvanNvbi9idWlsZGVycy9vdGhlciUyMGJ1aWxkZXIvcGVuZGluZ0J1aWxkcycsIFtdKTsKKyAg
ICAgICAgICAgIGFzc2VydC5lcXVhbChyZXF1ZXN0cy5sZW5ndGgsIDUpOworICAgICAgICAgICAg
YXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNbMl0sICdHRVQnLCAnL2pzb24vYnVpbGRl
cnMvc29tZSUyMHRlc3Rlci9wZW5kaW5nQnVpbGRzJywgW10pOworICAgICAgICAgICAgYXNzZXJ0
QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNbM10sICdHRVQnLCAnL2pzb24vYnVpbGRlcnMvc29t
ZSUyMGJ1aWxkZXIvcGVuZGluZ0J1aWxkcycsIFtdKTsKKyAgICAgICAgICAgIGFzc2VydEFuZFJl
c29sdmVSZXF1ZXN0KHJlcXVlc3RzWzRdLCAnR0VUJywgJy9qc29uL2J1aWxkZXJzL290aGVyJTIw
YnVpbGRlci9wZW5kaW5nQnVpbGRzJywgW10pOwogICAgICAgICAgICAgcmV0dXJuIE1vY2tSZW1v
dGVBUEkud2FpdEZvclJlcXVlc3QoKTsKICAgICAgICAgfSkudGhlbigoKSA9PiB7Ci0gICAgICAg
ICAgICBhc3NlcnQuZXF1YWwocmVxdWVzdHMubGVuZ3RoLCA2KTsKLSAgICAgICAgICAgIGFzc2Vy
dEFuZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3RzWzNdLCAnR0VUJywgJy9qc29uL2J1aWxkZXJzL3Nv
bWUlMjB0ZXN0ZXIvYnVpbGRzLz9zZWxlY3Q9LTEmc2VsZWN0PS0yJywge30pOwotICAgICAgICAg
ICAgYXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNbNF0sICdHRVQnLCAnL2pzb24vYnVp
bGRlcnMvc29tZSUyMGJ1aWxkZXIvYnVpbGRzLz9zZWxlY3Q9LTEmc2VsZWN0PS0yJywge30pOwot
ICAgICAgICAgICAgYXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNbNV0sICdHRVQnLCAn
L2pzb24vYnVpbGRlcnMvb3RoZXIlMjBidWlsZGVyL2J1aWxkcy8/c2VsZWN0PS0xJnNlbGVjdD0t
MicsIHsKKyAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXF1ZXN0cy5sZW5ndGgsIDgpOworICAg
ICAgICAgICAgYXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNbNV0sICdHRVQnLCAnL2pz
b24vYnVpbGRlcnMvc29tZSUyMHRlc3Rlci9idWlsZHMvP3NlbGVjdD0tMSZzZWxlY3Q9LTInLCB7
fSk7CisgICAgICAgICAgICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1s2XSwgJ0dF
VCcsICcvanNvbi9idWlsZGVycy9zb21lJTIwYnVpbGRlci9idWlsZHMvP3NlbGVjdD0tMSZzZWxl
Y3Q9LTInLCB7fSk7CisgICAgICAgICAgICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0
c1s3XSwgJ0dFVCcsICcvanNvbi9idWlsZGVycy9vdGhlciUyMGJ1aWxkZXIvYnVpbGRzLz9zZWxl
Y3Q9LTEmc2VsZWN0PS0yJywgewogICAgICAgICAgICAgICAgIFstMV06IE1vY2tEYXRhLmZpbmlz
aGVkQnVpbGQoe2J1aWxkZXI6ICdvdGhlciBidWlsZGVyJywgYnVpbGRSZXF1ZXN0SWQ6IDEsIGJ1
aWxkTnVtYmVyOiAzMTJ9KSwKICAgICAgICAgICAgIH0pOwogICAgICAgICAgICAgcmV0dXJuIE1v
Y2tSZW1vdGVBUEkud2FpdEZvclJlcXVlc3QoKTsKICAgICAgICAgfSkudGhlbigoKSA9PiB7Ci0g
ICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVxdWVzdHMubGVuZ3RoLCA5KTsKLSAgICAgICAgICAg
IGFzc2VydEFuZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3RzWzZdLCAnR0VUJywgJy9qc29uL2J1aWxk
ZXJzL3NvbWUlMjB0ZXN0ZXIvcGVuZGluZ0J1aWxkcycsIFtdKTsKLSAgICAgICAgICAgIGFzc2Vy
dEFuZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3RzWzddLCAnR0VUJywgJy9qc29uL2J1aWxkZXJzL3Nv
bWUlMjBidWlsZGVyL3BlbmRpbmdCdWlsZHMnLCBbXSk7Ci0gICAgICAgICAgICBhc3NlcnRBbmRS
ZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1s4XSwgJ0dFVCcsICcvanNvbi9idWlsZGVycy9vdGhlciUy
MGJ1aWxkZXIvcGVuZGluZ0J1aWxkcycsIFtdKTsKKyAgICAgICAgICAgIGFzc2VydC5lcXVhbChy
ZXF1ZXN0cy5sZW5ndGgsIDExKTsKKyAgICAgICAgICAgIGFzc2VydEFuZFJlc29sdmVSZXF1ZXN0
KHJlcXVlc3RzWzhdLCAnR0VUJywgJy9qc29uL2J1aWxkZXJzL3NvbWUlMjB0ZXN0ZXIvcGVuZGlu
Z0J1aWxkcycsIFtdKTsKKyAgICAgICAgICAgIGFzc2VydEFuZFJlc29sdmVSZXF1ZXN0KHJlcXVl
c3RzWzldLCAnR0VUJywgJy9qc29uL2J1aWxkZXJzL3NvbWUlMjBidWlsZGVyL3BlbmRpbmdCdWls
ZHMnLCBbXSk7CisgICAgICAgICAgICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1sx
MF0sICdHRVQnLCAnL2pzb24vYnVpbGRlcnMvb3RoZXIlMjBidWlsZGVyL3BlbmRpbmdCdWlsZHMn
LCBbXSk7CiAgICAgICAgICAgICByZXR1cm4gTW9ja1JlbW90ZUFQSS53YWl0Rm9yUmVxdWVzdCgp
OwogICAgICAgICB9KS50aGVuKCgpID0+IHsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXF1
ZXN0cy5sZW5ndGgsIDEyKTsKLSAgICAgICAgICAgIGFzc2VydEFuZFJlc29sdmVSZXF1ZXN0KHJl
cXVlc3RzWzldLCAnR0VUJywgJy9qc29uL2J1aWxkZXJzL3NvbWUlMjB0ZXN0ZXIvYnVpbGRzLz9z
ZWxlY3Q9LTEmc2VsZWN0PS0yJywge30pOwotICAgICAgICAgICAgYXNzZXJ0QW5kUmVzb2x2ZVJl
cXVlc3QocmVxdWVzdHNbMTBdLCAnR0VUJywgJy9qc29uL2J1aWxkZXJzL3NvbWUlMjBidWlsZGVy
L2J1aWxkcy8/c2VsZWN0PS0xJnNlbGVjdD0tMicsIHt9KTsKLSAgICAgICAgICAgIGFzc2VydEFu
ZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3RzWzExXSwgJ0dFVCcsICcvanNvbi9idWlsZGVycy9vdGhl
ciUyMGJ1aWxkZXIvYnVpbGRzLz9zZWxlY3Q9LTEmc2VsZWN0PS0yJywgeworICAgICAgICAgICAg
YXNzZXJ0LmVxdWFsKHJlcXVlc3RzLmxlbmd0aCwgMTQpOworICAgICAgICAgICAgYXNzZXJ0QW5k
UmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNbMTFdLCAnR0VUJywgJy9qc29uL2J1aWxkZXJzL3NvbWUl
MjB0ZXN0ZXIvYnVpbGRzLz9zZWxlY3Q9LTEmc2VsZWN0PS0yJywge30pOworICAgICAgICAgICAg
YXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNbMTJdLCAnR0VUJywgJy9qc29uL2J1aWxk
ZXJzL3NvbWUlMjBidWlsZGVyL2J1aWxkcy8/c2VsZWN0PS0xJnNlbGVjdD0tMicsIHt9KTsKKyAg
ICAgICAgICAgIGFzc2VydEFuZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3RzWzEzXSwgJ0dFVCcsICcv
anNvbi9idWlsZGVycy9vdGhlciUyMGJ1aWxkZXIvYnVpbGRzLz9zZWxlY3Q9LTEmc2VsZWN0PS0y
JywgewogICAgICAgICAgICAgICAgIFstMV06IE1vY2tEYXRhLmZpbmlzaGVkQnVpbGQoe2J1aWxk
ZXI6ICdvdGhlciBidWlsZGVyJywgYnVpbGRSZXF1ZXN0SWQ6IDEsIGJ1aWxkTnVtYmVyOiAzMTJ9
KSwKICAgICAgICAgICAgIH0pOwogICAgICAgICAgICAgcmV0dXJuIHN5bmNQcm9taXNlOwpAQCAt
MTE3MiwzOCArMTE4NCwzOSBAQCBkZXNjcmliZSgnc3luYy1idWlsZGJvdCcsIGZ1bmN0aW9uICgp
IHsKICAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwob3RoZXJDb21taXRTZXQuYWxsUm9vdEZp
bGVzKCksIFtdKTsKIAogICAgICAgICAgICAgc3luY1Byb21pc2UgPSB0cmlnZ2VyYWJsZS5pbml0
U3luY2VycygpLnRoZW4oKCkgPT4gdHJpZ2dlcmFibGUuc3luY09uY2UoKSk7CisgICAgICAgICAg
ICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1sxXSwgJ0dFVCcsIE1vY2tEYXRhLmJ1
aWxkYm90QnVpbGRlcnNVUkwoKSwgTW9ja0RhdGEubW9ja0J1aWxkYm90QnVpbGRlcnMoKSk7CiAg
ICAgICAgICAgICByZXR1cm4gTW9ja1JlbW90ZUFQSS53YWl0Rm9yUmVxdWVzdCgpOwogICAgICAg
ICB9KS50aGVuKCgpID0+IHsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXF1ZXN0cy5sZW5n
dGgsIDMpOwotICAgICAgICAgICAgYXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNbMF0s
ICdHRVQnLCAnL2pzb24vYnVpbGRlcnMvc29tZSUyMHRlc3Rlci9wZW5kaW5nQnVpbGRzJywgW10p
OwotICAgICAgICAgICAgYXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNbMV0sICdHRVQn
LCAnL2pzb24vYnVpbGRlcnMvc29tZSUyMGJ1aWxkZXIvcGVuZGluZ0J1aWxkcycsIFtdKTsKLSAg
ICAgICAgICAgIGFzc2VydEFuZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3RzWzJdLCAnR0VUJywgJy9q
c29uL2J1aWxkZXJzL290aGVyJTIwYnVpbGRlci9wZW5kaW5nQnVpbGRzJywgW10pOworICAgICAg
ICAgICAgYXNzZXJ0LmVxdWFsKHJlcXVlc3RzLmxlbmd0aCwgNSk7CisgICAgICAgICAgICBhc3Nl
cnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1syXSwgJ0dFVCcsICcvanNvbi9idWlsZGVycy9z
b21lJTIwdGVzdGVyL3BlbmRpbmdCdWlsZHMnLCBbXSk7CisgICAgICAgICAgICBhc3NlcnRBbmRS
ZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1szXSwgJ0dFVCcsICcvanNvbi9idWlsZGVycy9zb21lJTIw
YnVpbGRlci9wZW5kaW5nQnVpbGRzJywgW10pOworICAgICAgICAgICAgYXNzZXJ0QW5kUmVzb2x2
ZVJlcXVlc3QocmVxdWVzdHNbNF0sICdHRVQnLCAnL2pzb24vYnVpbGRlcnMvb3RoZXIlMjBidWls
ZGVyL3BlbmRpbmdCdWlsZHMnLCBbXSk7CiAgICAgICAgICAgICByZXR1cm4gTW9ja1JlbW90ZUFQ
SS53YWl0Rm9yUmVxdWVzdCgpOwogICAgICAgICB9KS50aGVuKCgpID0+IHsKLSAgICAgICAgICAg
IGFzc2VydC5lcXVhbChyZXF1ZXN0cy5sZW5ndGgsIDYpOwotICAgICAgICAgICAgYXNzZXJ0QW5k
UmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNbM10sICdHRVQnLCAnL2pzb24vYnVpbGRlcnMvc29tZSUy
MHRlc3Rlci9idWlsZHMvP3NlbGVjdD0tMSZzZWxlY3Q9LTInLCB7fSk7Ci0gICAgICAgICAgICBh
c3NlcnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1s0XSwgJ0dFVCcsICcvanNvbi9idWlsZGVy
cy9zb21lJTIwYnVpbGRlci9idWlsZHMvP3NlbGVjdD0tMSZzZWxlY3Q9LTInLCB7fSk7Ci0gICAg
ICAgICAgICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1s1XSwgJ0dFVCcsICcvanNv
bi9idWlsZGVycy9vdGhlciUyMGJ1aWxkZXIvYnVpbGRzLz9zZWxlY3Q9LTEmc2VsZWN0PS0yJywg
e30pOworICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlcXVlc3RzLmxlbmd0aCwgOCk7CisgICAg
ICAgICAgICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1s1XSwgJ0dFVCcsICcvanNv
bi9idWlsZGVycy9zb21lJTIwdGVzdGVyL2J1aWxkcy8/c2VsZWN0PS0xJnNlbGVjdD0tMicsIHt9
KTsKKyAgICAgICAgICAgIGFzc2VydEFuZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3RzWzZdLCAnR0VU
JywgJy9qc29uL2J1aWxkZXJzL3NvbWUlMjBidWlsZGVyL2J1aWxkcy8/c2VsZWN0PS0xJnNlbGVj
dD0tMicsIHt9KTsKKyAgICAgICAgICAgIGFzc2VydEFuZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3Rz
WzddLCAnR0VUJywgJy9qc29uL2J1aWxkZXJzL290aGVyJTIwYnVpbGRlci9idWlsZHMvP3NlbGVj
dD0tMSZzZWxlY3Q9LTInLCB7fSk7CiAgICAgICAgICAgICByZXR1cm4gTW9ja1JlbW90ZUFQSS53
YWl0Rm9yUmVxdWVzdCgpOwogICAgICAgICB9KS50aGVuKCgpID0+IHsKLSAgICAgICAgICAgIGFz
c2VydC5lcXVhbChyZXF1ZXN0cy5sZW5ndGgsIDcpOwotICAgICAgICAgICAgYXNzZXJ0QW5kUmVz
b2x2ZVJlcXVlc3QocmVxdWVzdHNbNl0sICdQT1NUJywgJy9idWlsZGVycy9zb21lJTIwYnVpbGRl
ci9mb3JjZScsICdPSycpOwotICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChyZXF1ZXN0c1s2
XS5kYXRhLCB7J3drJzogJzE5MTYyMicsICdidWlsZC1yZXF1ZXN0LWlkJzogJzEnLCAnZm9yY2Vz
Y2hlZHVsZXInOiAnZm9yY2UtYWItYnVpbGRzJywgJ293bmVkLWNvbW1pdHMnOiBgeyJXZWJLaXQi
Olt7InJldmlzaW9uIjoib3duZWQtanNjLTYxNjEiLCJyZXBvc2l0b3J5IjoiSmF2YVNjcmlwdENv
cmUiLCJvd25lclJldmlzaW9uIjoiMTkxNjIyIn1dfWB9KTsKKyAgICAgICAgICAgIGFzc2VydC5l
cXVhbChyZXF1ZXN0cy5sZW5ndGgsIDkpOworICAgICAgICAgICAgYXNzZXJ0QW5kUmVzb2x2ZVJl
cXVlc3QocmVxdWVzdHNbOF0sICdQT1NUJywgJy9idWlsZGVycy9zb21lJTIwYnVpbGRlci9mb3Jj
ZScsICdPSycpOworICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChyZXF1ZXN0c1s4XS5kYXRh
LCB7J3drJzogJzE5MTYyMicsICdidWlsZC1yZXF1ZXN0LWlkJzogJzEnLCAnZm9yY2VzY2hlZHVs
ZXInOiAnZm9yY2UtYWItYnVpbGRzJywgJ293bmVkLWNvbW1pdHMnOiBgeyJXZWJLaXQiOlt7InJl
dmlzaW9uIjoib3duZWQtanNjLTYxNjEiLCJyZXBvc2l0b3J5IjoiSmF2YVNjcmlwdENvcmUiLCJv
d25lclJldmlzaW9uIjoiMTkxNjIyIn1dfWB9KTsKICAgICAgICAgICAgIHJldHVybiBNb2NrUmVt
b3RlQVBJLndhaXRGb3JSZXF1ZXN0KCk7CiAgICAgICAgIH0pLnRoZW4oKCkgPT4gewotICAgICAg
ICAgICAgYXNzZXJ0LmVxdWFsKHJlcXVlc3RzLmxlbmd0aCwgMTApOwotICAgICAgICAgICAgYXNz
ZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNbN10sICdHRVQnLCAnL2pzb24vYnVpbGRlcnMv
c29tZSUyMHRlc3Rlci9wZW5kaW5nQnVpbGRzJywgW10pOwotICAgICAgICAgICAgYXNzZXJ0QW5k
UmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNbOF0sICdHRVQnLCAnL2pzb24vYnVpbGRlcnMvc29tZSUy
MGJ1aWxkZXIvcGVuZGluZ0J1aWxkcycsCisgICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVxdWVz
dHMubGVuZ3RoLCAxMik7CisgICAgICAgICAgICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1
ZXN0c1s5XSwgJ0dFVCcsICcvanNvbi9idWlsZGVycy9zb21lJTIwdGVzdGVyL3BlbmRpbmdCdWls
ZHMnLCBbXSk7CisgICAgICAgICAgICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1sx
MF0sICdHRVQnLCAnL2pzb24vYnVpbGRlcnMvc29tZSUyMGJ1aWxkZXIvcGVuZGluZ0J1aWxkcycs
CiAgICAgICAgICAgICAgICAgW01vY2tEYXRhLnBlbmRpbmdCdWlsZCh7YnVpbGRlcjogJ3NvbWUg
YnVpbGRlcicsIGJ1aWxkUmVxdWVzdElkOiAxfSldKTsKLSAgICAgICAgICAgIGFzc2VydEFuZFJl
c29sdmVSZXF1ZXN0KHJlcXVlc3RzWzldLCAnR0VUJywgJy9qc29uL2J1aWxkZXJzL290aGVyJTIw
YnVpbGRlci9wZW5kaW5nQnVpbGRzJywgW10pOworICAgICAgICAgICAgYXNzZXJ0QW5kUmVzb2x2
ZVJlcXVlc3QocmVxdWVzdHNbMTFdLCAnR0VUJywgJy9qc29uL2J1aWxkZXJzL290aGVyJTIwYnVp
bGRlci9wZW5kaW5nQnVpbGRzJywgW10pOwogICAgICAgICAgICAgcmV0dXJuIE1vY2tSZW1vdGVB
UEkud2FpdEZvclJlcXVlc3QoKTsKICAgICAgICAgfSkudGhlbigoKSA9PiB7Ci0gICAgICAgICAg
ICBhc3NlcnQuZXF1YWwocmVxdWVzdHMubGVuZ3RoLCAxMyk7Ci0gICAgICAgICAgICBhc3NlcnRB
bmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1sxMF0sICdHRVQnLCAnL2pzb24vYnVpbGRlcnMvc29t
ZSUyMHRlc3Rlci9idWlsZHMvP3NlbGVjdD0tMSZzZWxlY3Q9LTInLCB7fSk7Ci0gICAgICAgICAg
ICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1sxMV0sICdHRVQnLCAnL2pzb24vYnVp
bGRlcnMvc29tZSUyMGJ1aWxkZXIvYnVpbGRzLz9zZWxlY3Q9LTEmc2VsZWN0PS0yJywgeworICAg
ICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlcXVlc3RzLmxlbmd0aCwgMTUpOworICAgICAgICAgICAg
YXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNbMTJdLCAnR0VUJywgJy9qc29uL2J1aWxk
ZXJzL3NvbWUlMjB0ZXN0ZXIvYnVpbGRzLz9zZWxlY3Q9LTEmc2VsZWN0PS0yJywge30pOworICAg
ICAgICAgICAgYXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNbMTNdLCAnR0VUJywgJy9q
c29uL2J1aWxkZXJzL3NvbWUlMjBidWlsZGVyL2J1aWxkcy8/c2VsZWN0PS0xJnNlbGVjdD0tMics
IHsKICAgICAgICAgICAgICAgICBbLTFdOiBNb2NrRGF0YS5ydW5uaW5nQnVpbGQoe2J1aWxkZXI6
ICdzb21lIGJ1aWxkZXInLCBidWlsZFJlcXVlc3RJZDogMX0pCiAgICAgICAgICAgICB9KTsKLSAg
ICAgICAgICAgIGFzc2VydEFuZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3RzWzEyXSwgJ0dFVCcsICcv
anNvbi9idWlsZGVycy9vdGhlciUyMGJ1aWxkZXIvYnVpbGRzLz9zZWxlY3Q9LTEmc2VsZWN0PS0y
Jywge30pOworICAgICAgICAgICAgYXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNbMTRd
LCAnR0VUJywgJy9qc29uL2J1aWxkZXJzL290aGVyJTIwYnVpbGRlci9idWlsZHMvP3NlbGVjdD0t
MSZzZWxlY3Q9LTInLCB7fSk7CiAgICAgICAgICAgICByZXR1cm4gc3luY1Byb21pc2U7CiAgICAg
ICAgIH0pLnRoZW4oKCkgPT4gewogICAgICAgICAgICAgcmV0dXJuIFRlc3RHcm91cC5mZXRjaEZv
clRhc2sodGFza0lkLCB0cnVlKTsKQEAgLTEyOTEsNDAgKzEzMDQsNDEgQEAgZGVzY3JpYmUoJ3N5
bmMtYnVpbGRib3QnLCBmdW5jdGlvbiAoKSB7CiAKICAgICAgICAgICAgIE1vY2tSZW1vdGVBUEku
cmVzZXQoKTsKICAgICAgICAgICAgIHN5bmNQcm9taXNlID0gdHJpZ2dlcmFibGUuaW5pdFN5bmNl
cnMoKS50aGVuKCgpID0+IHRyaWdnZXJhYmxlLnN5bmNPbmNlKCkpOworICAgICAgICAgICAgYXNz
ZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNbMF0sICdHRVQnLCBNb2NrRGF0YS5idWlsZGJv
dEJ1aWxkZXJzVVJMKCksIE1vY2tEYXRhLm1vY2tCdWlsZGJvdEJ1aWxkZXJzKCkpOwogICAgICAg
ICAgICAgcmV0dXJuIE1vY2tSZW1vdGVBUEkud2FpdEZvclJlcXVlc3QoKTsKICAgICAgICAgfSku
dGhlbigoKSA9PiB7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVxdWVzdHMubGVuZ3RoLCAz
KTsKLSAgICAgICAgICAgIGFzc2VydEFuZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3RzWzBdLCAnR0VU
JywgJy9qc29uL2J1aWxkZXJzL3NvbWUlMjB0ZXN0ZXIvcGVuZGluZ0J1aWxkcycsIFtdKTsKLSAg
ICAgICAgICAgIGFzc2VydEFuZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3RzWzFdLCAnR0VUJywgJy9q
c29uL2J1aWxkZXJzL3NvbWUlMjBidWlsZGVyL3BlbmRpbmdCdWlsZHMnLCBbXSk7Ci0gICAgICAg
ICAgICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1syXSwgJ0dFVCcsICcvanNvbi9i
dWlsZGVycy9vdGhlciUyMGJ1aWxkZXIvcGVuZGluZ0J1aWxkcycsIFtdKTsKKyAgICAgICAgICAg
IGFzc2VydC5lcXVhbChyZXF1ZXN0cy5sZW5ndGgsIDQpOworICAgICAgICAgICAgYXNzZXJ0QW5k
UmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNbMV0sICdHRVQnLCAnL2pzb24vYnVpbGRlcnMvc29tZSUy
MHRlc3Rlci9wZW5kaW5nQnVpbGRzJywgW10pOworICAgICAgICAgICAgYXNzZXJ0QW5kUmVzb2x2
ZVJlcXVlc3QocmVxdWVzdHNbMl0sICdHRVQnLCAnL2pzb24vYnVpbGRlcnMvc29tZSUyMGJ1aWxk
ZXIvcGVuZGluZ0J1aWxkcycsIFtdKTsKKyAgICAgICAgICAgIGFzc2VydEFuZFJlc29sdmVSZXF1
ZXN0KHJlcXVlc3RzWzNdLCAnR0VUJywgJy9qc29uL2J1aWxkZXJzL290aGVyJTIwYnVpbGRlci9w
ZW5kaW5nQnVpbGRzJywgW10pOwogICAgICAgICAgICAgcmV0dXJuIE1vY2tSZW1vdGVBUEkud2Fp
dEZvclJlcXVlc3QoKTsKICAgICAgICAgfSkudGhlbigoKSA9PiB7Ci0gICAgICAgICAgICBhc3Nl
cnQuZXF1YWwocmVxdWVzdHMubGVuZ3RoLCA2KTsKLSAgICAgICAgICAgIGFzc2VydEFuZFJlc29s
dmVSZXF1ZXN0KHJlcXVlc3RzWzNdLCAnR0VUJywgJy9qc29uL2J1aWxkZXJzL3NvbWUlMjB0ZXN0
ZXIvYnVpbGRzLz9zZWxlY3Q9LTEmc2VsZWN0PS0yJywge30pOwotICAgICAgICAgICAgYXNzZXJ0
QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNbNF0sICdHRVQnLCAnL2pzb24vYnVpbGRlcnMvc29t
ZSUyMGJ1aWxkZXIvYnVpbGRzLz9zZWxlY3Q9LTEmc2VsZWN0PS0yJywgeworICAgICAgICAgICAg
YXNzZXJ0LmVxdWFsKHJlcXVlc3RzLmxlbmd0aCwgNyk7CisgICAgICAgICAgICBhc3NlcnRBbmRS
ZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1s0XSwgJ0dFVCcsICcvanNvbi9idWlsZGVycy9zb21lJTIw
dGVzdGVyL2J1aWxkcy8/c2VsZWN0PS0xJnNlbGVjdD0tMicsIHt9KTsKKyAgICAgICAgICAgIGFz
c2VydEFuZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3RzWzVdLCAnR0VUJywgJy9qc29uL2J1aWxkZXJz
L3NvbWUlMjBidWlsZGVyL2J1aWxkcy8/c2VsZWN0PS0xJnNlbGVjdD0tMicsIHsKICAgICAgICAg
ICAgICAgICBbLTFdOiBNb2NrRGF0YS5maW5pc2hlZEJ1aWxkKHtidWlsZGVyOiAnc29tZSBidWls
ZGVyJywgYnVpbGRSZXF1ZXN0SWQ6IDF9KQogICAgICAgICAgICAgfSk7Ci0gICAgICAgICAgICBh
c3NlcnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1s1XSwgJ0dFVCcsICcvanNvbi9idWlsZGVy
cy9vdGhlciUyMGJ1aWxkZXIvYnVpbGRzLz9zZWxlY3Q9LTEmc2VsZWN0PS0yJywge30pOworICAg
ICAgICAgICAgYXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNbNl0sICdHRVQnLCAnL2pz
b24vYnVpbGRlcnMvb3RoZXIlMjBidWlsZGVyL2J1aWxkcy8/c2VsZWN0PS0xJnNlbGVjdD0tMics
IHt9KTsKICAgICAgICAgICAgIHJldHVybiBNb2NrUmVtb3RlQVBJLndhaXRGb3JSZXF1ZXN0KCk7
CiAgICAgICAgIH0pLnRoZW4oKCkgPT4gewotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlcXVl
c3RzLmxlbmd0aCwgNyk7Ci0gICAgICAgICAgICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1
ZXN0c1s2XSwgJ1BPU1QnLCAnL2J1aWxkZXJzL3NvbWUlMjBidWlsZGVyL2ZvcmNlJywgJ09LJyk7
Ci0gICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKHJlcXVlc3RzWzZdLmRhdGEsIHsnd2snOiAn
MTkyNzM2JywgJ2J1aWxkLXJlcXVlc3QtaWQnOiAnMicsICdmb3JjZXNjaGVkdWxlcic6ICdmb3Jj
ZS1hYi1idWlsZHMnLCAnb3duZWQtY29tbWl0cyc6IGB7IldlYktpdCI6W3sicmV2aXNpb24iOiJv
d25lZC1qc2MtOTE5MSIsInJlcG9zaXRvcnkiOiJKYXZhU2NyaXB0Q29yZSIsIm93bmVyUmV2aXNp
b24iOiIxOTI3MzYifV19YH0pOworICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlcXVlc3RzLmxl
bmd0aCwgOCk7CisgICAgICAgICAgICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1s3
XSwgJ1BPU1QnLCAnL2J1aWxkZXJzL3NvbWUlMjBidWlsZGVyL2ZvcmNlJywgJ09LJyk7CisgICAg
ICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKHJlcXVlc3RzWzddLmRhdGEsIHsnd2snOiAnMTkyNzM2
JywgJ2J1aWxkLXJlcXVlc3QtaWQnOiAnMicsICdmb3JjZXNjaGVkdWxlcic6ICdmb3JjZS1hYi1i
dWlsZHMnLCAnb3duZWQtY29tbWl0cyc6IGB7IldlYktpdCI6W3sicmV2aXNpb24iOiJvd25lZC1q
c2MtOTE5MSIsInJlcG9zaXRvcnkiOiJKYXZhU2NyaXB0Q29yZSIsIm93bmVyUmV2aXNpb24iOiIx
OTI3MzYifV19YH0pOwogICAgICAgICAgICAgcmV0dXJuIE1vY2tSZW1vdGVBUEkud2FpdEZvclJl
cXVlc3QoKTsKICAgICAgICAgfSkudGhlbigoKSA9PiB7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1
YWwocmVxdWVzdHMubGVuZ3RoLCAxMCk7Ci0gICAgICAgICAgICBhc3NlcnRBbmRSZXNvbHZlUmVx
dWVzdChyZXF1ZXN0c1s3XSwgJ0dFVCcsICcvanNvbi9idWlsZGVycy9zb21lJTIwdGVzdGVyL3Bl
bmRpbmdCdWlsZHMnLCBbXSk7Ci0gICAgICAgICAgICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVzdChy
ZXF1ZXN0c1s4XSwgJ0dFVCcsICcvanNvbi9idWlsZGVycy9zb21lJTIwYnVpbGRlci9wZW5kaW5n
QnVpbGRzJywgW10pOwotICAgICAgICAgICAgYXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVz
dHNbOV0sICdHRVQnLCAnL2pzb24vYnVpbGRlcnMvb3RoZXIlMjBidWlsZGVyL3BlbmRpbmdCdWls
ZHMnLCBbXSk7CisgICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVxdWVzdHMubGVuZ3RoLCAxMSk7
CisgICAgICAgICAgICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1s4XSwgJ0dFVCcs
ICcvanNvbi9idWlsZGVycy9zb21lJTIwdGVzdGVyL3BlbmRpbmdCdWlsZHMnLCBbXSk7CisgICAg
ICAgICAgICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1s5XSwgJ0dFVCcsICcvanNv
bi9idWlsZGVycy9zb21lJTIwYnVpbGRlci9wZW5kaW5nQnVpbGRzJywgW10pOworICAgICAgICAg
ICAgYXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNbMTBdLCAnR0VUJywgJy9qc29uL2J1
aWxkZXJzL290aGVyJTIwYnVpbGRlci9wZW5kaW5nQnVpbGRzJywgW10pOwogICAgICAgICAgICAg
cmV0dXJuIE1vY2tSZW1vdGVBUEkud2FpdEZvclJlcXVlc3QoKTsKICAgICAgICAgfSkudGhlbigo
KSA9PiB7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVxdWVzdHMubGVuZ3RoLCAxMyk7Ci0g
ICAgICAgICAgICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1sxMF0sICdHRVQnLCAn
L2pzb24vYnVpbGRlcnMvc29tZSUyMHRlc3Rlci9idWlsZHMvP3NlbGVjdD0tMSZzZWxlY3Q9LTIn
LCB7fSk7Ci0gICAgICAgICAgICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1sxMV0s
ICdHRVQnLCAnL2pzb24vYnVpbGRlcnMvc29tZSUyMGJ1aWxkZXIvYnVpbGRzLz9zZWxlY3Q9LTEm
c2VsZWN0PS0yJywgeworICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlcXVlc3RzLmxlbmd0aCwg
MTQpOworICAgICAgICAgICAgYXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNbMTFdLCAn
R0VUJywgJy9qc29uL2J1aWxkZXJzL3NvbWUlMjB0ZXN0ZXIvYnVpbGRzLz9zZWxlY3Q9LTEmc2Vs
ZWN0PS0yJywge30pOworICAgICAgICAgICAgYXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVz
dHNbMTJdLCAnR0VUJywgJy9qc29uL2J1aWxkZXJzL3NvbWUlMjBidWlsZGVyL2J1aWxkcy8/c2Vs
ZWN0PS0xJnNlbGVjdD0tMicsIHsKICAgICAgICAgICAgICAgICBbLTFdOiBNb2NrRGF0YS5ydW5u
aW5nQnVpbGQoe2J1aWxkZXI6ICdzb21lIGJ1aWxkZXInLCBidWlsZFJlcXVlc3RJZDogMn0pLAog
ICAgICAgICAgICAgICAgIFstMl06IE1vY2tEYXRhLmZpbmlzaGVkQnVpbGQoe2J1aWxkZXI6ICdz
b21lIGJ1aWxkZXInLCBidWlsZFJlcXVlc3RJZDogMX0pLAogICAgICAgICAgICAgfSk7Ci0gICAg
ICAgICAgICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1sxMl0sICdHRVQnLCAnL2pz
b24vYnVpbGRlcnMvb3RoZXIlMjBidWlsZGVyL2J1aWxkcy8/c2VsZWN0PS0xJnNlbGVjdD0tMics
IHt9KTsKKyAgICAgICAgICAgIGFzc2VydEFuZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3RzWzEzXSwg
J0dFVCcsICcvanNvbi9idWlsZGVycy9vdGhlciUyMGJ1aWxkZXIvYnVpbGRzLz9zZWxlY3Q9LTEm
c2VsZWN0PS0yJywge30pOwogICAgICAgICAgICAgcmV0dXJuIHN5bmNQcm9taXNlOwogICAgICAg
ICB9KS50aGVuKCgpID0+IHsKICAgICAgICAgICAgIHJldHVybiBUZXN0R3JvdXAuZmV0Y2hGb3JU
YXNrKHRhc2tJZCwgdHJ1ZSk7CkBAIC0xNDY3LDM4ICsxNDgxLDM5IEBAIGRlc2NyaWJlKCdzeW5j
LWJ1aWxkYm90JywgZnVuY3Rpb24gKCkgewogICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChv
dGhlckNvbW1pdFNldC5hbGxSb290RmlsZXMoKSwgW10pOwogCiAgICAgICAgICAgICBzeW5jUHJv
bWlzZSA9IHRyaWdnZXJhYmxlLmluaXRTeW5jZXJzKCkudGhlbigoKSA9PiB0cmlnZ2VyYWJsZS5z
eW5jT25jZSgpKTsKKyAgICAgICAgICAgIGFzc2VydEFuZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3Rz
WzFdLCAnR0VUJywgTW9ja0RhdGEuYnVpbGRib3RCdWlsZGVyc1VSTCgpLCBNb2NrRGF0YS5tb2Nr
QnVpbGRib3RCdWlsZGVycygpKTsKICAgICAgICAgICAgIHJldHVybiBNb2NrUmVtb3RlQVBJLndh
aXRGb3JSZXF1ZXN0KCk7CiAgICAgICAgIH0pLnRoZW4oKCkgPT4gewotICAgICAgICAgICAgYXNz
ZXJ0LmVxdWFsKHJlcXVlc3RzLmxlbmd0aCwgMyk7Ci0gICAgICAgICAgICBhc3NlcnRBbmRSZXNv
bHZlUmVxdWVzdChyZXF1ZXN0c1swXSwgJ0dFVCcsICcvanNvbi9idWlsZGVycy9zb21lJTIwdGVz
dGVyL3BlbmRpbmdCdWlsZHMnLCBbXSk7Ci0gICAgICAgICAgICBhc3NlcnRBbmRSZXNvbHZlUmVx
dWVzdChyZXF1ZXN0c1sxXSwgJ0dFVCcsICcvanNvbi9idWlsZGVycy9zb21lJTIwYnVpbGRlci9w
ZW5kaW5nQnVpbGRzJywgW10pOwotICAgICAgICAgICAgYXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3Qo
cmVxdWVzdHNbMl0sICdHRVQnLCAnL2pzb24vYnVpbGRlcnMvb3RoZXIlMjBidWlsZGVyL3BlbmRp
bmdCdWlsZHMnLCBbXSk7CisgICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVxdWVzdHMubGVuZ3Ro
LCA1KTsKKyAgICAgICAgICAgIGFzc2VydEFuZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3RzWzJdLCAn
R0VUJywgJy9qc29uL2J1aWxkZXJzL3NvbWUlMjB0ZXN0ZXIvcGVuZGluZ0J1aWxkcycsIFtdKTsK
KyAgICAgICAgICAgIGFzc2VydEFuZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3RzWzNdLCAnR0VUJywg
Jy9qc29uL2J1aWxkZXJzL3NvbWUlMjBidWlsZGVyL3BlbmRpbmdCdWlsZHMnLCBbXSk7CisgICAg
ICAgICAgICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1s0XSwgJ0dFVCcsICcvanNv
bi9idWlsZGVycy9vdGhlciUyMGJ1aWxkZXIvcGVuZGluZ0J1aWxkcycsIFtdKTsKICAgICAgICAg
ICAgIHJldHVybiBNb2NrUmVtb3RlQVBJLndhaXRGb3JSZXF1ZXN0KCk7CiAgICAgICAgIH0pLnRo
ZW4oKCkgPT4gewotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlcXVlc3RzLmxlbmd0aCwgNik7
Ci0gICAgICAgICAgICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1szXSwgJ0dFVCcs
ICcvanNvbi9idWlsZGVycy9zb21lJTIwdGVzdGVyL2J1aWxkcy8/c2VsZWN0PS0xJnNlbGVjdD0t
MicsIHt9KTsKLSAgICAgICAgICAgIGFzc2VydEFuZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3RzWzRd
LCAnR0VUJywgJy9qc29uL2J1aWxkZXJzL3NvbWUlMjBidWlsZGVyL2J1aWxkcy8/c2VsZWN0PS0x
JnNlbGVjdD0tMicsIHt9KTsKLSAgICAgICAgICAgIGFzc2VydEFuZFJlc29sdmVSZXF1ZXN0KHJl
cXVlc3RzWzVdLCAnR0VUJywgJy9qc29uL2J1aWxkZXJzL290aGVyJTIwYnVpbGRlci9idWlsZHMv
P3NlbGVjdD0tMSZzZWxlY3Q9LTInLCB7fSk7CisgICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVx
dWVzdHMubGVuZ3RoLCA4KTsKKyAgICAgICAgICAgIGFzc2VydEFuZFJlc29sdmVSZXF1ZXN0KHJl
cXVlc3RzWzVdLCAnR0VUJywgJy9qc29uL2J1aWxkZXJzL3NvbWUlMjB0ZXN0ZXIvYnVpbGRzLz9z
ZWxlY3Q9LTEmc2VsZWN0PS0yJywge30pOworICAgICAgICAgICAgYXNzZXJ0QW5kUmVzb2x2ZVJl
cXVlc3QocmVxdWVzdHNbNl0sICdHRVQnLCAnL2pzb24vYnVpbGRlcnMvc29tZSUyMGJ1aWxkZXIv
YnVpbGRzLz9zZWxlY3Q9LTEmc2VsZWN0PS0yJywge30pOworICAgICAgICAgICAgYXNzZXJ0QW5k
UmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNbN10sICdHRVQnLCAnL2pzb24vYnVpbGRlcnMvb3RoZXIl
MjBidWlsZGVyL2J1aWxkcy8/c2VsZWN0PS0xJnNlbGVjdD0tMicsIHt9KTsKICAgICAgICAgICAg
IHJldHVybiBNb2NrUmVtb3RlQVBJLndhaXRGb3JSZXF1ZXN0KCk7CiAgICAgICAgIH0pLnRoZW4o
KCkgPT4gewotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlcXVlc3RzLmxlbmd0aCwgNyk7Ci0g
ICAgICAgICAgICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1s2XSwgJ1BPU1QnLCAn
L2J1aWxkZXJzL3NvbWUlMjBidWlsZGVyL2ZvcmNlJywgJ09LJyk7Ci0gICAgICAgICAgICBhc3Nl
cnQuZGVlcEVxdWFsKHJlcXVlc3RzWzZdLmRhdGEsIHsnd2snOiAnMTkxNjIyJywgJ2J1aWxkLXJl
cXVlc3QtaWQnOiAnMScsICdmb3JjZXNjaGVkdWxlcic6ICdmb3JjZS1hYi1idWlsZHMnLCAnb3du
ZWQtY29tbWl0cyc6IGB7IldlYktpdCI6W3sicmV2aXNpb24iOiJvd25lZC1qc2MtNjE2MSIsInJl
cG9zaXRvcnkiOiJKYXZhU2NyaXB0Q29yZSIsIm93bmVyUmV2aXNpb24iOiIxOTE2MjIifV19YH0p
OworICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlcXVlc3RzLmxlbmd0aCwgOSk7CisgICAgICAg
ICAgICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1s4XSwgJ1BPU1QnLCAnL2J1aWxk
ZXJzL3NvbWUlMjBidWlsZGVyL2ZvcmNlJywgJ09LJyk7CisgICAgICAgICAgICBhc3NlcnQuZGVl
cEVxdWFsKHJlcXVlc3RzWzhdLmRhdGEsIHsnd2snOiAnMTkxNjIyJywgJ2J1aWxkLXJlcXVlc3Qt
aWQnOiAnMScsICdmb3JjZXNjaGVkdWxlcic6ICdmb3JjZS1hYi1idWlsZHMnLCAnb3duZWQtY29t
bWl0cyc6IGB7IldlYktpdCI6W3sicmV2aXNpb24iOiJvd25lZC1qc2MtNjE2MSIsInJlcG9zaXRv
cnkiOiJKYXZhU2NyaXB0Q29yZSIsIm93bmVyUmV2aXNpb24iOiIxOTE2MjIifV19YH0pOwogICAg
ICAgICAgICAgcmV0dXJuIE1vY2tSZW1vdGVBUEkud2FpdEZvclJlcXVlc3QoKTsKICAgICAgICAg
fSkudGhlbigoKSA9PiB7Ci0gICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVxdWVzdHMubGVuZ3Ro
LCAxMCk7Ci0gICAgICAgICAgICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1s3XSwg
J0dFVCcsICcvanNvbi9idWlsZGVycy9zb21lJTIwdGVzdGVyL3BlbmRpbmdCdWlsZHMnLCBbXSk7
Ci0gICAgICAgICAgICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1s4XSwgJ0dFVCcs
ICcvanNvbi9idWlsZGVycy9zb21lJTIwYnVpbGRlci9wZW5kaW5nQnVpbGRzJywKKyAgICAgICAg
ICAgIGFzc2VydC5lcXVhbChyZXF1ZXN0cy5sZW5ndGgsIDEyKTsKKyAgICAgICAgICAgIGFzc2Vy
dEFuZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3RzWzldLCAnR0VUJywgJy9qc29uL2J1aWxkZXJzL3Nv
bWUlMjB0ZXN0ZXIvcGVuZGluZ0J1aWxkcycsIFtdKTsKKyAgICAgICAgICAgIGFzc2VydEFuZFJl
c29sdmVSZXF1ZXN0KHJlcXVlc3RzWzEwXSwgJ0dFVCcsICcvanNvbi9idWlsZGVycy9zb21lJTIw
YnVpbGRlci9wZW5kaW5nQnVpbGRzJywKICAgICAgICAgICAgICAgICBbTW9ja0RhdGEucGVuZGlu
Z0J1aWxkKHtidWlsZGVyOiAnc29tZSBidWlsZGVyJywgYnVpbGRSZXF1ZXN0SWQ6IDF9KV0pOwot
ICAgICAgICAgICAgYXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNbOV0sICdHRVQnLCAn
L2pzb24vYnVpbGRlcnMvb3RoZXIlMjBidWlsZGVyL3BlbmRpbmdCdWlsZHMnLCBbXSk7CisgICAg
ICAgICAgICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1sxMV0sICdHRVQnLCAnL2pz
b24vYnVpbGRlcnMvb3RoZXIlMjBidWlsZGVyL3BlbmRpbmdCdWlsZHMnLCBbXSk7CiAgICAgICAg
ICAgICByZXR1cm4gTW9ja1JlbW90ZUFQSS53YWl0Rm9yUmVxdWVzdCgpOwogICAgICAgICB9KS50
aGVuKCgpID0+IHsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXF1ZXN0cy5sZW5ndGgsIDEz
KTsKLSAgICAgICAgICAgIGFzc2VydEFuZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3RzWzEwXSwgJ0dF
VCcsICcvanNvbi9idWlsZGVycy9zb21lJTIwdGVzdGVyL2J1aWxkcy8/c2VsZWN0PS0xJnNlbGVj
dD0tMicsIHt9KTsKLSAgICAgICAgICAgIGFzc2VydEFuZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3Rz
WzExXSwgJ0dFVCcsICcvanNvbi9idWlsZGVycy9zb21lJTIwYnVpbGRlci9idWlsZHMvP3NlbGVj
dD0tMSZzZWxlY3Q9LTInLCB7CisgICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVxdWVzdHMubGVu
Z3RoLCAxNSk7CisgICAgICAgICAgICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1sx
Ml0sICdHRVQnLCAnL2pzb24vYnVpbGRlcnMvc29tZSUyMHRlc3Rlci9idWlsZHMvP3NlbGVjdD0t
MSZzZWxlY3Q9LTInLCB7fSk7CisgICAgICAgICAgICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVzdChy
ZXF1ZXN0c1sxM10sICdHRVQnLCAnL2pzb24vYnVpbGRlcnMvc29tZSUyMGJ1aWxkZXIvYnVpbGRz
Lz9zZWxlY3Q9LTEmc2VsZWN0PS0yJywgewogICAgICAgICAgICAgICAgIFstMV06IE1vY2tEYXRh
LnJ1bm5pbmdCdWlsZCh7YnVpbGRlcjogJ3NvbWUgYnVpbGRlcicsIGJ1aWxkUmVxdWVzdElkOiAx
fSkKICAgICAgICAgICAgIH0pOwotICAgICAgICAgICAgYXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3Qo
cmVxdWVzdHNbMTJdLCAnR0VUJywgJy9qc29uL2J1aWxkZXJzL290aGVyJTIwYnVpbGRlci9idWls
ZHMvP3NlbGVjdD0tMSZzZWxlY3Q9LTInLCB7fSk7CisgICAgICAgICAgICBhc3NlcnRBbmRSZXNv
bHZlUmVxdWVzdChyZXF1ZXN0c1sxNF0sICdHRVQnLCAnL2pzb24vYnVpbGRlcnMvb3RoZXIlMjBi
dWlsZGVyL2J1aWxkcy8/c2VsZWN0PS0xJnNlbGVjdD0tMicsIHt9KTsKICAgICAgICAgICAgIHJl
dHVybiBzeW5jUHJvbWlzZTsKICAgICAgICAgfSkudGhlbigoKSA9PiB7CiAgICAgICAgICAgICBy
ZXR1cm4gVGVzdEdyb3VwLmZldGNoRm9yVGFzayh0YXNrSWQsIHRydWUpOwpAQCAtMTYyNyw0MCAr
MTY0Miw0MSBAQCBkZXNjcmliZSgnc3luYy1idWlsZGJvdCcsIGZ1bmN0aW9uICgpIHsKIAogICAg
ICAgICAgICAgTW9ja1JlbW90ZUFQSS5yZXNldCgpOwogICAgICAgICAgICAgc3luY1Byb21pc2Ug
PSB0cmlnZ2VyYWJsZS5pbml0U3luY2VycygpLnRoZW4oKCkgPT4gdHJpZ2dlcmFibGUuc3luY09u
Y2UoKSk7CisgICAgICAgICAgICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1swXSwg
J0dFVCcsIE1vY2tEYXRhLmJ1aWxkYm90QnVpbGRlcnNVUkwoKSwgTW9ja0RhdGEubW9ja0J1aWxk
Ym90QnVpbGRlcnMoKSk7CiAgICAgICAgICAgICByZXR1cm4gTW9ja1JlbW90ZUFQSS53YWl0Rm9y
UmVxdWVzdCgpOwogICAgICAgICB9KS50aGVuKCgpID0+IHsKLSAgICAgICAgICAgIGFzc2VydC5l
cXVhbChyZXF1ZXN0cy5sZW5ndGgsIDMpOwotICAgICAgICAgICAgYXNzZXJ0QW5kUmVzb2x2ZVJl
cXVlc3QocmVxdWVzdHNbMF0sICdHRVQnLCAnL2pzb24vYnVpbGRlcnMvc29tZSUyMHRlc3Rlci9w
ZW5kaW5nQnVpbGRzJywgW10pOwotICAgICAgICAgICAgYXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3Qo
cmVxdWVzdHNbMV0sICdHRVQnLCAnL2pzb24vYnVpbGRlcnMvc29tZSUyMGJ1aWxkZXIvcGVuZGlu
Z0J1aWxkcycsIFtdKTsKLSAgICAgICAgICAgIGFzc2VydEFuZFJlc29sdmVSZXF1ZXN0KHJlcXVl
c3RzWzJdLCAnR0VUJywgJy9qc29uL2J1aWxkZXJzL290aGVyJTIwYnVpbGRlci9wZW5kaW5nQnVp
bGRzJywgW10pOworICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlcXVlc3RzLmxlbmd0aCwgNCk7
CisgICAgICAgICAgICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1sxXSwgJ0dFVCcs
ICcvanNvbi9idWlsZGVycy9zb21lJTIwdGVzdGVyL3BlbmRpbmdCdWlsZHMnLCBbXSk7CisgICAg
ICAgICAgICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1syXSwgJ0dFVCcsICcvanNv
bi9idWlsZGVycy9zb21lJTIwYnVpbGRlci9wZW5kaW5nQnVpbGRzJywgW10pOworICAgICAgICAg
ICAgYXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNbM10sICdHRVQnLCAnL2pzb24vYnVp
bGRlcnMvb3RoZXIlMjBidWlsZGVyL3BlbmRpbmdCdWlsZHMnLCBbXSk7CiAgICAgICAgICAgICBy
ZXR1cm4gTW9ja1JlbW90ZUFQSS53YWl0Rm9yUmVxdWVzdCgpOwogICAgICAgICB9KS50aGVuKCgp
ID0+IHsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXF1ZXN0cy5sZW5ndGgsIDYpOwotICAg
ICAgICAgICAgYXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNbM10sICdHRVQnLCAnL2pz
b24vYnVpbGRlcnMvc29tZSUyMHRlc3Rlci9idWlsZHMvP3NlbGVjdD0tMSZzZWxlY3Q9LTInLCB7
fSk7Ci0gICAgICAgICAgICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1s0XSwgJ0dF
VCcsICcvanNvbi9idWlsZGVycy9zb21lJTIwYnVpbGRlci9idWlsZHMvP3NlbGVjdD0tMSZzZWxl
Y3Q9LTInLCB7CisgICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVxdWVzdHMubGVuZ3RoLCA3KTsK
KyAgICAgICAgICAgIGFzc2VydEFuZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3RzWzRdLCAnR0VUJywg
Jy9qc29uL2J1aWxkZXJzL3NvbWUlMjB0ZXN0ZXIvYnVpbGRzLz9zZWxlY3Q9LTEmc2VsZWN0PS0y
Jywge30pOworICAgICAgICAgICAgYXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNbNV0s
ICdHRVQnLCAnL2pzb24vYnVpbGRlcnMvc29tZSUyMGJ1aWxkZXIvYnVpbGRzLz9zZWxlY3Q9LTEm
c2VsZWN0PS0yJywgewogICAgICAgICAgICAgICAgIFstMV06IE1vY2tEYXRhLmZpbmlzaGVkQnVp
bGQoe2J1aWxkZXI6ICdzb21lIGJ1aWxkZXInLCBidWlsZFJlcXVlc3RJZDogMX0pCiAgICAgICAg
ICAgICB9KTsKLSAgICAgICAgICAgIGFzc2VydEFuZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3RzWzVd
LCAnR0VUJywgJy9qc29uL2J1aWxkZXJzL290aGVyJTIwYnVpbGRlci9idWlsZHMvP3NlbGVjdD0t
MSZzZWxlY3Q9LTInLCB7fSk7CisgICAgICAgICAgICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVzdChy
ZXF1ZXN0c1s2XSwgJ0dFVCcsICcvanNvbi9idWlsZGVycy9vdGhlciUyMGJ1aWxkZXIvYnVpbGRz
Lz9zZWxlY3Q9LTEmc2VsZWN0PS0yJywge30pOwogICAgICAgICAgICAgcmV0dXJuIE1vY2tSZW1v
dGVBUEkud2FpdEZvclJlcXVlc3QoKTsKICAgICAgICAgfSkudGhlbigoKSA9PiB7Ci0gICAgICAg
ICAgICBhc3NlcnQuZXF1YWwocmVxdWVzdHMubGVuZ3RoLCA3KTsKLSAgICAgICAgICAgIGFzc2Vy
dEFuZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3RzWzZdLCAnUE9TVCcsICcvYnVpbGRlcnMvc29tZSUy
MGJ1aWxkZXIvZm9yY2UnLCAnT0snKTsKLSAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwocmVx
dWVzdHNbNl0uZGF0YSwgeyd3ayc6ICcxOTI3MzYnLCAnYnVpbGQtcmVxdWVzdC1pZCc6ICcyJywg
J2ZvcmNlc2NoZWR1bGVyJzogJ2ZvcmNlLWFiLWJ1aWxkcycsICdvd25lZC1jb21taXRzJzogYHsi
V2ViS2l0IjpbeyJyZXZpc2lvbiI6Im93bmVkLWpzYy05MTkxIiwicmVwb3NpdG9yeSI6IkphdmFT
Y3JpcHRDb3JlIiwib3duZXJSZXZpc2lvbiI6IjE5MjczNiJ9XX1gfSk7CisgICAgICAgICAgICBh
c3NlcnQuZXF1YWwocmVxdWVzdHMubGVuZ3RoLCA4KTsKKyAgICAgICAgICAgIGFzc2VydEFuZFJl
c29sdmVSZXF1ZXN0KHJlcXVlc3RzWzddLCAnUE9TVCcsICcvYnVpbGRlcnMvc29tZSUyMGJ1aWxk
ZXIvZm9yY2UnLCAnT0snKTsKKyAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwocmVxdWVzdHNb
N10uZGF0YSwgeyd3ayc6ICcxOTI3MzYnLCAnYnVpbGQtcmVxdWVzdC1pZCc6ICcyJywgJ2ZvcmNl
c2NoZWR1bGVyJzogJ2ZvcmNlLWFiLWJ1aWxkcycsICdvd25lZC1jb21taXRzJzogYHsiV2ViS2l0
IjpbeyJyZXZpc2lvbiI6Im93bmVkLWpzYy05MTkxIiwicmVwb3NpdG9yeSI6IkphdmFTY3JpcHRD
b3JlIiwib3duZXJSZXZpc2lvbiI6IjE5MjczNiJ9XX1gfSk7CiAgICAgICAgICAgICByZXR1cm4g
TW9ja1JlbW90ZUFQSS53YWl0Rm9yUmVxdWVzdCgpOwogICAgICAgICB9KS50aGVuKCgpID0+IHsK
LSAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXF1ZXN0cy5sZW5ndGgsIDEwKTsKLSAgICAgICAg
ICAgIGFzc2VydEFuZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3RzWzddLCAnR0VUJywgJy9qc29uL2J1
aWxkZXJzL3NvbWUlMjB0ZXN0ZXIvcGVuZGluZ0J1aWxkcycsIFtdKTsKLSAgICAgICAgICAgIGFz
c2VydEFuZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3RzWzhdLCAnR0VUJywgJy9qc29uL2J1aWxkZXJz
L3NvbWUlMjBidWlsZGVyL3BlbmRpbmdCdWlsZHMnLCBbXSk7Ci0gICAgICAgICAgICBhc3NlcnRB
bmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1s5XSwgJ0dFVCcsICcvanNvbi9idWlsZGVycy9vdGhl
ciUyMGJ1aWxkZXIvcGVuZGluZ0J1aWxkcycsIFtdKTsKKyAgICAgICAgICAgIGFzc2VydC5lcXVh
bChyZXF1ZXN0cy5sZW5ndGgsIDExKTsKKyAgICAgICAgICAgIGFzc2VydEFuZFJlc29sdmVSZXF1
ZXN0KHJlcXVlc3RzWzhdLCAnR0VUJywgJy9qc29uL2J1aWxkZXJzL3NvbWUlMjB0ZXN0ZXIvcGVu
ZGluZ0J1aWxkcycsIFtdKTsKKyAgICAgICAgICAgIGFzc2VydEFuZFJlc29sdmVSZXF1ZXN0KHJl
cXVlc3RzWzldLCAnR0VUJywgJy9qc29uL2J1aWxkZXJzL3NvbWUlMjBidWlsZGVyL3BlbmRpbmdC
dWlsZHMnLCBbXSk7CisgICAgICAgICAgICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0
c1sxMF0sICdHRVQnLCAnL2pzb24vYnVpbGRlcnMvb3RoZXIlMjBidWlsZGVyL3BlbmRpbmdCdWls
ZHMnLCBbXSk7CiAgICAgICAgICAgICByZXR1cm4gTW9ja1JlbW90ZUFQSS53YWl0Rm9yUmVxdWVz
dCgpOwogICAgICAgICB9KS50aGVuKCgpID0+IHsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChy
ZXF1ZXN0cy5sZW5ndGgsIDEzKTsKLSAgICAgICAgICAgIGFzc2VydEFuZFJlc29sdmVSZXF1ZXN0
KHJlcXVlc3RzWzEwXSwgJ0dFVCcsICcvanNvbi9idWlsZGVycy9zb21lJTIwdGVzdGVyL2J1aWxk
cy8/c2VsZWN0PS0xJnNlbGVjdD0tMicsIHt9KTsKLSAgICAgICAgICAgIGFzc2VydEFuZFJlc29s
dmVSZXF1ZXN0KHJlcXVlc3RzWzExXSwgJ0dFVCcsICcvanNvbi9idWlsZGVycy9zb21lJTIwYnVp
bGRlci9idWlsZHMvP3NlbGVjdD0tMSZzZWxlY3Q9LTInLCB7CisgICAgICAgICAgICBhc3NlcnQu
ZXF1YWwocmVxdWVzdHMubGVuZ3RoLCAxNCk7CisgICAgICAgICAgICBhc3NlcnRBbmRSZXNvbHZl
UmVxdWVzdChyZXF1ZXN0c1sxMV0sICdHRVQnLCAnL2pzb24vYnVpbGRlcnMvc29tZSUyMHRlc3Rl
ci9idWlsZHMvP3NlbGVjdD0tMSZzZWxlY3Q9LTInLCB7fSk7CisgICAgICAgICAgICBhc3NlcnRB
bmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1sxMl0sICdHRVQnLCAnL2pzb24vYnVpbGRlcnMvc29t
ZSUyMGJ1aWxkZXIvYnVpbGRzLz9zZWxlY3Q9LTEmc2VsZWN0PS0yJywgewogICAgICAgICAgICAg
ICAgIFstMV06IE1vY2tEYXRhLnJ1bm5pbmdCdWlsZCh7YnVpbGRlcjogJ3NvbWUgYnVpbGRlcics
IGJ1aWxkUmVxdWVzdElkOiAyfSksCiAgICAgICAgICAgICAgICAgWy0yXTogTW9ja0RhdGEuZmlu
aXNoZWRCdWlsZCh7YnVpbGRlcjogJ3NvbWUgYnVpbGRlcicsIGJ1aWxkUmVxdWVzdElkOiAxfSks
CiAgICAgICAgICAgICB9KTsKLSAgICAgICAgICAgIGFzc2VydEFuZFJlc29sdmVSZXF1ZXN0KHJl
cXVlc3RzWzEyXSwgJ0dFVCcsICcvanNvbi9idWlsZGVycy9vdGhlciUyMGJ1aWxkZXIvYnVpbGRz
Lz9zZWxlY3Q9LTEmc2VsZWN0PS0yJywge30pOworICAgICAgICAgICAgYXNzZXJ0QW5kUmVzb2x2
ZVJlcXVlc3QocmVxdWVzdHNbMTNdLCAnR0VUJywgJy9qc29uL2J1aWxkZXJzL290aGVyJTIwYnVp
bGRlci9idWlsZHMvP3NlbGVjdD0tMSZzZWxlY3Q9LTInLCB7fSk7CiAgICAgICAgICAgICByZXR1
cm4gc3luY1Byb21pc2U7CiAgICAgICAgIH0pLnRoZW4oKCkgPT4gewogICAgICAgICAgICAgcmV0
dXJuIFRlc3RHcm91cC5mZXRjaEZvclRhc2sodGFza0lkLCB0cnVlKTsKSW5kZXg6IFdlYnNpdGVz
L3BlcmYud2Via2l0Lm9yZy9zZXJ2ZXItdGVzdHMvcmVzb3VyY2VzL21vY2stZGF0YS5qcwo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBXZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvc2VydmVyLXRlc3RzL3Jlc291cmNl
cy9tb2NrLWRhdGEuanMJKHJldmlzaW9uIDIyNDg4NykKKysrIFdlYnNpdGVzL3BlcmYud2Via2l0
Lm9yZy9zZXJ2ZXItdGVzdHMvcmVzb3VyY2VzL21vY2stZGF0YS5qcwkod29ya2luZyBjb3B5KQpA
QCAtMTcsNiArMTcsOCBAQCBNb2NrRGF0YSA9IHsKICAgICBqc2NSZXBvc2l0b3J5SWQoKSB7IHJl
dHVybiAyMjI7IH0sCiAgICAgZ2l0V2Via2l0UmVwb3NpdG9yeUlkKCkgeyByZXR1cm4gMTExOyB9
LAogICAgIHNoYXJlZFJlcG9zaXRvcnlJZCgpIHsgcmV0dXJuIDE0OyB9LAorICAgIGJ1aWxkYm90
QnVpbGRlcnNVUkwoKSB7cmV0dXJuICcvanNvbi9idWlsZGVycyd9LAorICAgIGJ1aWxkYm90MDlC
dWlsZGVyc1VSTCgpIHtyZXR1cm4gJy9hcGkvdjIvYnVpbGRlcnMnfSwKICAgICBhZGRNb2NrQ29u
ZmlndXJhdGlvbjogZnVuY3Rpb24gKGRiKQogICAgIHsKICAgICAgICAgcmV0dXJuIFByb21pc2Uu
YWxsKFsKQEAgLTIyMCw2ICsyMjIsNjAgQEAgTW9ja0RhdGEgPSB7CiAgICAgICAgICAgICBdCiAg
ICAgICAgIH0KICAgICB9LAorICAgIG1vY2tCdWlsZGJvdEJ1aWxkZXJzOiBmdW5jdGlvbiAoKQor
ICAgIHsKKyAgICAgICAgcmV0dXJuIHsKKyAgICAgICAgICAgICJzb21lIGJ1aWxkZXIiOiB7Cisg
ICAgICAgICAgICAgICAgInNsYXZlcyI6IFsgInNvbWUtc2xhdmUtMSIgXQorICAgICAgICAgICAg
fSwKKyAgICAgICAgICAgICJzb21lLWJ1aWxkZXItMSI6IHsKKyAgICAgICAgICAgICAgICAic2xh
dmVzIjogWyAic29tZS1zbGF2ZS0yIiBdCisgICAgICAgICAgICB9LAorICAgICAgICAgICAgInNv
bWUgYnVpbGRlciAyIjogeworICAgICAgICAgICAgICAgICJzbGF2ZXMiOiBbICJzb21lLXNsYXZl
LTMiIF0KKyAgICAgICAgICAgIH0sCisgICAgICAgICAgICAib3RoZXIgYnVpbGRlciI6IHsKKyAg
ICAgICAgICAgICAgICAic2xhdmVzIjogWyAic29tZS1zbGF2ZS00IiBdCisgICAgICAgICAgICB9
LAorICAgICAgICAgICAgInNvbWUgdGVzdGVyIjogeworICAgICAgICAgICAgICAgICJzbGF2ZXMi
OiBbICJzb21lLXNsYXZlLTUiIF0KKyAgICAgICAgICAgIH0sCisgICAgICAgICAgICAiYW5vdGhl
ciB0ZXN0ZXIiOiB7CisgICAgICAgICAgICAgICAgInNsYXZlcyI6IFsgInNvbWUtc2xhdmUtNiIg
XQorICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgfSwKKyAgICBtb2NrQnVpbGRib3QwOUJ1
aWxkZXJzOiBmdW5jdGlvbiAoKQorICAgIHsKKyAgICAgICAgcmV0dXJuIHsKKyAgICAgICAgICAg
ICJidWlsZGVycyI6IFsKKyAgICAgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgICAgICJi
dWlsZGVyaWQiOiAxLAorICAgICAgICAgICAgICAgICAgICAibmFtZSI6ICJzb21lIGJ1aWxkZXIi
LAorICAgICAgICAgICAgICAgIH0sCisgICAgICAgICAgICAgICAgeworICAgICAgICAgICAgICAg
ICAgICAiYnVpbGRlcmlkIjogMiwKKyAgICAgICAgICAgICAgICAgICAgIm5hbWUiOiAic29tZS1i
dWlsZGVyLTEiLAorICAgICAgICAgICAgICAgIH0sCisgICAgICAgICAgICAgICAgeworICAgICAg
ICAgICAgICAgICAgICAiYnVpbGRlcmlkIjogMywKKyAgICAgICAgICAgICAgICAgICAgIm5hbWUi
OiAic29tZSBidWlsZGVyIDIiLAorICAgICAgICAgICAgICAgIH0sCisgICAgICAgICAgICAgICAg
eworICAgICAgICAgICAgICAgICAgICAiYnVpbGRlcmlkIjogNCwKKyAgICAgICAgICAgICAgICAg
ICAgIm5hbWUiOiAib3RoZXIgYnVpbGRlciIsCisgICAgICAgICAgICAgICAgfSwKKyAgICAgICAg
ICAgICAgICB7CisgICAgICAgICAgICAgICAgICAgICJidWlsZGVyaWQiOiA1LAorICAgICAgICAg
ICAgICAgICAgICAibmFtZSI6ICJzb21lIHRlc3RlciIsCisgICAgICAgICAgICAgICAgfSwKKyAg
ICAgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgICAgICJidWlsZGVyaWQiOiA2LAorICAg
ICAgICAgICAgICAgICAgICAibmFtZSI6ICJhbm90aGVyIHRlc3RlciIsCisgICAgICAgICAgICAg
ICAgfQorICAgICAgICAgICAgXQorICAgICAgICB9CisgICAgfSwKICAgICBwZW5kaW5nQnVpbGQo
b3B0aW9ucykKICAgICB7CiAgICAgICAgIG9wdGlvbnMgPSBvcHRpb25zIHx8IHt9OwpJbmRleDog
V2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL3Rvb2xzL2pzL2J1aWxkYm90LXN5bmNlci5qcwo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBXZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvdG9vbHMvanMvYnVpbGRib3Qtc3lu
Y2VyLmpzCShyZXZpc2lvbiAyMjQ4ODcpCisrKyBXZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvdG9v
bHMvanMvYnVpbGRib3Qtc3luY2VyLmpzCSh3b3JraW5nIGNvcHkpCkBAIC0zMTcsOCArMzE3LDkg
QEAgY2xhc3MgQnVpbGRib3RTeW5jZXIgewogICAgICAgICByZXR1cm4gcmV2aXNpb25TZXQ7CiAg
ICAgfQogCi0gICAgc3RhdGljIF9sb2FkQ29uZmlnKHJlbW90ZSwgY29uZmlnKQorICAgIHN0YXRp
YyBfbG9hZENvbmZpZyhyZW1vdGUsIGNvbmZpZywgYnVpbGRlck5hbWVUb0lETWFwKQogICAgIHsK
KyAgICAgICAgYXNzZXJ0KGJ1aWxkZXJOYW1lVG9JRE1hcCk7CiAgICAgICAgIGNvbnN0IHR5cGVz
ID0gY29uZmlnWyd0eXBlcyddIHx8IHt9OwogICAgICAgICBjb25zdCBidWlsZGVycyA9IGNvbmZp
Z1snYnVpbGRlcnMnXSB8fCB7fTsKIApAQCAtMzQ4LDcgKzM0OSw3IEBAIGNsYXNzIEJ1aWxkYm90
U3luY2VyIHsKICAgICAgICAgfQogCiAgICAgICAgIGFzc2VydChBcnJheS5pc0FycmF5KGNvbmZp
Z1sndGVzdENvbmZpZ3VyYXRpb25zJ10pLCBgVGhlIHRlc3QgY29uZmlndXJhdGlvbiBtdXN0IGJl
IGFuIGFycmF5YCk7Ci0gICAgICAgIHRoaXMuX3Jlc29sdmVCdWlsZGVyc1dpdGhQbGF0Zm9ybXMo
J3Rlc3QnLCBjb25maWdbJ3Rlc3RDb25maWd1cmF0aW9ucyddLCBidWlsZGVycykuZm9yRWFjaCgo
ZW50cnksIGNvbmZpZ3VyYXRpb25JbmRleCkgPT4geworICAgICAgICB0aGlzLl9yZXNvbHZlQnVp
bGRlcnNXaXRoUGxhdGZvcm1zKCd0ZXN0JywgY29uZmlnWyd0ZXN0Q29uZmlndXJhdGlvbnMnXSwg
YnVpbGRlcnMsIGJ1aWxkZXJOYW1lVG9JRE1hcCkuZm9yRWFjaCgoZW50cnksIGNvbmZpZ3VyYXRp
b25JbmRleCkgPT4gewogICAgICAgICAgICAgYXNzZXJ0KEFycmF5LmlzQXJyYXkoZW50cnlbJ3R5
cGVzJ10pLCBgVGhlIHRlc3QgY29uZmlndXJhdGlvbiAke2NvbmZpZ3VyYXRpb25JbmRleH0gZG9l
cyBub3Qgc3BlY2lmeSAidHlwZXMiIGFzIGFuIGFycmF5YCk7CiAgICAgICAgICAgICBmb3IgKGNv
bnN0IHR5cGUgb2YgZW50cnlbJ3R5cGVzJ10pIHsKICAgICAgICAgICAgICAgICBjb25zdCB0eXBl
Q29uZmlnID0gdGhpcy5fdmFsaWRhdGVBbmRNZXJnZUNvbmZpZyh7fSwgZW50cnkuYnVpbGRlckNv
bmZpZyk7CkBAIC0zNjYsNyArMzY3LDcgQEAgY2xhc3MgQnVpbGRib3RTeW5jZXIgewogICAgICAg
ICBjb25zdCBidWlsZENvbmZpZ3VyYXRpb25zID0gY29uZmlnWydidWlsZENvbmZpZ3VyYXRpb25z
J107CiAgICAgICAgIGlmIChidWlsZENvbmZpZ3VyYXRpb25zKSB7CiAgICAgICAgICAgICBhc3Nl
cnQoQXJyYXkuaXNBcnJheShidWlsZENvbmZpZ3VyYXRpb25zKSwgYFRoZSB0ZXN0IGNvbmZpZ3Vy
YXRpb24gbXVzdCBiZSBhbiBhcnJheWApOwotICAgICAgICAgICAgdGhpcy5fcmVzb2x2ZUJ1aWxk
ZXJzV2l0aFBsYXRmb3JtcygndGVzdCcsIGJ1aWxkQ29uZmlndXJhdGlvbnMsIGJ1aWxkZXJzKS5m
b3JFYWNoKChlbnRyeSwgY29uZmlndXJhdGlvbkluZGV4KSA9PiB7CisgICAgICAgICAgICB0aGlz
Ll9yZXNvbHZlQnVpbGRlcnNXaXRoUGxhdGZvcm1zKCd0ZXN0JywgYnVpbGRDb25maWd1cmF0aW9u
cywgYnVpbGRlcnMsIGJ1aWxkZXJOYW1lVG9JRE1hcCkuZm9yRWFjaCgoZW50cnksIGNvbmZpZ3Vy
YXRpb25JbmRleCkgPT4gewogICAgICAgICAgICAgICAgIGNvbnN0IHN5bmNlciA9IGVuc3VyZUJ1
aWxkYm90U3luY2VyKGVudHJ5LmJ1aWxkZXJDb25maWcpOwogICAgICAgICAgICAgICAgIGFzc2Vy
dCghc3luY2VyLmlzVGVzdGVyKCksIGBUaGUgYnVpbGQgY29uZmlndXJhdGlvbiAke2NvbmZpZ3Vy
YXRpb25JbmRleH0gdXNlcyBhIHRlc3RlcjogJHtzeW5jZXIuYnVpbGRlck5hbWUoKX1gKTsKICAg
ICAgICAgICAgICAgICBzeW5jZXIuYWRkQnVpbGRDb25maWd1cmF0aW9uKGVudHJ5LnBsYXRmb3Jt
LCBlbnRyeS5idWlsZGVyQ29uZmlnLnByb3BlcnRpZXMpOwpAQCAtMzc2LDcgKzM3Nyw3IEBAIGNs
YXNzIEJ1aWxkYm90U3luY2VyIHsKICAgICAgICAgcmV0dXJuIEFycmF5LmZyb20oc3luY2VyQnlC
dWlsZGVyLnZhbHVlcygpKTsKICAgICB9CiAKLSAgICBzdGF0aWMgX3Jlc29sdmVCdWlsZGVyc1dp
dGhQbGF0Zm9ybXMoY29uZmlndXJhdGlvblR5cGUsIGNvbmZpZ3VyYXRpb25MaXN0LCBidWlsZGVy
cykKKyAgICBzdGF0aWMgX3Jlc29sdmVCdWlsZGVyc1dpdGhQbGF0Zm9ybXMoY29uZmlndXJhdGlv
blR5cGUsIGNvbmZpZ3VyYXRpb25MaXN0LCBidWlsZGVycywgYnVpbGRlck5hbWVUb0lETWFwKQog
ICAgIHsKICAgICAgICAgY29uc3QgcmVzb2x2ZWRDb25maWd1cmF0aW9ucyA9IFtdOwogICAgICAg
ICBsZXQgY29uZmlndXJhdGlvbkluZGV4ID0gMDsKQEAgLTM4OCw2ICszODksOCBAQCBjbGFzcyBC
dWlsZGJvdFN5bmNlciB7CiAgICAgICAgICAgICAgICAgY29uc3QgbWF0Y2hpbmdCdWlsZGVyID0g
YnVpbGRlcnNbYnVpbGRlcktleV07CiAgICAgICAgICAgICAgICAgYXNzZXJ0KG1hdGNoaW5nQnVp
bGRlciwgYCIke2J1aWxkZXJLZXl9IiBpcyBub3QgYSB2YWxpZCBidWlsZGVyIGluIHRoZSBjb25m
aWd1cmF0aW9uYCk7CiAgICAgICAgICAgICAgICAgYXNzZXJ0KCdidWlsZGVyJyBpbiBtYXRjaGlu
Z0J1aWxkZXIsIGBCdWlsZGVyICR7YnVpbGRlcktleX0gZG9lcyBub3Qgc3BlY2lmeSBhIGJ1aWxk
Ym90IGJ1aWxkZXIgbmFtZWApOworICAgICAgICAgICAgICAgIGFzc2VydChtYXRjaGluZ0J1aWxk
ZXIuYnVpbGRlciBpbiBidWlsZGVyTmFtZVRvSURNYXAsIGBCdWlsZGVyICR7bWF0Y2hpbmdCdWls
ZGVyLmJ1aWxkZXJ9IG5vdCBmb3VuZCBpbiBCdWlsZGJvdCBjb25maWd1cmF0aW9uLmApOworICAg
ICAgICAgICAgICAgIG1hdGNoaW5nQnVpbGRlclsnYnVpbGRlcklEJ10gPSBidWlsZGVyTmFtZVRv
SURNYXBbbWF0Y2hpbmdCdWlsZGVyLmJ1aWxkZXJdOwogICAgICAgICAgICAgICAgIGNvbnN0IGJ1
aWxkZXJDb25maWcgPSB0aGlzLl92YWxpZGF0ZUFuZE1lcmdlQ29uZmlnKHt9LCBtYXRjaGluZ0J1
aWxkZXIpOwogICAgICAgICAgICAgICAgIGZvciAoY29uc3QgcGxhdGZvcm1OYW1lIG9mIGVudHJ5
WydwbGF0Zm9ybXMnXSkgewogICAgICAgICAgICAgICAgICAgICBjb25zdCBwbGF0Zm9ybSA9IFBs
YXRmb3JtLmZpbmRCeU5hbWUocGxhdGZvcm1OYW1lKTsKQEAgLTU2NSw2ICs1NjgsMTAgQEAgY2xh
c3MgQnVpbGRib3RTeW5jZXIgewogICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbCh0eXBlb2Yo
dmFsdWUpLCAnc3RyaW5nJywgYCR7bmFtZX0gc2hvdWxkIGJlIG9mIHN0cmluZyB0eXBlYCk7CiAg
ICAgICAgICAgICAgICAgY29uZmlnW25hbWVdID0gdmFsdWU7CiAgICAgICAgICAgICAgICAgYnJl
YWs7CisgICAgICAgICAgICBjYXNlICdidWlsZGVySUQnOgorICAgICAgICAgICAgICAgIGFzc2Vy
dCh2YWx1ZSwgJ2J1aWxkZXJJRCBzaG91bGQgbm90IGJlIHVuZGVmaW5lZC4nKTsKKyAgICAgICAg
ICAgICAgICBjb25maWdbbmFtZV0gPSB2YWx1ZTsKKyAgICAgICAgICAgICAgICBicmVhazsKICAg
ICAgICAgICAgIGRlZmF1bHQ6CiAgICAgICAgICAgICAgICAgYXNzZXJ0KGZhbHNlLCBgVW5yZWNv
Z25pemVkIHBhcmFtZXRlciAiJHtuYW1lfSJgKTsKICAgICAgICAgICAgIH0KSW5kZXg6IFdlYnNp
dGVzL3BlcmYud2Via2l0Lm9yZy90b29scy9qcy9idWlsZGJvdC10cmlnZ2VyYWJsZS5qcwo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBXZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvdG9vbHMvanMvYnVpbGRib3QtdHJp
Z2dlcmFibGUuanMJKHJldmlzaW9uIDIyNDg4NykKKysrIFdlYnNpdGVzL3BlcmYud2Via2l0Lm9y
Zy90b29scy9qcy9idWlsZGJvdC10cmlnZ2VyYWJsZS5qcwkod29ya2luZyBjb3B5KQpAQCAtMjcs
MTEgKzI3LDM0IEBAIGNsYXNzIEJ1aWxkYm90VHJpZ2dlcmFibGUgewogICAgICAgICB0aGlzLl9s
b2dnZXIgPSBsb2dnZXIgfHwge2xvZzogKCkgPT4geyB9LCBlcnJvcjogKCkgPT4geyB9fTsKICAg
ICB9CiAKKyAgICAvLyBUaGlzIG1ldGhvZCBoYW5kbGVzIEJ1aWxkYm90IDAuOSBkYXRhIGZvcm1h
dCAKKyAgICBnZXRCdWlsZGVyTmFtZVRvSURNYXAoKSB7CisgICAgICAgIHJldHVybiB0aGlzLl9i
dWlsZGJvdFJlbW90ZS5nZXRKU09OKCIvYXBpL3YyL2J1aWxkZXJzIikudGhlbigoY29udGVudCkg
PT4geworICAgICAgICAgICAgYXNzZXJ0KGNvbnRlbnQuYnVpbGRlcnMgaW5zdGFuY2VvZiBBcnJh
eSk7CisKKyAgICAgICAgICAgIGNvbnN0IGJ1aWxkZXJOYW1lVG9JRE1hcCA9IHt9OyAKKyAgICAg
ICAgICAgIGZvciAoY29uc3QgYnVpbGRlciBvZiBjb250ZW50LmJ1aWxkZXJzKQorICAgICAgICAg
ICAgICAgIGJ1aWxkZXJOYW1lVG9JRE1hcFtidWlsZGVyLm5hbWVdID0gYnVpbGRlci5idWlsZGVy
aWQ7CisKKyAgICAgICAgICAgIHJldHVybiBidWlsZGVyTmFtZVRvSURNYXA7CisgICAgICAgIH0p
OworICAgIH0KKworICAgIC8vIFRoaXMgbWV0aG9kIGhhbmRsZXMgQnVpbGRib3QgMC44IGRhdGEg
Zm9ybWF0IAorICAgIGdldEJ1aWxkZXJOYW1lVG9JRE1hcERlcHJlY2F0ZWQoKSB7CisgICAgICAg
IHJldHVybiB0aGlzLl9idWlsZGJvdFJlbW90ZS5nZXRKU09OKCIvanNvbi9idWlsZGVycyIpLnRo
ZW4oKGNvbnRlbnQpID0+IHsKKyAgICAgICAgICAgIGNvbnN0IGJ1aWxkZXJOYW1lVG9JRE1hcCA9
IHt9OworICAgICAgICAgICAgZm9yIChsZXQgYnVpbGRlciBpbiBjb250ZW50KSB7CisgICAgICAg
ICAgICAgICAgYnVpbGRlck5hbWVUb0lETWFwW2J1aWxkZXJdID0gYnVpbGRlcjsKKyAgICAgICAg
ICAgIH0KKyAgICAgICAgICAgIHJldHVybiBidWlsZGVyTmFtZVRvSURNYXA7CisgICAgICAgIH0p
OworICAgIH0KKwogICAgIGluaXRTeW5jZXJzKCkKICAgICB7Ci0gICAgICAgIHJldHVybiBuZXcg
UHJvbWlzZSgocmVzb2x2ZSwgcmVqZWN0KSA9PiB7Ci0gICAgICAgICAgICB0aGlzLl9zeW5jZXJz
ID0gQnVpbGRib3RTeW5jZXIuX2xvYWRDb25maWcodGhpcy5fYnVpbGRib3RSZW1vdGUsIHRoaXMu
X2NvbmZpZyk7Ci0gICAgICAgICAgICBzZXRUaW1lb3V0KHJlc29sdmUsIDApOworICAgICAgICBy
ZXR1cm4gdGhpcy5nZXRCdWlsZGVyTmFtZVRvSURNYXBEZXByZWNhdGVkKCkudGhlbigoYnVpbGRl
ck5hbWVUb0lETWFwKSA9PiB7CisgICAgICAgICAgICB0aGlzLl9zeW5jZXJzID0gQnVpbGRib3RT
eW5jZXIuX2xvYWRDb25maWcodGhpcy5fYnVpbGRib3RSZW1vdGUsIHRoaXMuX2NvbmZpZywgYnVp
bGRlck5hbWVUb0lETWFwKTsKICAgICAgICAgfSk7CiAgICAgfQogCkluZGV4OiBXZWJzaXRlcy9w
ZXJmLndlYmtpdC5vcmcvdW5pdC10ZXN0cy9idWlsZGJvdC1zeW5jZXItdGVzdHMuanMKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL3VuaXQtdGVzdHMvYnVpbGRib3Qtc3lu
Y2VyLXRlc3RzLmpzCShyZXZpc2lvbiAyMjQ4ODcpCisrKyBXZWJzaXRlcy9wZXJmLndlYmtpdC5v
cmcvdW5pdC10ZXN0cy9idWlsZGJvdC1zeW5jZXItdGVzdHMuanMJKHdvcmtpbmcgY29weSkKQEAg
LTE0Myw2ICsxNDMsMTkgQEAgZnVuY3Rpb24gc21hbGxDb25maWd1cmF0aW9uKCkKICAgICB9Owog
fQogCitmdW5jdGlvbiBidWlsZGVyTmFtZVRvSURNYXAoKQoreworICAgIHJldHVybiB7CisgICAg
ICAgICdzb21lIGJ1aWxkZXInIDogJzEwMCcsCisgICAgICAgICdBQlRlc3QtaVBob25lLVJ1bkJl
bmNobWFyay1UZXN0cyc6ICcxMDEnLAorICAgICAgICAnQUJUZXN0LWlQYWQtUnVuQmVuY2htYXJr
LVRlc3RzJzogJzEwMicsCisgICAgICAgICdBQlRlc3QtaU9TLUJ1aWxkZXInOiAnMTAzJywKKyAg
ICAgICAgJ2lQaG9uZSBBQiBUZXN0cycgOiAnMTA0JywKKyAgICAgICAgJ2lQaG9uZSAyIEFCIFRl
c3RzJzogJzEwNScsCisgICAgICAgICdpUGFkIEFCIFRlc3RzJzogJzEwNicKKyAgICB9ICAgIAor
fQorCiBmdW5jdGlvbiBzbWFsbFBlbmRpbmdCdWlsZCgpCiB7CiAgICAgcmV0dXJuIHsKQEAgLTQ3
NywzOSArNDkwLDM5IEBAIGRlc2NyaWJlKCdCdWlsZGJvdFN5bmNlcicsICgpID0+IHsKICAgICBk
ZXNjcmliZSgnX2xvYWRDb25maWcnLCAoKSA9PiB7CiAKICAgICAgICAgaXQoJ3Nob3VsZCBjcmVh
dGUgQnVpbGRib3RTeW5jZXIgb2JqZWN0cyBmb3IgYSBjb25maWd1cmF0aW9uIHRoYXQgc3BlY2lm
eSBhbGwgcmVxdWlyZWQgb3B0aW9ucycsICgpID0+IHsKLSAgICAgICAgICAgIGFzc2VydC5lcXVh
bChCdWlsZGJvdFN5bmNlci5fbG9hZENvbmZpZyhNb2NrUmVtb3RlQVBJLCBzbWFsbENvbmZpZ3Vy
YXRpb24oKSkubGVuZ3RoLCAxKTsKKyAgICAgICAgICAgIGFzc2VydC5lcXVhbChCdWlsZGJvdFN5
bmNlci5fbG9hZENvbmZpZyhNb2NrUmVtb3RlQVBJLCBzbWFsbENvbmZpZ3VyYXRpb24oKSwgYnVp
bGRlck5hbWVUb0lETWFwKCkpLmxlbmd0aCwgMSk7CiAgICAgICAgIH0pOwogCiAgICAgICAgIGl0
KCdzaG91bGQgdGhyb3cgd2hlbiBzb21lIHJlcXVpcmVkIG9wdGlvbnMgYXJlIG1pc3NpbmcnLCAo
KSA9PiB7CiAgICAgICAgICAgICBhc3NlcnQudGhyb3dzKCgpID0+IHsKICAgICAgICAgICAgICAg
ICBjb25zdCBjb25maWcgPSBzbWFsbENvbmZpZ3VyYXRpb24oKTsKICAgICAgICAgICAgICAgICBk
ZWxldGUgY29uZmlnLmJ1aWxkZXJzOwotICAgICAgICAgICAgICAgIEJ1aWxkYm90U3luY2VyLl9s
b2FkQ29uZmlnKE1vY2tSZW1vdGVBUEksIGNvbmZpZyk7CisgICAgICAgICAgICAgICAgQnVpbGRi
b3RTeW5jZXIuX2xvYWRDb25maWcoTW9ja1JlbW90ZUFQSSwgY29uZmlnLCBidWlsZGVyTmFtZVRv
SURNYXAoKSk7CiAgICAgICAgICAgICB9LCAvInNvbWUtYnVpbGRlciIgaXMgbm90IGEgdmFsaWQg
YnVpbGRlciBpbiB0aGUgY29uZmlndXJhdGlvbi8pOwogICAgICAgICAgICAgYXNzZXJ0LnRocm93
cygoKSA9PiB7CiAgICAgICAgICAgICAgICAgY29uc3QgY29uZmlnID0gc21hbGxDb25maWd1cmF0
aW9uKCk7CiAgICAgICAgICAgICAgICAgZGVsZXRlIGNvbmZpZy50eXBlczsKLSAgICAgICAgICAg
ICAgICBCdWlsZGJvdFN5bmNlci5fbG9hZENvbmZpZyhNb2NrUmVtb3RlQVBJLCBjb25maWcpOwor
ICAgICAgICAgICAgICAgIEJ1aWxkYm90U3luY2VyLl9sb2FkQ29uZmlnKE1vY2tSZW1vdGVBUEks
IGNvbmZpZywgYnVpbGRlck5hbWVUb0lETWFwKCkpOwogICAgICAgICAgICAgfSwgLyJzb21lLXRl
c3QiIGlzIG5vdCBhIHZhbGlkIHR5cGUgaW4gdGhlIGNvbmZpZ3VyYXRpb24vKTsKICAgICAgICAg
ICAgIGFzc2VydC50aHJvd3MoKCkgPT4gewogICAgICAgICAgICAgICAgIGNvbnN0IGNvbmZpZyA9
IHNtYWxsQ29uZmlndXJhdGlvbigpOwogICAgICAgICAgICAgICAgIGRlbGV0ZSBjb25maWcudGVz
dENvbmZpZ3VyYXRpb25zWzBdLmJ1aWxkZXJzOwotICAgICAgICAgICAgICAgIEJ1aWxkYm90U3lu
Y2VyLl9sb2FkQ29uZmlnKE1vY2tSZW1vdGVBUEksIGNvbmZpZyk7CisgICAgICAgICAgICAgICAg
QnVpbGRib3RTeW5jZXIuX2xvYWRDb25maWcoTW9ja1JlbW90ZUFQSSwgY29uZmlnLCBidWlsZGVy
TmFtZVRvSURNYXAoKSk7CiAgICAgICAgICAgICB9LCAvVGhlIHRlc3QgY29uZmlndXJhdGlvbiAx
IGRvZXMgbm90IHNwZWNpZnkgImJ1aWxkZXJzIiBhcyBhbiBhcnJheS8pOwogICAgICAgICAgICAg
YXNzZXJ0LnRocm93cygoKSA9PiB7CiAgICAgICAgICAgICAgICAgY29uc3QgY29uZmlnID0gc21h
bGxDb25maWd1cmF0aW9uKCk7CiAgICAgICAgICAgICAgICAgZGVsZXRlIGNvbmZpZy50ZXN0Q29u
ZmlndXJhdGlvbnNbMF0ucGxhdGZvcm1zOwotICAgICAgICAgICAgICAgIEJ1aWxkYm90U3luY2Vy
Ll9sb2FkQ29uZmlnKE1vY2tSZW1vdGVBUEksIGNvbmZpZyk7CisgICAgICAgICAgICAgICAgQnVp
bGRib3RTeW5jZXIuX2xvYWRDb25maWcoTW9ja1JlbW90ZUFQSSwgY29uZmlnLCBidWlsZGVyTmFt
ZVRvSURNYXAoKSk7CiAgICAgICAgICAgICB9LCAvVGhlIHRlc3QgY29uZmlndXJhdGlvbiAxIGRv
ZXMgbm90IHNwZWNpZnkgInBsYXRmb3JtcyIgYXMgYW4gYXJyYXkvKTsKICAgICAgICAgICAgIGFz
c2VydC50aHJvd3MoKCkgPT4gewogICAgICAgICAgICAgICAgIGNvbnN0IGNvbmZpZyA9IHNtYWxs
Q29uZmlndXJhdGlvbigpOwogICAgICAgICAgICAgICAgIGRlbGV0ZSBjb25maWcudGVzdENvbmZp
Z3VyYXRpb25zWzBdLnR5cGVzOwotICAgICAgICAgICAgICAgIEJ1aWxkYm90U3luY2VyLl9sb2Fk
Q29uZmlnKE1vY2tSZW1vdGVBUEksIGNvbmZpZyk7CisgICAgICAgICAgICAgICAgQnVpbGRib3RT
eW5jZXIuX2xvYWRDb25maWcoTW9ja1JlbW90ZUFQSSwgY29uZmlnLCBidWlsZGVyTmFtZVRvSURN
YXAoKSk7CiAgICAgICAgICAgICB9LCAvVGhlIHRlc3QgY29uZmlndXJhdGlvbiAwIGRvZXMgbm90
IHNwZWNpZnkgInR5cGVzIiBhcyBhbiBhcnJheS8pOwogICAgICAgICAgICAgYXNzZXJ0LnRocm93
cygoKSA9PiB7CiAgICAgICAgICAgICAgICAgY29uc3QgY29uZmlnID0gc21hbGxDb25maWd1cmF0
aW9uKCk7CiAgICAgICAgICAgICAgICAgZGVsZXRlIGNvbmZpZy5idWlsZFJlcXVlc3RBcmd1bWVu
dDsKLSAgICAgICAgICAgICAgICBCdWlsZGJvdFN5bmNlci5fbG9hZENvbmZpZyhNb2NrUmVtb3Rl
QVBJLCBjb25maWcpOworICAgICAgICAgICAgICAgIEJ1aWxkYm90U3luY2VyLl9sb2FkQ29uZmln
KE1vY2tSZW1vdGVBUEksIGNvbmZpZywgYnVpbGRlck5hbWVUb0lETWFwKCkpOwogICAgICAgICAg
ICAgfSwgL2J1aWxkUmVxdWVzdEFyZ3VtZW50IG11c3Qgc3BlY2lmeSB0aGUgbmFtZSBvZiB0aGUg
cHJvcGVydHkgdXNlZCB0byBzdG9yZSB0aGUgYnVpbGQgcmVxdWVzdCBJRC8pOwogICAgICAgICB9
KTsKIApAQCAtNTE3LDEyICs1MzAsMTIgQEAgZGVzY3JpYmUoJ0J1aWxkYm90U3luY2VyJywgKCkg
PT4gewogICAgICAgICAgICAgYXNzZXJ0LnRocm93cygoKSA9PiB7CiAgICAgICAgICAgICAgICAg
Y29uc3QgY29uZmlnID0gc21hbGxDb25maWd1cmF0aW9uKCk7CiAgICAgICAgICAgICAgICAgY29u
ZmlnLnRlc3RDb25maWd1cmF0aW9uc1swXS50eXBlcyA9ICdzb21lIHRlc3QnOwotICAgICAgICAg
ICAgICAgIEJ1aWxkYm90U3luY2VyLl9sb2FkQ29uZmlnKE1vY2tSZW1vdGVBUEksIGNvbmZpZyk7
CisgICAgICAgICAgICAgICAgQnVpbGRib3RTeW5jZXIuX2xvYWRDb25maWcoTW9ja1JlbW90ZUFQ
SSwgY29uZmlnLCBidWlsZGVyTmFtZVRvSURNYXAoKSk7CiAgICAgICAgICAgICB9LCAvVGhlIHRl
c3QgY29uZmlndXJhdGlvbiAwIGRvZXMgbm90IHNwZWNpZnkgInR5cGVzIiBhcyBhbiBhcnJheS8p
OwogICAgICAgICAgICAgYXNzZXJ0LnRocm93cygoKSA9PiB7CiAgICAgICAgICAgICAgICAgY29u
c3QgY29uZmlnID0gc21hbGxDb25maWd1cmF0aW9uKCk7CiAgICAgICAgICAgICAgICAgY29uZmln
LnRlc3RDb25maWd1cmF0aW9uc1swXS50eXBlcyA9IFsxXTsKLSAgICAgICAgICAgICAgICBCdWls
ZGJvdFN5bmNlci5fbG9hZENvbmZpZyhNb2NrUmVtb3RlQVBJLCBjb25maWcpOworICAgICAgICAg
ICAgICAgIEJ1aWxkYm90U3luY2VyLl9sb2FkQ29uZmlnKE1vY2tSZW1vdGVBUEksIGNvbmZpZywg
YnVpbGRlck5hbWVUb0lETWFwKCkpOwogICAgICAgICAgICAgfSwgLyIxIiBpcyBub3QgYSB2YWxp
ZCB0eXBlIGluIHRoZSBjb25maWd1cmF0aW9uLyk7CiAgICAgICAgIH0pOwogCkBAIC01MzAsMTIg
KzU0MywxMiBAQCBkZXNjcmliZSgnQnVpbGRib3RTeW5jZXInLCAoKSA9PiB7CiAgICAgICAgICAg
ICBhc3NlcnQudGhyb3dzKCgpID0+IHsKICAgICAgICAgICAgICAgICBjb25zdCBjb25maWcgPSBz
bWFsbENvbmZpZ3VyYXRpb24oKTsKICAgICAgICAgICAgICAgICBjb25maWcuYnVpbGRlcnNbT2Jq
ZWN0LmtleXMoY29uZmlnLmJ1aWxkZXJzKVswXV0ucHJvcGVydGllcyA9ICdoZWxsbyc7Ci0gICAg
ICAgICAgICAgICAgQnVpbGRib3RTeW5jZXIuX2xvYWRDb25maWcoTW9ja1JlbW90ZUFQSSwgY29u
ZmlnKTsKKyAgICAgICAgICAgICAgICBCdWlsZGJvdFN5bmNlci5fbG9hZENvbmZpZyhNb2NrUmVt
b3RlQVBJLCBjb25maWcsIGJ1aWxkZXJOYW1lVG9JRE1hcCgpKTsKICAgICAgICAgICAgIH0sIC9C
dWlsZCBwcm9wZXJ0aWVzIHNob3VsZCBiZSBhIGRpY3Rpb25hcnkvKTsKICAgICAgICAgICAgIGFz
c2VydC50aHJvd3MoKCkgPT4gewogICAgICAgICAgICAgICAgIGNvbnN0IGNvbmZpZyA9IHNtYWxs
Q29uZmlndXJhdGlvbigpOwogICAgICAgICAgICAgICAgIGNvbmZpZy50eXBlc1tPYmplY3Qua2V5
cyhjb25maWcudHlwZXMpWzBdXS5wcm9wZXJ0aWVzID0gJ2hlbGxvJzsKLSAgICAgICAgICAgICAg
ICBCdWlsZGJvdFN5bmNlci5fbG9hZENvbmZpZyhNb2NrUmVtb3RlQVBJLCBjb25maWcpOworICAg
ICAgICAgICAgICAgIEJ1aWxkYm90U3luY2VyLl9sb2FkQ29uZmlnKE1vY2tSZW1vdGVBUEksIGNv
bmZpZywgYnVpbGRlck5hbWVUb0lETWFwKCkpOwogICAgICAgICAgICAgfSwgL0J1aWxkIHByb3Bl
cnRpZXMgc2hvdWxkIGJlIGEgZGljdGlvbmFyeS8pOwogICAgICAgICB9KTsKIApAQCAtNTQ0LDEz
ICs1NTcsMTMgQEAgZGVzY3JpYmUoJ0J1aWxkYm90U3luY2VyJywgKCkgPT4gewogICAgICAgICAg
ICAgICAgIGNvbnN0IGNvbmZpZyA9IHNtYWxsQ29uZmlndXJhdGlvbigpOwogICAgICAgICAgICAg
ICAgIGNvbnN0IGZpcnN0VHlwZSA9IE9iamVjdC5rZXlzKGNvbmZpZy50eXBlcylbMF07CiAgICAg
ICAgICAgICAgICAgY29uZmlnLnR5cGVzW2ZpcnN0VHlwZV0udGVzdFByb3BlcnRpZXMgPSB7fTsK
LSAgICAgICAgICAgICAgICBCdWlsZGJvdFN5bmNlci5fbG9hZENvbmZpZyhNb2NrUmVtb3RlQVBJ
LCBjb25maWcpOworICAgICAgICAgICAgICAgIEJ1aWxkYm90U3luY2VyLl9sb2FkQ29uZmlnKE1v
Y2tSZW1vdGVBUEksIGNvbmZpZywgYnVpbGRlck5hbWVUb0lETWFwKCkpOwogICAgICAgICAgICAg
fSwgL1VucmVjb2duaXplZCBwYXJhbWV0ZXIgInRlc3RQcm9wZXJ0aWVzIi8pOwogICAgICAgICAg
ICAgYXNzZXJ0LnRocm93cygoKSA9PiB7CiAgICAgICAgICAgICAgICAgY29uc3QgY29uZmlnID0g
c21hbGxDb25maWd1cmF0aW9uKCk7CiAgICAgICAgICAgICAgICAgY29uc3QgZmlyc3RCdWlsZGVy
ID0gT2JqZWN0LmtleXMoY29uZmlnLmJ1aWxkZXJzKVswXTsKICAgICAgICAgICAgICAgICBjb25m
aWcuYnVpbGRlcnNbZmlyc3RCdWlsZGVyXS50ZXN0UHJvcGVydGllcyA9IHt9OwotICAgICAgICAg
ICAgICAgIEJ1aWxkYm90U3luY2VyLl9sb2FkQ29uZmlnKE1vY2tSZW1vdGVBUEksIGNvbmZpZyk7
CisgICAgICAgICAgICAgICAgQnVpbGRib3RTeW5jZXIuX2xvYWRDb25maWcoTW9ja1JlbW90ZUFQ
SSwgY29uZmlnLCBidWlsZGVyTmFtZVRvSURNYXAoKSk7CiAgICAgICAgICAgICB9LCAvVW5yZWNv
Z25pemVkIHBhcmFtZXRlciAidGVzdFByb3BlcnRpZXMiLyk7CiAgICAgICAgIH0pOwogCkBAIC01
NTksMTMgKzU3MiwxMyBAQCBkZXNjcmliZSgnQnVpbGRib3RTeW5jZXInLCAoKSA9PiB7CiAgICAg
ICAgICAgICAgICAgY29uc3QgY29uZmlnID0gc21hbGxDb25maWd1cmF0aW9uKCk7CiAgICAgICAg
ICAgICAgICAgY29uc3QgZmlyc3RUeXBlID0gT2JqZWN0LmtleXMoY29uZmlnLnR5cGVzKVswXTsK
ICAgICAgICAgICAgICAgICBjb25maWcudHlwZXNbZmlyc3RUeXBlXS5idWlsZFByb3BlcnRpZXMg
PSB7fTsKLSAgICAgICAgICAgICAgICBCdWlsZGJvdFN5bmNlci5fbG9hZENvbmZpZyhNb2NrUmVt
b3RlQVBJLCBjb25maWcpOworICAgICAgICAgICAgICAgIEJ1aWxkYm90U3luY2VyLl9sb2FkQ29u
ZmlnKE1vY2tSZW1vdGVBUEksIGNvbmZpZywgYnVpbGRlck5hbWVUb0lETWFwKCkpOwogICAgICAg
ICAgICAgfSwgL1VucmVjb2duaXplZCBwYXJhbWV0ZXIgImJ1aWxkUHJvcGVydGllcyIvKTsKICAg
ICAgICAgICAgIGFzc2VydC50aHJvd3MoKCkgPT4gewogICAgICAgICAgICAgICAgIGNvbnN0IGNv
bmZpZyA9IHNtYWxsQ29uZmlndXJhdGlvbigpOwogICAgICAgICAgICAgICAgIGNvbnN0IGZpcnN0
QnVpbGRlciA9IE9iamVjdC5rZXlzKGNvbmZpZy5idWlsZGVycylbMF07CiAgICAgICAgICAgICAg
ICAgY29uZmlnLmJ1aWxkZXJzW2ZpcnN0QnVpbGRlcl0uYnVpbGRQcm9wZXJ0aWVzID0ge307Ci0g
ICAgICAgICAgICAgICAgQnVpbGRib3RTeW5jZXIuX2xvYWRDb25maWcoTW9ja1JlbW90ZUFQSSwg
Y29uZmlnKTsKKyAgICAgICAgICAgICAgICBCdWlsZGJvdFN5bmNlci5fbG9hZENvbmZpZyhNb2Nr
UmVtb3RlQVBJLCBjb25maWcsIGJ1aWxkZXJOYW1lVG9JRE1hcCgpKTsKICAgICAgICAgICAgIH0s
IC9VbnJlY29nbml6ZWQgcGFyYW1ldGVyICJidWlsZFByb3BlcnRpZXMiLyk7CiAgICAgICAgIH0p
OwogCkBAIC01NzQsMjcgKzU4NywyNyBAQCBkZXNjcmliZSgnQnVpbGRib3RTeW5jZXInLCAoKSA9
PiB7CiAgICAgICAgICAgICBhc3NlcnQudGhyb3dzKCgpID0+IHsKICAgICAgICAgICAgICAgICBj
b25zdCBjb25maWcgPSBzbWFsbENvbmZpZ3VyYXRpb24oKTsKICAgICAgICAgICAgICAgICBjb25m
aWcudHlwZXNbZmlyc3RUeXBlXS5wcm9wZXJ0aWVzID0gJ2hlbGxvJzsKLSAgICAgICAgICAgICAg
ICBCdWlsZGJvdFN5bmNlci5fbG9hZENvbmZpZyhNb2NrUmVtb3RlQVBJLCBjb25maWcpOworICAg
ICAgICAgICAgICAgIEJ1aWxkYm90U3luY2VyLl9sb2FkQ29uZmlnKE1vY2tSZW1vdGVBUEksIGNv
bmZpZywgYnVpbGRlck5hbWVUb0lETWFwKCkpOwogICAgICAgICAgICAgfSwgL0J1aWxkIHByb3Bl
cnRpZXMgc2hvdWxkIGJlIGEgZGljdGlvbmFyeS8pOwogICAgICAgICAgICAgYXNzZXJ0LnRocm93
cygoKSA9PiB7CiAgICAgICAgICAgICAgICAgY29uc3QgY29uZmlnID0gc21hbGxDb25maWd1cmF0
aW9uKCk7CiAgICAgICAgICAgICAgICAgY29uZmlnLnR5cGVzW2ZpcnN0VHlwZV0ucHJvcGVydGll
cyA9IHsnc29tZSc6IHsnb3RoZXJLZXknOiAnc29tZSByb290J319OwotICAgICAgICAgICAgICAg
IEJ1aWxkYm90U3luY2VyLl9sb2FkQ29uZmlnKFJlbW90ZUFQSSwgY29uZmlnKTsKKyAgICAgICAg
ICAgICAgICBCdWlsZGJvdFN5bmNlci5fbG9hZENvbmZpZyhSZW1vdGVBUEksIGNvbmZpZywgYnVp
bGRlck5hbWVUb0lETWFwKCkpOwogICAgICAgICAgICAgfSwgL0J1aWxkIHByb3BlcnRpZXMgInNv
bWUiIHNwZWNpZmllcyBhIG5vbi1zdHJpbmcgdmFsdWUgb2YgdHlwZSAib2JqZWN0Ii8pOwogICAg
ICAgICAgICAgYXNzZXJ0LnRocm93cygoKSA9PiB7CiAgICAgICAgICAgICAgICAgY29uc3QgY29u
ZmlnID0gc21hbGxDb25maWd1cmF0aW9uKCk7CiAgICAgICAgICAgICAgICAgY29uZmlnLnR5cGVz
W2ZpcnN0VHlwZV0ucHJvcGVydGllcyA9IHsnc29tZSc6IHsnb3RoZXJLZXknOiAnc29tZSByb290
J319OwotICAgICAgICAgICAgICAgIEJ1aWxkYm90U3luY2VyLl9sb2FkQ29uZmlnKFJlbW90ZUFQ
SSwgY29uZmlnKTsKKyAgICAgICAgICAgICAgICBCdWlsZGJvdFN5bmNlci5fbG9hZENvbmZpZyhS
ZW1vdGVBUEksIGNvbmZpZywgYnVpbGRlck5hbWVUb0lETWFwKCkpOwogICAgICAgICAgICAgfSwg
L0J1aWxkIHByb3BlcnRpZXMgInNvbWUiIHNwZWNpZmllcyBhIG5vbi1zdHJpbmcgdmFsdWUgb2Yg
dHlwZSAib2JqZWN0Ii8pOwogICAgICAgICAgICAgYXNzZXJ0LnRocm93cygoKSA9PiB7CiAgICAg
ICAgICAgICAgICAgY29uc3QgY29uZmlnID0gc21hbGxDb25maWd1cmF0aW9uKCk7CiAgICAgICAg
ICAgICAgICAgY29uZmlnLnR5cGVzW2ZpcnN0VHlwZV0ucHJvcGVydGllcyA9IHsnc29tZSc6IHsn
cmV2aXNpb24nOiAnV2ViS2l0J319OwotICAgICAgICAgICAgICAgIEJ1aWxkYm90U3luY2VyLl9s
b2FkQ29uZmlnKFJlbW90ZUFQSSwgY29uZmlnKTsKKyAgICAgICAgICAgICAgICBCdWlsZGJvdFN5
bmNlci5fbG9hZENvbmZpZyhSZW1vdGVBUEksIGNvbmZpZywgYnVpbGRlck5hbWVUb0lETWFwKCkp
OwogICAgICAgICAgICAgfSwgL0J1aWxkIHByb3BlcnRpZXMgInNvbWUiIHNwZWNpZmllcyBhIG5v
bi1zdHJpbmcgdmFsdWUgb2YgdHlwZSAib2JqZWN0Ii8pOwogICAgICAgICAgICAgYXNzZXJ0LnRo
cm93cygoKSA9PiB7CiAgICAgICAgICAgICAgICAgY29uc3QgY29uZmlnID0gc21hbGxDb25maWd1
cmF0aW9uKCk7CiAgICAgICAgICAgICAgICAgY29uZmlnLnR5cGVzW2ZpcnN0VHlwZV0ucHJvcGVy
dGllcyA9IHsnc29tZSc6IDF9OwotICAgICAgICAgICAgICAgIEJ1aWxkYm90U3luY2VyLl9sb2Fk
Q29uZmlnKFJlbW90ZUFQSSwgY29uZmlnKTsKKyAgICAgICAgICAgICAgICBCdWlsZGJvdFN5bmNl
ci5fbG9hZENvbmZpZyhSZW1vdGVBUEksIGNvbmZpZywgYnVpbGRlck5hbWVUb0lETWFwKCkpOwog
ICAgICAgICAgICAgfSwgLyBCdWlsZCBwcm9wZXJ0aWVzICJzb21lIiBzcGVjaWZpZXMgYSBub24t
c3RyaW5nIHZhbHVlIG9mIHR5cGUgIm9iamVjdCIvKTsKICAgICAgICAgfSk7CiAKQEAgLTYwMywz
MiArNjE2LDMyIEBAIGRlc2NyaWJlKCdCdWlsZGJvdFN5bmNlcicsICgpID0+IHsKICAgICAgICAg
ICAgIGFzc2VydC50aHJvd3MoKCkgPT4gewogICAgICAgICAgICAgICAgIGNvbnN0IGNvbmZpZyA9
IHNtYWxsQ29uZmlndXJhdGlvbigpOwogICAgICAgICAgICAgICAgIGNvbmZpZy5idWlsZGVyc1tm
aXJzdEJ1aWxkZXJdLnByb3BlcnRpZXMgPSAnaGVsbG8nOwotICAgICAgICAgICAgICAgIEJ1aWxk
Ym90U3luY2VyLl9sb2FkQ29uZmlnKE1vY2tSZW1vdGVBUEksIGNvbmZpZyk7CisgICAgICAgICAg
ICAgICAgQnVpbGRib3RTeW5jZXIuX2xvYWRDb25maWcoTW9ja1JlbW90ZUFQSSwgY29uZmlnLCBi
dWlsZGVyTmFtZVRvSURNYXAoKSk7CiAgICAgICAgICAgICB9LCAvQnVpbGQgcHJvcGVydGllcyBz
aG91bGQgYmUgYSBkaWN0aW9uYXJ5Lyk7CiAgICAgICAgICAgICBhc3NlcnQudGhyb3dzKCgpID0+
IHsKICAgICAgICAgICAgICAgICBjb25zdCBjb25maWcgPSBzbWFsbENvbmZpZ3VyYXRpb24oKTsK
ICAgICAgICAgICAgICAgICBjb25maWcuYnVpbGRlcnNbZmlyc3RCdWlsZGVyXS5wcm9wZXJ0aWVz
ID0geydzb21lJzogeydvdGhlcktleSc6ICdzb21lIHJvb3QnfX07Ci0gICAgICAgICAgICAgICAg
QnVpbGRib3RTeW5jZXIuX2xvYWRDb25maWcoUmVtb3RlQVBJLCBjb25maWcpOworICAgICAgICAg
ICAgICAgIEJ1aWxkYm90U3luY2VyLl9sb2FkQ29uZmlnKFJlbW90ZUFQSSwgY29uZmlnLCBidWls
ZGVyTmFtZVRvSURNYXAoKSk7CiAgICAgICAgICAgICB9LCAvQnVpbGQgcHJvcGVydGllcyAic29t
ZSIgc3BlY2lmaWVzIGEgbm9uLXN0cmluZyB2YWx1ZSBvZiB0eXBlICJvYmplY3QiLyk7CiAgICAg
ICAgICAgICBhc3NlcnQudGhyb3dzKCgpID0+IHsKICAgICAgICAgICAgICAgICBjb25zdCBjb25m
aWcgPSBzbWFsbENvbmZpZ3VyYXRpb24oKTsKICAgICAgICAgICAgICAgICBjb25maWcuYnVpbGRl
cnNbZmlyc3RCdWlsZGVyXS5wcm9wZXJ0aWVzID0geydzb21lJzogeydvdGhlcktleSc6ICdzb21l
IHJvb3QnfX07Ci0gICAgICAgICAgICAgICAgQnVpbGRib3RTeW5jZXIuX2xvYWRDb25maWcoUmVt
b3RlQVBJLCBjb25maWcpOworICAgICAgICAgICAgICAgIEJ1aWxkYm90U3luY2VyLl9sb2FkQ29u
ZmlnKFJlbW90ZUFQSSwgY29uZmlnLCBidWlsZGVyTmFtZVRvSURNYXAoKSk7CiAgICAgICAgICAg
ICB9LCAvQnVpbGQgcHJvcGVydGllcyAic29tZSIgc3BlY2lmaWVzIGEgbm9uLXN0cmluZyB2YWx1
ZSBvZiB0eXBlICJvYmplY3QiLyk7CiAgICAgICAgICAgICBhc3NlcnQudGhyb3dzKCgpID0+IHsK
ICAgICAgICAgICAgICAgICBjb25zdCBjb25maWcgPSBzbWFsbENvbmZpZ3VyYXRpb24oKTsKICAg
ICAgICAgICAgICAgICBjb25maWcuYnVpbGRlcnNbZmlyc3RCdWlsZGVyXS5wcm9wZXJ0aWVzID0g
eydzb21lJzogeydyZXZpc2lvbic6ICdXZWJLaXQnfX07Ci0gICAgICAgICAgICAgICAgQnVpbGRi
b3RTeW5jZXIuX2xvYWRDb25maWcoUmVtb3RlQVBJLCBjb25maWcpOworICAgICAgICAgICAgICAg
IEJ1aWxkYm90U3luY2VyLl9sb2FkQ29uZmlnKFJlbW90ZUFQSSwgY29uZmlnLCBidWlsZGVyTmFt
ZVRvSURNYXAoKSk7CiAgICAgICAgICAgICB9LCAvQnVpbGQgcHJvcGVydGllcyAic29tZSIgc3Bl
Y2lmaWVzIGEgbm9uLXN0cmluZyB2YWx1ZSBvZiB0eXBlICJvYmplY3QiLyk7CiAgICAgICAgICAg
ICBhc3NlcnQudGhyb3dzKCgpID0+IHsKICAgICAgICAgICAgICAgICBjb25zdCBjb25maWcgPSBz
bWFsbENvbmZpZ3VyYXRpb24oKTsKICAgICAgICAgICAgICAgICBjb25maWcuYnVpbGRlcnNbZmly
c3RCdWlsZGVyXS5wcm9wZXJ0aWVzID0geydzb21lJzogMX07Ci0gICAgICAgICAgICAgICAgQnVp
bGRib3RTeW5jZXIuX2xvYWRDb25maWcoUmVtb3RlQVBJLCBjb25maWcpOworICAgICAgICAgICAg
ICAgIEJ1aWxkYm90U3luY2VyLl9sb2FkQ29uZmlnKFJlbW90ZUFQSSwgY29uZmlnLCBidWlsZGVy
TmFtZVRvSURNYXAoKSk7CiAgICAgICAgICAgICB9LCAvQnVpbGQgcHJvcGVydGllcyAic29tZSIg
c3BlY2lmaWVzIGEgbm9uLXN0cmluZyB2YWx1ZSBvZiB0eXBlICJvYmplY3QiLyk7CiAgICAgICAg
IH0pOwogCiAgICAgICAgIGl0KCdzaG91bGQgY3JlYXRlIEJ1aWxkYm90U3luY2VyIG9iamVjdHMg
Zm9yIHZhbGlkIGNvbmZpZ3VyYXRpb25zJywgKCkgPT4gewotICAgICAgICAgICAgbGV0IHN5bmNl
cnMgPSBCdWlsZGJvdFN5bmNlci5fbG9hZENvbmZpZyhSZW1vdGVBUEksIHNhbXBsZWlPU0NvbmZp
ZygpKTsKKyAgICAgICAgICAgIGxldCBzeW5jZXJzID0gQnVpbGRib3RTeW5jZXIuX2xvYWRDb25m
aWcoUmVtb3RlQVBJLCBzYW1wbGVpT1NDb25maWcoKSwgYnVpbGRlck5hbWVUb0lETWFwKCkpOwog
ICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHN5bmNlcnMubGVuZ3RoLCAzKTsKICAgICAgICAgICAg
IGFzc2VydC5vayhzeW5jZXJzWzBdIGluc3RhbmNlb2YgQnVpbGRib3RTeW5jZXIpOwogICAgICAg
ICAgICAgYXNzZXJ0Lm9rKHN5bmNlcnNbMV0gaW5zdGFuY2VvZiBCdWlsZGJvdFN5bmNlcik7CkBA
IC02MzYsMTQgKzY0OSwxNCBAQCBkZXNjcmliZSgnQnVpbGRib3RTeW5jZXInLCAoKSA9PiB7CiAg
ICAgICAgIH0pOwogCiAgICAgICAgIGl0KCdzaG91bGQgcGFyc2UgYnVpbGRlciBuYW1lcyBjb3Jy
ZWN0bHknLCAoKSA9PiB7Ci0gICAgICAgICAgICBsZXQgc3luY2VycyA9IEJ1aWxkYm90U3luY2Vy
Ll9sb2FkQ29uZmlnKFJlbW90ZUFQSSwgc2FtcGxlaU9TQ29uZmlnKCkpOworICAgICAgICAgICAg
bGV0IHN5bmNlcnMgPSBCdWlsZGJvdFN5bmNlci5fbG9hZENvbmZpZyhSZW1vdGVBUEksIHNhbXBs
ZWlPU0NvbmZpZygpLCBidWlsZGVyTmFtZVRvSURNYXAoKSk7CiAgICAgICAgICAgICBhc3NlcnQu
ZXF1YWwoc3luY2Vyc1swXS5idWlsZGVyTmFtZSgpLCAnQUJUZXN0LWlQaG9uZS1SdW5CZW5jaG1h
cmstVGVzdHMnKTsKICAgICAgICAgICAgIGFzc2VydC5lcXVhbChzeW5jZXJzWzFdLmJ1aWxkZXJO
YW1lKCksICdBQlRlc3QtaVBhZC1SdW5CZW5jaG1hcmstVGVzdHMnKTsKICAgICAgICAgICAgIGFz
c2VydC5lcXVhbChzeW5jZXJzWzJdLmJ1aWxkZXJOYW1lKCksICdBQlRlc3QtaU9TLUJ1aWxkZXIn
KTsKICAgICAgICAgfSk7CiAKICAgICAgICAgaXQoJ3Nob3VsZCBwYXJzZSB0ZXN0IGNvbmZpZ3Vy
YXRpb25zIHdpdGggYnVpbGQgY29uZmlndXJhdGlvbnMgY29ycmVjdGx5JywgKCkgPT4gewotICAg
ICAgICAgICAgbGV0IHN5bmNlcnMgPSBCdWlsZGJvdFN5bmNlci5fbG9hZENvbmZpZyhSZW1vdGVB
UEksIHNhbXBsZWlPU0NvbmZpZygpKTsKKyAgICAgICAgICAgIGxldCBzeW5jZXJzID0gQnVpbGRi
b3RTeW5jZXIuX2xvYWRDb25maWcoUmVtb3RlQVBJLCBzYW1wbGVpT1NDb25maWcoKSwgYnVpbGRl
ck5hbWVUb0lETWFwKCkpOwogCiAgICAgICAgICAgICBsZXQgY29uZmlndXJhdGlvbnMgPSBzeW5j
ZXJzWzBdLnRlc3RDb25maWd1cmF0aW9ucygpOwogICAgICAgICAgICAgYXNzZXJ0KHN5bmNlcnNb
MF0uaXNUZXN0ZXIoKSk7CkBAIC02NzksMTIgKzY5MiwxMiBAQCBkZXNjcmliZSgnQnVpbGRib3RT
eW5jZXInLCAoKSA9PiB7CiAgICAgICAgICAgICBhc3NlcnQudGhyb3dzKCgpID0+IHsKICAgICAg
ICAgICAgICAgICBjb25zdCBjb25maWcgPSBzYW1wbGVpT1NDb25maWcoKTsKICAgICAgICAgICAg
ICAgICBjb25maWcuYnVpbGRDb25maWd1cmF0aW9uc1swXS5idWlsZGVycyA9IGNvbmZpZy50ZXN0
Q29uZmlndXJhdGlvbnNbMF0uYnVpbGRlcnM7Ci0gICAgICAgICAgICAgICAgQnVpbGRib3RTeW5j
ZXIuX2xvYWRDb25maWcoTW9ja1JlbW90ZUFQSSwgY29uZmlnKTsKKyAgICAgICAgICAgICAgICBC
dWlsZGJvdFN5bmNlci5fbG9hZENvbmZpZyhNb2NrUmVtb3RlQVBJLCBjb25maWcsIGJ1aWxkZXJO
YW1lVG9JRE1hcCgpKTsKICAgICAgICAgICAgIH0pOwogICAgICAgICB9KTsKIAogICAgICAgICBp
dCgnc2hvdWxkIHBhcnNlIHRlc3QgY29uZmlndXJhdGlvbnMgd2l0aCB0eXBlcyBhbmQgcGxhdGZv
cm1zIGV4cGFuc2lvbnMgY29ycmVjdGx5JywgKCkgPT4gewotICAgICAgICAgICAgY29uc3Qgc3lu
Y2VycyA9IEJ1aWxkYm90U3luY2VyLl9sb2FkQ29uZmlnKFJlbW90ZUFQSSwgc2FtcGxlaU9TQ29u
ZmlnV2l0aEV4cGFuc2lvbnMoKSk7CisgICAgICAgICAgICBjb25zdCBzeW5jZXJzID0gQnVpbGRi
b3RTeW5jZXIuX2xvYWRDb25maWcoUmVtb3RlQVBJLCBzYW1wbGVpT1NDb25maWdXaXRoRXhwYW5z
aW9ucygpLCBidWlsZGVyTmFtZVRvSURNYXAoKSk7CiAKICAgICAgICAgICAgIGFzc2VydC5lcXVh
bChzeW5jZXJzLmxlbmd0aCwgMyk7CiAKQEAgLTcyNSwxMiArNzM4LDEyIEBAIGRlc2NyaWJlKCdC
dWlsZGJvdFN5bmNlcicsICgpID0+IHsKICAgICAgICAgICAgIGFzc2VydC50aHJvd3MoKCkgPT4g
ewogICAgICAgICAgICAgICAgIGNvbnN0IGNvbmZpZyA9IHNtYWxsQ29uZmlndXJhdGlvbigpOwog
ICAgICAgICAgICAgICAgIGNvbmZpZy5yZXBvc2l0b3J5R3JvdXBzID0gMTsKLSAgICAgICAgICAg
ICAgICBCdWlsZGJvdFN5bmNlci5fbG9hZENvbmZpZyhNb2NrUmVtb3RlQVBJLCBjb25maWcpOwor
ICAgICAgICAgICAgICAgIEJ1aWxkYm90U3luY2VyLl9sb2FkQ29uZmlnKE1vY2tSZW1vdGVBUEks
IGNvbmZpZywgYnVpbGRlck5hbWVUb0lETWFwKCkpOwogICAgICAgICAgICAgfSwgL3JlcG9zaXRv
cnlHcm91cHMgbXVzdCBzcGVjaWZ5IGEgZGljdGlvbmFyeSBmcm9tIHRoZSBuYW1lIHRvIGl0cyBk
ZWZpbml0aW9uLyk7CiAgICAgICAgICAgICBhc3NlcnQudGhyb3dzKCgpID0+IHsKICAgICAgICAg
ICAgICAgICBjb25zdCBjb25maWcgPSBzbWFsbENvbmZpZ3VyYXRpb24oKTsKICAgICAgICAgICAg
ICAgICBjb25maWcucmVwb3NpdG9yeUdyb3VwcyA9ICdoZWxsbyc7Ci0gICAgICAgICAgICAgICAg
QnVpbGRib3RTeW5jZXIuX2xvYWRDb25maWcoTW9ja1JlbW90ZUFQSSwgY29uZmlnKTsKKyAgICAg
ICAgICAgICAgICBCdWlsZGJvdFN5bmNlci5fbG9hZENvbmZpZyhNb2NrUmVtb3RlQVBJLCBjb25m
aWcsIGJ1aWxkZXJOYW1lVG9JRE1hcCgpKTsKICAgICAgICAgICAgIH0sIC9yZXBvc2l0b3J5R3Jv
dXBzIG11c3Qgc3BlY2lmeSBhIGRpY3Rpb25hcnkgZnJvbSB0aGUgbmFtZSB0byBpdHMgZGVmaW5p
dGlvbi8pOwogICAgICAgICB9KTsKIApAQCAtNzM4LDEyICs3NTEsMTIgQEAgZGVzY3JpYmUoJ0J1
aWxkYm90U3luY2VyJywgKCkgPT4gewogICAgICAgICAgICAgYXNzZXJ0LnRocm93cygoKSA9PiB7
CiAgICAgICAgICAgICAgICAgY29uc3QgY29uZmlnID0gc21hbGxDb25maWd1cmF0aW9uKCk7CiAg
ICAgICAgICAgICAgICAgY29uZmlnLnJlcG9zaXRvcnlHcm91cHMgPSB7J3NvbWUtZ3JvdXAnOiB7
dGVzdFByb3BlcnRpZXM6IHt9fX07Ci0gICAgICAgICAgICAgICAgQnVpbGRib3RTeW5jZXIuX2xv
YWRDb25maWcoTW9ja1JlbW90ZUFQSSwgY29uZmlnKTsKKyAgICAgICAgICAgICAgICBCdWlsZGJv
dFN5bmNlci5fbG9hZENvbmZpZyhNb2NrUmVtb3RlQVBJLCBjb25maWcsIGJ1aWxkZXJOYW1lVG9J
RE1hcCgpKTsKICAgICAgICAgICAgIH0sIC9SZXBvc2l0b3J5IGdyb3VwICJzb21lLWdyb3VwIiBk
b2VzIG5vdCBzcGVjaWZ5IGEgZGljdGlvbmFyeSBvZiByZXBvc2l0b3JpZXMvKTsKICAgICAgICAg
ICAgIGFzc2VydC50aHJvd3MoKCkgPT4gewogICAgICAgICAgICAgICAgIGNvbnN0IGNvbmZpZyA9
IHNtYWxsQ29uZmlndXJhdGlvbigpOwogICAgICAgICAgICAgICAgIGNvbmZpZy5yZXBvc2l0b3J5
R3JvdXBzID0geydzb21lLWdyb3VwJzoge3JlcG9zaXRvcmllczogMX0sIHRlc3RQcm9wZXJ0aWVz
OiB7fX07Ci0gICAgICAgICAgICAgICAgQnVpbGRib3RTeW5jZXIuX2xvYWRDb25maWcoTW9ja1Jl
bW90ZUFQSSwgY29uZmlnKTsKKyAgICAgICAgICAgICAgICBCdWlsZGJvdFN5bmNlci5fbG9hZENv
bmZpZyhNb2NrUmVtb3RlQVBJLCBjb25maWcsIGJ1aWxkZXJOYW1lVG9JRE1hcCgpKTsKICAgICAg
ICAgICAgIH0sIC9SZXBvc2l0b3J5IGdyb3VwICJzb21lLWdyb3VwIiBkb2VzIG5vdCBzcGVjaWZ5
IGEgZGljdGlvbmFyeSBvZiByZXBvc2l0b3JpZXMvKTsKICAgICAgICAgfSk7CiAKQEAgLTc1MSw3
ICs3NjQsNyBAQCBkZXNjcmliZSgnQnVpbGRib3RTeW5jZXInLCAoKSA9PiB7CiAgICAgICAgICAg
ICBhc3NlcnQudGhyb3dzKCgpID0+IHsKICAgICAgICAgICAgICAgICBjb25zdCBjb25maWcgPSBz
bWFsbENvbmZpZ3VyYXRpb24oKTsKICAgICAgICAgICAgICAgICBjb25maWcucmVwb3NpdG9yeUdy
b3VwcyA9IHsnc29tZS1ncm91cCc6IHtyZXBvc2l0b3JpZXM6IHt9LCB0ZXN0UHJvcGVydGllczog
e319fTsKLSAgICAgICAgICAgICAgICBCdWlsZGJvdFN5bmNlci5fbG9hZENvbmZpZyhNb2NrUmVt
b3RlQVBJLCBjb25maWcpOworICAgICAgICAgICAgICAgIEJ1aWxkYm90U3luY2VyLl9sb2FkQ29u
ZmlnKE1vY2tSZW1vdGVBUEksIGNvbmZpZywgYnVpbGRlck5hbWVUb0lETWFwKCkpOwogICAgICAg
ICAgICAgfSwgL1JlcG9zaXRvcnkgZ3JvdXAgInNvbWUtZ3JvdXAiIGRvZXMgbm90IHNwZWNpZnkg
YW55IHJlcG9zaXRvcnkvKTsKICAgICAgICAgfSk7CiAKQEAgLTc1OSw3ICs3NzIsNyBAQCBkZXNj
cmliZSgnQnVpbGRib3RTeW5jZXInLCAoKSA9PiB7CiAgICAgICAgICAgICBhc3NlcnQudGhyb3dz
KCgpID0+IHsKICAgICAgICAgICAgICAgICBjb25zdCBjb25maWcgPSBzbWFsbENvbmZpZ3VyYXRp
b24oKTsKICAgICAgICAgICAgICAgICBjb25maWcucmVwb3NpdG9yeUdyb3VwcyA9IHsnc29tZS1n
cm91cCc6IHtyZXBvc2l0b3JpZXM6IHsnSW52YWxpZFJlcG9zaXRvcnlOYW1lJzoge319fX07Ci0g
ICAgICAgICAgICAgICAgQnVpbGRib3RTeW5jZXIuX2xvYWRDb25maWcoTW9ja1JlbW90ZUFQSSwg
Y29uZmlnKTsKKyAgICAgICAgICAgICAgICBCdWlsZGJvdFN5bmNlci5fbG9hZENvbmZpZyhNb2Nr
UmVtb3RlQVBJLCBjb25maWcsIGJ1aWxkZXJOYW1lVG9JRE1hcCgpKTsKICAgICAgICAgICAgIH0s
IC8iSW52YWxpZFJlcG9zaXRvcnlOYW1lIiBpcyBub3QgYSB2YWxpZCByZXBvc2l0b3J5IG5hbWUv
KTsKICAgICAgICAgfSk7CiAKQEAgLTc2Nyw3ICs3ODAsNyBAQCBkZXNjcmliZSgnQnVpbGRib3RT
eW5jZXInLCAoKSA9PiB7CiAgICAgICAgICAgICBhc3NlcnQudGhyb3dzKCgpID0+IHsKICAgICAg
ICAgICAgICAgICBjb25zdCBjb25maWcgPSBzbWFsbENvbmZpZ3VyYXRpb24oKTsKICAgICAgICAg
ICAgICAgICBjb25maWcucmVwb3NpdG9yeUdyb3VwcyA9IHsnc29tZS1ncm91cCc6IHtyZXBvc2l0
b3JpZXM6IHsnV2ViS2l0JzogMX19fTsKLSAgICAgICAgICAgICAgICBCdWlsZGJvdFN5bmNlci5f
bG9hZENvbmZpZyhNb2NrUmVtb3RlQVBJLCBjb25maWcpOworICAgICAgICAgICAgICAgIEJ1aWxk
Ym90U3luY2VyLl9sb2FkQ29uZmlnKE1vY2tSZW1vdGVBUEksIGNvbmZpZywgYnVpbGRlck5hbWVU
b0lETWFwKCkpOwogICAgICAgICAgICAgfSwgLyJXZWJLaXQiIHNwZWNpZmllcyBhIG5vbi1kaWN0
aW9uYXJ5IHZhbHVlLyk7CiAgICAgICAgIH0pOwogCkBAIC03NzUsMTIgKzc4OCwxMiBAQCBkZXNj
cmliZSgnQnVpbGRib3RTeW5jZXInLCAoKSA9PiB7CiAgICAgICAgICAgICBhc3NlcnQudGhyb3dz
KCgpID0+IHsKICAgICAgICAgICAgICAgICBjb25zdCBjb25maWcgPSBzbWFsbENvbmZpZ3VyYXRp
b24oKTsKICAgICAgICAgICAgICAgICBjb25maWcucmVwb3NpdG9yeUdyb3VwcyA9IHsnc29tZS1n
cm91cCc6IHtyZXBvc2l0b3JpZXM6IHsnV2ViS2l0Jzoge319LCBkZXNjcmlwdGlvbjogMX19Owot
ICAgICAgICAgICAgICAgIEJ1aWxkYm90U3luY2VyLl9sb2FkQ29uZmlnKE1vY2tSZW1vdGVBUEks
IGNvbmZpZyk7CisgICAgICAgICAgICAgICAgQnVpbGRib3RTeW5jZXIuX2xvYWRDb25maWcoTW9j
a1JlbW90ZUFQSSwgY29uZmlnLCBidWlsZGVyTmFtZVRvSURNYXAoKSk7CiAgICAgICAgICAgICB9
LCAvUmVwb3NpdG9yeSBncm91cCAic29tZS1ncm91cCIgaGF2ZSBhbiBpbnZhbGlkIGRlc2NyaXB0
aW9uLyk7CiAgICAgICAgICAgICBhc3NlcnQudGhyb3dzKCgpID0+IHsKICAgICAgICAgICAgICAg
ICBjb25zdCBjb25maWcgPSBzbWFsbENvbmZpZ3VyYXRpb24oKTsKICAgICAgICAgICAgICAgICBj
b25maWcucmVwb3NpdG9yeUdyb3VwcyA9IHsnc29tZS1ncm91cCc6IHtyZXBvc2l0b3JpZXM6IHsn
V2ViS2l0Jzoge319LCBkZXNjcmlwdGlvbjogWzEsIDJdfX07Ci0gICAgICAgICAgICAgICAgQnVp
bGRib3RTeW5jZXIuX2xvYWRDb25maWcoTW9ja1JlbW90ZUFQSSwgY29uZmlnKTsKKyAgICAgICAg
ICAgICAgICBCdWlsZGJvdFN5bmNlci5fbG9hZENvbmZpZyhNb2NrUmVtb3RlQVBJLCBjb25maWcs
IGJ1aWxkZXJOYW1lVG9JRE1hcCgpKTsKICAgICAgICAgICAgIH0sIC9SZXBvc2l0b3J5IGdyb3Vw
ICJzb21lLWdyb3VwIiBoYXZlIGFuIGludmFsaWQgZGVzY3JpcHRpb24vKTsKICAgICAgICAgfSk7
CiAKQEAgLTc4OCwxMiArODAxLDEyIEBAIGRlc2NyaWJlKCdCdWlsZGJvdFN5bmNlcicsICgpID0+
IHsKICAgICAgICAgICAgIGFzc2VydC50aHJvd3MoKCkgPT4gewogICAgICAgICAgICAgICAgIGNv
bnN0IGNvbmZpZyA9IHNtYWxsQ29uZmlndXJhdGlvbigpOwogICAgICAgICAgICAgICAgIGNvbmZp
Zy5yZXBvc2l0b3J5R3JvdXBzID0geydzb21lLWdyb3VwJzoge3JlcG9zaXRvcmllczogeydXZWJL
aXQnOiB7fX0sIHRlc3RQcm9wZXJ0aWVzOiAxfX07Ci0gICAgICAgICAgICAgICAgQnVpbGRib3RT
eW5jZXIuX2xvYWRDb25maWcoTW9ja1JlbW90ZUFQSSwgY29uZmlnKTsKKyAgICAgICAgICAgICAg
ICBCdWlsZGJvdFN5bmNlci5fbG9hZENvbmZpZyhNb2NrUmVtb3RlQVBJLCBjb25maWcsIGJ1aWxk
ZXJOYW1lVG9JRE1hcCgpKTsKICAgICAgICAgICAgIH0sIC9SZXBvc2l0b3J5IGdyb3VwICJzb21l
LWdyb3VwIiBzcGVjaWZpZXMgdGhlIHRlc3QgY29uZmlndXJhdGlvbnMgd2l0aCBhbiBpbnZhbGlk
IHR5cGUvKTsKICAgICAgICAgICAgIGFzc2VydC50aHJvd3MoKCkgPT4gewogICAgICAgICAgICAg
ICAgIGNvbnN0IGNvbmZpZyA9IHNtYWxsQ29uZmlndXJhdGlvbigpOwogICAgICAgICAgICAgICAg
IGNvbmZpZy5yZXBvc2l0b3J5R3JvdXBzID0geydzb21lLWdyb3VwJzoge3JlcG9zaXRvcmllczog
eydXZWJLaXQnOiB7fX0sIHRlc3RQcm9wZXJ0aWVzOiAnaGVsbG8nfX07Ci0gICAgICAgICAgICAg
ICAgQnVpbGRib3RTeW5jZXIuX2xvYWRDb25maWcoTW9ja1JlbW90ZUFQSSwgY29uZmlnKTsKKyAg
ICAgICAgICAgICAgICBCdWlsZGJvdFN5bmNlci5fbG9hZENvbmZpZyhNb2NrUmVtb3RlQVBJLCBj
b25maWcsIGJ1aWxkZXJOYW1lVG9JRE1hcCgpKTsKICAgICAgICAgICAgIH0sIC9SZXBvc2l0b3J5
IGdyb3VwICJzb21lLWdyb3VwIiBzcGVjaWZpZXMgdGhlIHRlc3QgY29uZmlndXJhdGlvbnMgd2l0
aCBhbiBpbnZhbGlkIHR5cGUvKTsKICAgICAgICAgfSk7CiAKQEAgLTgwMSw3ICs4MTQsNyBAQCBk
ZXNjcmliZSgnQnVpbGRib3RTeW5jZXInLCAoKSA9PiB7CiAgICAgICAgICAgICBhc3NlcnQudGhy
b3dzKCgpID0+IHsKICAgICAgICAgICAgICAgICBjb25zdCBjb25maWcgPSBzbWFsbENvbmZpZ3Vy
YXRpb24oKTsKICAgICAgICAgICAgICAgICBjb25maWcucmVwb3NpdG9yeUdyb3VwcyA9IHsnc29t
ZS1ncm91cCc6IHtyZXBvc2l0b3JpZXM6IHsnV2ViS2l0Jzoge319LCB0ZXN0UHJvcGVydGllczog
eyd3ayc6IHtyZXZpc2lvbjogJ0ludmFsaWRSZXBvc2l0b3J5J319fX07Ci0gICAgICAgICAgICAg
ICAgQnVpbGRib3RTeW5jZXIuX2xvYWRDb25maWcoTW9ja1JlbW90ZUFQSSwgY29uZmlnKTsKKyAg
ICAgICAgICAgICAgICBCdWlsZGJvdFN5bmNlci5fbG9hZENvbmZpZyhNb2NrUmVtb3RlQVBJLCBj
b25maWcsIGJ1aWxkZXJOYW1lVG9JRE1hcCgpKTsKICAgICAgICAgICAgIH0sIC9SZXBvc2l0b3J5
IGdyb3VwICJzb21lLWdyb3VwIiBhbiBpbnZhbGlkIHJlcG9zaXRvcnkgIkludmFsaWRSZXBvc2l0
b3J5Ii8pOwogICAgICAgICB9KTsKIApAQCAtODA5LDcgKzgyMiw3IEBAIGRlc2NyaWJlKCdCdWls
ZGJvdFN5bmNlcicsICgpID0+IHsKICAgICAgICAgICAgIGFzc2VydC50aHJvd3MoKCkgPT4gewog
ICAgICAgICAgICAgICAgIGNvbnN0IGNvbmZpZyA9IHNtYWxsQ29uZmlndXJhdGlvbigpOwogICAg
ICAgICAgICAgICAgIGNvbmZpZy5yZXBvc2l0b3J5R3JvdXBzID0geydzb21lLWdyb3VwJzoge3Jl
cG9zaXRvcmllczogeydXZWJLaXQnOiB7fX0sIHRlc3RQcm9wZXJ0aWVzOiB7J29zJzoge3Jldmlz
aW9uOiAnaU9TJ319fX07Ci0gICAgICAgICAgICAgICAgQnVpbGRib3RTeW5jZXIuX2xvYWRDb25m
aWcoTW9ja1JlbW90ZUFQSSwgY29uZmlnKTsKKyAgICAgICAgICAgICAgICBCdWlsZGJvdFN5bmNl
ci5fbG9hZENvbmZpZyhNb2NrUmVtb3RlQVBJLCBjb25maWcsIGJ1aWxkZXJOYW1lVG9JRE1hcCgp
KTsKICAgICAgICAgICAgIH0sIC9SZXBvc2l0b3J5IGdyb3VwICJzb21lLWdyb3VwIiBhbiBpbnZh
bGlkIHJlcG9zaXRvcnkgImlPUyIvKTsKICAgICAgICAgICAgIGFzc2VydC50aHJvd3MoKCkgPT4g
ewogICAgICAgICAgICAgICAgIGNvbnN0IGNvbmZpZyA9IHNtYWxsQ29uZmlndXJhdGlvbigpOwpA
QCAtODE4LDcgKzgzMSw3IEBAIGRlc2NyaWJlKCdCdWlsZGJvdFN5bmNlcicsICgpID0+IHsKICAg
ICAgICAgICAgICAgICAgICAgdGVzdFByb3BlcnRpZXM6IHsnd2snOiB7cmV2aXNpb246ICdXZWJL
aXQnfSwgJ2luc3RhbGwtcm9vdHMnOiB7J3Jvb3RzJzoge319fSwKICAgICAgICAgICAgICAgICAg
ICAgYnVpbGRQcm9wZXJ0aWVzOiB7J29zJzoge3JldmlzaW9uOiAnaU9TJ319LAogICAgICAgICAg
ICAgICAgICAgICBhY2NlcHRzUm9vdHM6IHRydWV9fTsKLSAgICAgICAgICAgICAgICBCdWlsZGJv
dFN5bmNlci5fbG9hZENvbmZpZyhNb2NrUmVtb3RlQVBJLCBjb25maWcpOworICAgICAgICAgICAg
ICAgIEJ1aWxkYm90U3luY2VyLl9sb2FkQ29uZmlnKE1vY2tSZW1vdGVBUEksIGNvbmZpZywgYnVp
bGRlck5hbWVUb0lETWFwKCkpOwogICAgICAgICAgICAgfSwgL1JlcG9zaXRvcnkgZ3JvdXAgInNv
bWUtZ3JvdXAiIGFuIGludmFsaWQgcmVwb3NpdG9yeSAiaU9TIi8pOwogICAgICAgICB9KTsKIApA
QCAtODMwLDcgKzg0Myw3IEBAIGRlc2NyaWJlKCdCdWlsZGJvdFN5bmNlcicsICgpID0+IHsKICAg
ICAgICAgICAgICAgICAgICAgdGVzdFByb3BlcnRpZXM6IHsnd2snOiB7cmV2aXNpb246ICdXZWJL
aXQnfSwgJ2lvcyc6IHtyZXZpc2lvbjogJ2lPUyd9LCAnaW5zdGFsbC1yb290cyc6IHsncm9vdHMn
OiB7fX19LAogICAgICAgICAgICAgICAgICAgICBidWlsZFByb3BlcnRpZXM6IHsnd2snOiB7cmV2
aXNpb246ICdXZWJLaXQnfSwgJ2lvcyc6IHtyZXZpc2lvbjogJ2lPUyd9LCAnd2stcGF0Y2gnOiB7
cGF0Y2g6ICdpT1MnfX0sCiAgICAgICAgICAgICAgICAgICAgIGFjY2VwdHNSb290czogdHJ1ZX19
OwotICAgICAgICAgICAgICAgIEJ1aWxkYm90U3luY2VyLl9sb2FkQ29uZmlnKE1vY2tSZW1vdGVB
UEksIGNvbmZpZyk7CisgICAgICAgICAgICAgICAgQnVpbGRib3RTeW5jZXIuX2xvYWRDb25maWco
TW9ja1JlbW90ZUFQSSwgY29uZmlnLCBidWlsZGVyTmFtZVRvSURNYXAoKSk7CiAgICAgICAgICAg
ICB9LCAvUmVwb3NpdG9yeSBncm91cCAic29tZS1ncm91cCIgc3BlY2lmaWVzIGEgcGF0Y2ggZm9y
ICJpT1MiIGJ1dCBpdCBkb2VzIG5vdCBhY2NlcHQgYSBwYXRjaC8pOwogICAgICAgICB9KTsKIApA
QCAtODQyLDcgKzg1NSw3IEBAIGRlc2NyaWJlKCdCdWlsZGJvdFN5bmNlcicsICgpID0+IHsKICAg
ICAgICAgICAgICAgICAgICAgdGVzdFByb3BlcnRpZXM6IHsnd2snOiB7cmV2aXNpb246ICdXZWJL
aXQnfSwgJ2luc3RhbGwtcm9vdHMnOiB7J3Jvb3RzJzoge319fSwKICAgICAgICAgICAgICAgICAg
ICAgYnVpbGRQcm9wZXJ0aWVzOiB7J3drLXBhdGNoJzoge3BhdGNoOiAnV2ViS2l0J319LAogICAg
ICAgICAgICAgICAgICAgICBhY2NlcHRzUm9vdHM6IHRydWV9fTsKLSAgICAgICAgICAgICAgICBC
dWlsZGJvdFN5bmNlci5fbG9hZENvbmZpZyhNb2NrUmVtb3RlQVBJLCBjb25maWcpOworICAgICAg
ICAgICAgICAgIEJ1aWxkYm90U3luY2VyLl9sb2FkQ29uZmlnKE1vY2tSZW1vdGVBUEksIGNvbmZp
ZywgYnVpbGRlck5hbWVUb0lETWFwKCkpOwogICAgICAgICAgICAgfSwgL1JlcG9zaXRvcnkgZ3Jv
dXAgInNvbWUtZ3JvdXAiIHNwZWNpZmllcyBhIHBhdGNoIGZvciAiV2ViS2l0IiBidXQgZG9lcyBu
b3Qgc3BlY2lmeSBhIHJldmlzaW9uLyk7CiAgICAgICAgIH0pOwogCkBAIC04NTAsNyArODYzLDcg
QEAgZGVzY3JpYmUoJ0J1aWxkYm90U3luY2VyJywgKCkgPT4gewogICAgICAgICAgICAgYXNzZXJ0
LnRocm93cygoKSA9PiB7CiAgICAgICAgICAgICAgICAgY29uc3QgY29uZmlnID0gc21hbGxDb25m
aWd1cmF0aW9uKCk7CiAgICAgICAgICAgICAgICAgY29uZmlnLnJlcG9zaXRvcnlHcm91cHMgPSB7
J3NvbWUtZ3JvdXAnOiB7J3JlcG9zaXRvcmllcyc6IHsnV2ViS2l0Jzoge319LCB0ZXN0UHJvcGVy
dGllczoge319fTsKLSAgICAgICAgICAgICAgICBCdWlsZGJvdFN5bmNlci5fbG9hZENvbmZpZyhN
b2NrUmVtb3RlQVBJLCBjb25maWcpOworICAgICAgICAgICAgICAgIEJ1aWxkYm90U3luY2VyLl9s
b2FkQ29uZmlnKE1vY2tSZW1vdGVBUEksIGNvbmZpZywgYnVpbGRlck5hbWVUb0lETWFwKCkpOwog
ICAgICAgICAgICAgfSwgL1JlcG9zaXRvcnkgZ3JvdXAgInNvbWUtZ3JvdXAiIGRvZXMgbm90IHVz
ZSBzb21lIG9mIHRoZSByZXBvc2l0b3JpZXMgbGlzdGVkIGluIHRlc3RpbmcvKTsKICAgICAgICAg
ICAgIGFzc2VydC50aHJvd3MoKCkgPT4gewogICAgICAgICAgICAgICAgIGNvbnN0IGNvbmZpZyA9
IHNtYWxsQ29uZmlndXJhdGlvbigpOwpAQCAtODU5LDcgKzg3Miw3IEBAIGRlc2NyaWJlKCdCdWls
ZGJvdFN5bmNlcicsICgpID0+IHsKICAgICAgICAgICAgICAgICAgICAgdGVzdFByb3BlcnRpZXM6
IHsnd2snOiB7cmV2aXNpb246ICdXZWJLaXQnfSwgJ2luc3RhbGwtcm9vdHMnOiB7J3Jvb3RzJzog
e319fSwKICAgICAgICAgICAgICAgICAgICAgYnVpbGRQcm9wZXJ0aWVzOiB7fSwKICAgICAgICAg
ICAgICAgICAgICAgYWNjZXB0c1Jvb3RzOiB0cnVlfX07Ci0gICAgICAgICAgICAgICAgQnVpbGRi
b3RTeW5jZXIuX2xvYWRDb25maWcoTW9ja1JlbW90ZUFQSSwgY29uZmlnKTsKKyAgICAgICAgICAg
ICAgICBCdWlsZGJvdFN5bmNlci5fbG9hZENvbmZpZyhNb2NrUmVtb3RlQVBJLCBjb25maWcsIGJ1
aWxkZXJOYW1lVG9JRE1hcCgpKTsKICAgICAgICAgICAgIH0sIC9SZXBvc2l0b3J5IGdyb3VwICJz
b21lLWdyb3VwIiBkb2VzIG5vdCB1c2Ugc29tZSBvZiB0aGUgcmVwb3NpdG9yaWVzIGxpc3RlZCBp
biBidWlsZGluZyBhIHBhdGNoLyk7CiAgICAgICAgIH0pOwogCkBAIC04NjcsMTIgKzg4MCwxMiBA
QCBkZXNjcmliZSgnQnVpbGRib3RTeW5jZXInLCAoKSA9PiB7CiAgICAgICAgICAgICBhc3NlcnQu
dGhyb3dzKCgpID0+IHsKICAgICAgICAgICAgICAgICBjb25zdCBjb25maWcgPSBzbWFsbENvbmZp
Z3VyYXRpb24oKTsKICAgICAgICAgICAgICAgICBjb25maWcucmVwb3NpdG9yeUdyb3VwcyA9IHsn
c29tZS1ncm91cCc6IHsncmVwb3NpdG9yaWVzJzogeydXZWJLaXQnOiB7fX0sICd0ZXN0UHJvcGVy
dGllcyc6IHsnd2Via2l0JzogeydyZXZpc2lvbic6ICdXZWJLaXQnfX0sIGFjY2VwdHNSb290czog
MX19OwotICAgICAgICAgICAgICAgIEJ1aWxkYm90U3luY2VyLl9sb2FkQ29uZmlnKE1vY2tSZW1v
dGVBUEksIGNvbmZpZyk7CisgICAgICAgICAgICAgICAgQnVpbGRib3RTeW5jZXIuX2xvYWRDb25m
aWcoTW9ja1JlbW90ZUFQSSwgY29uZmlnLCBidWlsZGVyTmFtZVRvSURNYXAoKSk7CiAgICAgICAg
ICAgICB9LCAvUmVwb3NpdG9yeSBncm91cCAic29tZS1ncm91cCIgY29udGFpbnMgaW52YWxpZCBh
Y2NlcHRzUm9vdHMgdmFsdWU6Lyk7CiAgICAgICAgICAgICBhc3NlcnQudGhyb3dzKCgpID0+IHsK
ICAgICAgICAgICAgICAgICBjb25zdCBjb25maWcgPSBzbWFsbENvbmZpZ3VyYXRpb24oKTsKICAg
ICAgICAgICAgICAgICBjb25maWcucmVwb3NpdG9yeUdyb3VwcyA9IHsnc29tZS1ncm91cCc6IHsn
cmVwb3NpdG9yaWVzJzogeydXZWJLaXQnOiB7fX0sICd0ZXN0UHJvcGVydGllcyc6IHsnd2Via2l0
JzogeydyZXZpc2lvbic6ICdXZWJLaXQnfX0sIGFjY2VwdHNSb290czogW119fTsKLSAgICAgICAg
ICAgICAgICBCdWlsZGJvdFN5bmNlci5fbG9hZENvbmZpZyhNb2NrUmVtb3RlQVBJLCBjb25maWcp
OworICAgICAgICAgICAgICAgIEJ1aWxkYm90U3luY2VyLl9sb2FkQ29uZmlnKE1vY2tSZW1vdGVB
UEksIGNvbmZpZywgYnVpbGRlck5hbWVUb0lETWFwKCkpOwogICAgICAgICAgICAgfSwgL1JlcG9z
aXRvcnkgZ3JvdXAgInNvbWUtZ3JvdXAiIGNvbnRhaW5zIGludmFsaWQgYWNjZXB0c1Jvb3RzIHZh
bHVlOi8pOwogICAgICAgICB9KTsKIApAQCAtODgwLDEyICs4OTMsMTIgQEAgZGVzY3JpYmUoJ0J1
aWxkYm90U3luY2VyJywgKCkgPT4gewogICAgICAgICAgICAgYXNzZXJ0LnRocm93cygoKSA9PiB7
CiAgICAgICAgICAgICAgICAgY29uc3QgY29uZmlnID0gc21hbGxDb25maWd1cmF0aW9uKCk7CiAg
ICAgICAgICAgICAgICAgY29uZmlnLnJlcG9zaXRvcnlHcm91cHMgPSB7J3NvbWUtZ3JvdXAnOiB7
J3JlcG9zaXRvcmllcyc6IHsnV2ViS2l0Jzoge2FjY2VwdHNQYXRjaDogMX19LCAndGVzdFByb3Bl
cnRpZXMnOiB7J3dlYmtpdCc6IHsncmV2aXNpb24nOiAnV2ViS2l0J319fX07Ci0gICAgICAgICAg
ICAgICAgQnVpbGRib3RTeW5jZXIuX2xvYWRDb25maWcoTW9ja1JlbW90ZUFQSSwgY29uZmlnKTsK
KyAgICAgICAgICAgICAgICBCdWlsZGJvdFN5bmNlci5fbG9hZENvbmZpZyhNb2NrUmVtb3RlQVBJ
LCBjb25maWcsIGJ1aWxkZXJOYW1lVG9JRE1hcCgpKTsKICAgICAgICAgICAgIH0sIC8iV2ViS2l0
IiBjb250YWlucyBpbnZhbGlkIGFjY2VwdHNQYXRjaCB2YWx1ZTovKTsKICAgICAgICAgICAgIGFz
c2VydC50aHJvd3MoKCkgPT4gewogICAgICAgICAgICAgICAgIGNvbnN0IGNvbmZpZyA9IHNtYWxs
Q29uZmlndXJhdGlvbigpOwogICAgICAgICAgICAgICAgIGNvbmZpZy5yZXBvc2l0b3J5R3JvdXBz
ID0geydzb21lLWdyb3VwJzogeydyZXBvc2l0b3JpZXMnOiB7J1dlYktpdCc6IHthY2NlcHRzUGF0
Y2g6IFtdfX0sICd0ZXN0UHJvcGVydGllcyc6IHsnd2Via2l0JzogeydyZXZpc2lvbic6ICdXZWJL
aXQnfX19fTsKLSAgICAgICAgICAgICAgICBCdWlsZGJvdFN5bmNlci5fbG9hZENvbmZpZyhNb2Nr
UmVtb3RlQVBJLCBjb25maWcpOworICAgICAgICAgICAgICAgIEJ1aWxkYm90U3luY2VyLl9sb2Fk
Q29uZmlnKE1vY2tSZW1vdGVBUEksIGNvbmZpZywgYnVpbGRlck5hbWVUb0lETWFwKCkpOwogICAg
ICAgICAgICAgfSwgLyJXZWJLaXQiIGNvbnRhaW5zIGludmFsaWQgYWNjZXB0c1BhdGNoIHZhbHVl
Oi8pOwogICAgICAgICB9KTsKIApAQCAtODk0LDcgKzkwNyw3IEBAIGRlc2NyaWJlKCdCdWlsZGJv
dFN5bmNlcicsICgpID0+IHsKICAgICAgICAgICAgICAgICBjb25zdCBjb25maWcgPSBzbWFsbENv
bmZpZ3VyYXRpb24oKTsKICAgICAgICAgICAgICAgICBjb25maWcucmVwb3NpdG9yeUdyb3VwcyA9
IHsnc29tZS1ncm91cCc6IHsncmVwb3NpdG9yaWVzJzogeydXZWJLaXQnOiB7YWNjZXB0c1BhdGNo
OiB0cnVlfX0sCiAgICAgICAgICAgICAgICAgICAgICd0ZXN0UHJvcGVydGllcyc6IHsnd2Via2l0
JzogeydyZXZpc2lvbic6ICdXZWJLaXQnfSwgJ3dlYmtpdC1wYXRjaCc6IHsncGF0Y2gnOiAnV2Vi
S2l0J319fX07Ci0gICAgICAgICAgICAgICAgQnVpbGRib3RTeW5jZXIuX2xvYWRDb25maWcoTW9j
a1JlbW90ZUFQSSwgY29uZmlnKTsKKyAgICAgICAgICAgICAgICBCdWlsZGJvdFN5bmNlci5fbG9h
ZENvbmZpZyhNb2NrUmVtb3RlQVBJLCBjb25maWcsIGJ1aWxkZXJOYW1lVG9JRE1hcCgpKTsKICAg
ICAgICAgICAgIH0sIC9SZXBvc2l0b3J5IGdyb3VwICJzb21lLWdyb3VwIiBzcGVjaWZpZXMgYSBw
YXRjaCBmb3IgIldlYktpdCIgaW4gdGhlIHByb3BlcnRpZXMgZm9yIHRlc3RpbmcvKTsKICAgICAg
ICAgfSk7CiAKQEAgLTkwNiw3ICs5MTksNyBAQCBkZXNjcmliZSgnQnVpbGRib3RTeW5jZXInLCAo
KSA9PiB7CiAgICAgICAgICAgICAgICAgICAgIHRlc3RQcm9wZXJ0aWVzOiB7J3dlYmtpdCc6IHty
ZXZpc2lvbjogJ1dlYktpdCd9LCAnaW5zdGFsbC1yb290cyc6IHsncm9vdHMnOiB7fX19LAogICAg
ICAgICAgICAgICAgICAgICBidWlsZFByb3BlcnRpZXM6IHsnd2Via2l0Jzoge3JldmlzaW9uOiAn
V2ViS2l0J30sICdwYXRjaCc6IHtwYXRjaDogJ1dlYktpdCd9LCAnaW5zdGFsbC1yb290cyc6IHty
b290czoge319fSwKICAgICAgICAgICAgICAgICAgICAgYWNjZXB0c1Jvb3RzOiB0cnVlfX07Ci0g
ICAgICAgICAgICAgICAgQnVpbGRib3RTeW5jZXIuX2xvYWRDb25maWcoTW9ja1JlbW90ZUFQSSwg
Y29uZmlnKTsKKyAgICAgICAgICAgICAgICBCdWlsZGJvdFN5bmNlci5fbG9hZENvbmZpZyhNb2Nr
UmVtb3RlQVBJLCBjb25maWcsIGJ1aWxkZXJOYW1lVG9JRE1hcCgpKTsKICAgICAgICAgICAgIH0s
IC9SZXBvc2l0b3J5IGdyb3VwICJzb21lLWdyb3VwIiBzcGVjaWZpZXMgcm9vdHMgaW4gdGhlIHBy
b3BlcnRpZXMgZm9yIGJ1aWxkaW5nLyk7CiAgICAgICAgIH0pOwogCkBAIC05MTYsNyArOTI5LDcg
QEAgZGVzY3JpYmUoJ0J1aWxkYm90U3luY2VyJywgKCkgPT4gewogICAgICAgICAgICAgICAgIGNv
bmZpZy5yZXBvc2l0b3J5R3JvdXBzID0geydzb21lLWdyb3VwJzogewogICAgICAgICAgICAgICAg
ICAgICByZXBvc2l0b3JpZXM6IHsnV2ViS2l0Jzoge319LAogICAgICAgICAgICAgICAgICAgICB0
ZXN0UHJvcGVydGllczogeyd3ZWJraXQnOiB7J3JldmlzaW9uJzogJ1dlYktpdCd9LCAnaW5zdGFs
bC1yb290cyc6IHsncm9vdHMnOiB7fX19fX07Ci0gICAgICAgICAgICAgICAgQnVpbGRib3RTeW5j
ZXIuX2xvYWRDb25maWcoTW9ja1JlbW90ZUFQSSwgY29uZmlnKTsKKyAgICAgICAgICAgICAgICBC
dWlsZGJvdFN5bmNlci5fbG9hZENvbmZpZyhNb2NrUmVtb3RlQVBJLCBjb25maWcsIGJ1aWxkZXJO
YW1lVG9JRE1hcCgpKTsKICAgICAgICAgICAgIH0sIC9SZXBvc2l0b3J5IGdyb3VwICJzb21lLWdy
b3VwIiBzcGVjaWZpZXMgcm9vdHMgaW4gYSBwcm9wZXJ0eSBidXQgaXQgZG9lcyBub3QgYWNjZXB0
IHJvb3RzLyk7CiAgICAgICAgIH0pOwogCkBAIC05MjcsNyArOTQwLDcgQEAgZGVzY3JpYmUoJ0J1
aWxkYm90U3luY2VyJywgKCkgPT4gewogICAgICAgICAgICAgICAgICAgICByZXBvc2l0b3JpZXM6
IHsnV2ViS2l0Jzoge2FjY2VwdHNQYXRjaDogdHJ1ZX19LAogICAgICAgICAgICAgICAgICAgICB0
ZXN0UHJvcGVydGllczogeyd3ZWJraXQnOiB7cmV2aXNpb246ICdXZWJLaXQnfX0sCiAgICAgICAg
ICAgICAgICAgICAgIGJ1aWxkUHJvcGVydGllczogeyd3ZWJraXQnOiB7cmV2aXNpb246ICdXZWJL
aXQnfSwgJ3dlYmtpdC1wYXRjaCc6IHtwYXRjaDogJ1dlYktpdCd9fX19OwotICAgICAgICAgICAg
ICAgIEJ1aWxkYm90U3luY2VyLl9sb2FkQ29uZmlnKE1vY2tSZW1vdGVBUEksIGNvbmZpZyk7Cisg
ICAgICAgICAgICAgICAgQnVpbGRib3RTeW5jZXIuX2xvYWRDb25maWcoTW9ja1JlbW90ZUFQSSwg
Y29uZmlnLCBidWlsZGVyTmFtZVRvSURNYXAoKSk7CiAgICAgICAgICAgICB9LCAvUmVwb3NpdG9y
eSBncm91cCAic29tZS1ncm91cCIgc3BlY2lmaWVzIHRoZSBwcm9wZXJ0aWVzIGZvciBidWlsZGlu
ZyBidXQgZG9lcyBub3QgYWNjZXB0IHJvb3RzIGluIHRlc3RpbmcvKTsKICAgICAgICAgfSk7CiAK
QEAgLTkzOSw3ICs5NTIsNyBAQCBkZXNjcmliZSgnQnVpbGRib3RTeW5jZXInLCAoKSA9PiB7CiAg
ICAgICAgICAgICAgICAgICAgIHRlc3RQcm9wZXJ0aWVzOiB7J3dlYmtpdCc6IHsncmV2aXNpb24n
OiAnV2ViS2l0J30sICdpbnN0YWxsLXJvb3RzJzogeydyb290cyc6IHt9fX0sCiAgICAgICAgICAg
ICAgICAgICAgIGJ1aWxkUHJvcGVydGllczogeyd3ZWJraXQnOiB7J3JldmlzaW9uJzogJ1dlYktp
dCd9fSwKICAgICAgICAgICAgICAgICAgICAgYWNjZXB0c1Jvb3RzOiB0cnVlfX07Ci0gICAgICAg
ICAgICAgICAgQnVpbGRib3RTeW5jZXIuX2xvYWRDb25maWcoTW9ja1JlbW90ZUFQSSwgY29uZmln
KTsKKyAgICAgICAgICAgICAgICBCdWlsZGJvdFN5bmNlci5fbG9hZENvbmZpZyhNb2NrUmVtb3Rl
QVBJLCBjb25maWcsIGJ1aWxkZXJOYW1lVG9JRE1hcCgpKTsKICAgICAgICAgICAgIH0sIC9SZXBv
c2l0b3J5IGdyb3VwICJzb21lLWdyb3VwIiBzcGVjaWZpZXMgdGhlIHByb3BlcnRpZXMgZm9yIGJ1
aWxkaW5nIGJ1dCBkb2VzIG5vdCBhY2NlcHQgYW55IHBhdGNoZXMvKTsKICAgICAgICAgfSk7CiAK
QEAgLTk1MSwyMSArOTY0LDIxIEBAIGRlc2NyaWJlKCdCdWlsZGJvdFN5bmNlcicsICgpID0+IHsK
ICAgICAgICAgICAgICAgICAgICAgdGVzdFByb3BlcnRpZXM6IHsnd2Via2l0Jzoge3JldmlzaW9u
OiAnV2ViS2l0J319LAogICAgICAgICAgICAgICAgICAgICBidWlsZFByb3BlcnRpZXM6IHsnd2Vi
a2l0Jzoge3JldmlzaW9uOiAnV2ViS2l0J30sICd3ZWJraXQtcGF0Y2gnOiB7cGF0Y2g6ICdXZWJL
aXQnfX0sCiAgICAgICAgICAgICAgICAgICAgIGFjY2VwdHNSb290czogdHJ1ZX19OwotICAgICAg
ICAgICAgICAgIEJ1aWxkYm90U3luY2VyLl9sb2FkQ29uZmlnKE1vY2tSZW1vdGVBUEksIGNvbmZp
Zyk7CisgICAgICAgICAgICAgICAgQnVpbGRib3RTeW5jZXIuX2xvYWRDb25maWcoTW9ja1JlbW90
ZUFQSSwgY29uZmlnLCBidWlsZGVyTmFtZVRvSURNYXAoKSk7CiAgICAgICAgICAgICB9LCAvUmVw
b3NpdG9yeSBncm91cCAic29tZS1ncm91cCIgYWNjZXB0cyByb290cyBidXQgZG9lcyBub3Qgc3Bl
Y2lmeSByb290cyBpbiB0ZXN0UHJvcGVydGllcy8pOwogICAgICAgICB9KTsKICAgICB9KTsKIAog
ICAgIGRlc2NyaWJlKCdfcHJvcGVydGllc0ZvckJ1aWxkUmVxdWVzdCcsICgpID0+IHsKICAgICAg
ICAgaXQoJ3Nob3VsZCBpbmNsdWRlIGFsbCBwcm9wZXJ0aWVzIHNwZWNpZmllZCBpbiBhIGdpdmVu
IGNvbmZpZ3VyYXRpb24nLCAoKSA9PiB7Ci0gICAgICAgICAgICBjb25zdCBzeW5jZXJzID0gQnVp
bGRib3RTeW5jZXIuX2xvYWRDb25maWcoUmVtb3RlQVBJLCBzYW1wbGVpT1NDb25maWcoKSk7Cisg
ICAgICAgICAgICBjb25zdCBzeW5jZXJzID0gQnVpbGRib3RTeW5jZXIuX2xvYWRDb25maWcoUmVt
b3RlQVBJLCBzYW1wbGVpT1NDb25maWcoKSwgYnVpbGRlck5hbWVUb0lETWFwKCkpOwogICAgICAg
ICAgICAgY29uc3QgcmVxdWVzdCA9IGNyZWF0ZVNhbXBsZUJ1aWxkUmVxdWVzdChNb2NrTW9kZWxz
LmlwaG9uZSwgTW9ja01vZGVscy5zcGVlZG9tZXRlcik7CiAgICAgICAgICAgICBjb25zdCBwcm9w
ZXJ0aWVzID0gc3luY2Vyc1swXS5fcHJvcGVydGllc0ZvckJ1aWxkUmVxdWVzdChyZXF1ZXN0LCBb
cmVxdWVzdF0pOwogICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChPYmplY3Qua2V5cyhwcm9w
ZXJ0aWVzKS5zb3J0KCksIFsnYnVpbGRfcmVxdWVzdF9pZCcsICdkZXNpcmVkX2ltYWdlJywgJ2Zv
cmNlc2NoZWR1bGVyJywgJ29wZW5zb3VyY2UnLCAndGVzdF9uYW1lJ10pOwogICAgICAgICB9KTsK
IAogICAgICAgICBpdCgnc2hvdWxkIHByZXNlcnZlIG5vbi1wYXJhbWV0cmljIHByb3BlcnR5IHZh
bHVlcycsICgpID0+IHsKLSAgICAgICAgICAgIGNvbnN0IHN5bmNlcnMgPSBCdWlsZGJvdFN5bmNl
ci5fbG9hZENvbmZpZyhSZW1vdGVBUEksIHNhbXBsZWlPU0NvbmZpZygpKTsKKyAgICAgICAgICAg
IGNvbnN0IHN5bmNlcnMgPSBCdWlsZGJvdFN5bmNlci5fbG9hZENvbmZpZyhSZW1vdGVBUEksIHNh
bXBsZWlPU0NvbmZpZygpLCBidWlsZGVyTmFtZVRvSURNYXAoKSk7CiAgICAgICAgICAgICBsZXQg
cmVxdWVzdCA9IGNyZWF0ZVNhbXBsZUJ1aWxkUmVxdWVzdChNb2NrTW9kZWxzLmlwaG9uZSwgTW9j
a01vZGVscy5zcGVlZG9tZXRlcik7CiAgICAgICAgICAgICBsZXQgcHJvcGVydGllcyA9IHN5bmNl
cnNbMF0uX3Byb3BlcnRpZXNGb3JCdWlsZFJlcXVlc3QocmVxdWVzdCwgW3JlcXVlc3RdKTsKICAg
ICAgICAgICAgIGFzc2VydC5lcXVhbChwcm9wZXJ0aWVzWyd0ZXN0X25hbWUnXSwgJ3NwZWVkb21l
dGVyJyk7CkBAIC05NzgsMTQgKzk5MSwxNCBAQCBkZXNjcmliZSgnQnVpbGRib3RTeW5jZXInLCAo
KSA9PiB7CiAgICAgICAgIH0pOwogCiAgICAgICAgIGl0KCdzaG91bGQgcmVzb2x2ZSAicm9vdCIn
LCAoKSA9PiB7Ci0gICAgICAgICAgICBjb25zdCBzeW5jZXJzID0gQnVpbGRib3RTeW5jZXIuX2xv
YWRDb25maWcoUmVtb3RlQVBJLCBzYW1wbGVpT1NDb25maWcoKSk7CisgICAgICAgICAgICBjb25z
dCBzeW5jZXJzID0gQnVpbGRib3RTeW5jZXIuX2xvYWRDb25maWcoUmVtb3RlQVBJLCBzYW1wbGVp
T1NDb25maWcoKSwgYnVpbGRlck5hbWVUb0lETWFwKCkpOwogICAgICAgICAgICAgY29uc3QgcmVx
dWVzdCA9IGNyZWF0ZVNhbXBsZUJ1aWxkUmVxdWVzdChNb2NrTW9kZWxzLmlwaG9uZSwgTW9ja01v
ZGVscy5zcGVlZG9tZXRlcik7CiAgICAgICAgICAgICBjb25zdCBwcm9wZXJ0aWVzID0gc3luY2Vy
c1swXS5fcHJvcGVydGllc0ZvckJ1aWxkUmVxdWVzdChyZXF1ZXN0LCBbcmVxdWVzdF0pOwogICAg
ICAgICAgICAgYXNzZXJ0LmVxdWFsKHByb3BlcnRpZXNbJ2Rlc2lyZWRfaW1hZ2UnXSwgJzEzQTQ1
MicpOwogICAgICAgICB9KTsKIAogICAgICAgICBpdCgnc2hvdWxkIHJlc29sdmUgInJldmlzaW9u
IicsICgpID0+IHsKLSAgICAgICAgICAgIGNvbnN0IHN5bmNlcnMgPSBCdWlsZGJvdFN5bmNlci5f
bG9hZENvbmZpZyhSZW1vdGVBUEksIHNhbXBsZWlPU0NvbmZpZygpKTsKKyAgICAgICAgICAgIGNv
bnN0IHN5bmNlcnMgPSBCdWlsZGJvdFN5bmNlci5fbG9hZENvbmZpZyhSZW1vdGVBUEksIHNhbXBs
ZWlPU0NvbmZpZygpLCBidWlsZGVyTmFtZVRvSURNYXAoKSk7CiAgICAgICAgICAgICBjb25zdCBy
ZXF1ZXN0ID0gY3JlYXRlU2FtcGxlQnVpbGRSZXF1ZXN0KE1vY2tNb2RlbHMuaXBob25lLCBNb2Nr
TW9kZWxzLnNwZWVkb21ldGVyKTsKICAgICAgICAgICAgIGNvbnN0IHByb3BlcnRpZXMgPSBzeW5j
ZXJzWzBdLl9wcm9wZXJ0aWVzRm9yQnVpbGRSZXF1ZXN0KHJlcXVlc3QsIFtyZXF1ZXN0XSk7CiAg
ICAgICAgICAgICBhc3NlcnQuZXF1YWwocHJvcGVydGllc1snb3BlbnNvdXJjZSddLCAnMTk3NDYz
Jyk7CkBAIC0xMDA5LDcgKzEwMjIsNyBAQCBkZXNjcmliZSgnQnVpbGRib3RTeW5jZXInLCAoKSA9
PiB7CiAgICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICAgICAnYWNjZXB0c1Jvb3RzJzog
dHJ1ZSwKICAgICAgICAgICAgIH07Ci0gICAgICAgICAgICBjb25zdCBzeW5jZXJzID0gQnVpbGRi
b3RTeW5jZXIuX2xvYWRDb25maWcoUmVtb3RlQVBJLCBjb25maWcpOworICAgICAgICAgICAgY29u
c3Qgc3luY2VycyA9IEJ1aWxkYm90U3luY2VyLl9sb2FkQ29uZmlnKFJlbW90ZUFQSSwgY29uZmln
LCBidWlsZGVyTmFtZVRvSURNYXAoKSk7CiAgICAgICAgICAgICBjb25zdCByZXF1ZXN0ID0gY3Jl
YXRlU2FtcGxlQnVpbGRSZXF1ZXN0V2l0aFBhdGNoKE1vY2tNb2RlbHMuaXBob25lLCBudWxsLCAt
MSk7CiAgICAgICAgICAgICBjb25zdCBwcm9wZXJ0aWVzID0gc3luY2Vyc1syXS5fcHJvcGVydGll
c0ZvckJ1aWxkUmVxdWVzdChyZXF1ZXN0LCBbcmVxdWVzdF0pOwogICAgICAgICAgICAgYXNzZXJ0
LmVxdWFsKHByb3BlcnRpZXNbJ3dlYmtpdCddLCAnMTk3NDYzJyk7CkBAIC0xMDMxLDcgKzEwNDQs
NyBAQCBkZXNjcmliZSgnQnVpbGRib3RTeW5jZXInLCAoKSA9PiB7CiAgICAgICAgICAgICAgICAg
fSwKICAgICAgICAgICAgICAgICAnYWNjZXB0c1Jvb3RzJzogdHJ1ZSwKICAgICAgICAgICAgIH07
Ci0gICAgICAgICAgICBjb25zdCBzeW5jZXJzID0gQnVpbGRib3RTeW5jZXIuX2xvYWRDb25maWco
UmVtb3RlQVBJLCBjb25maWcpOworICAgICAgICAgICAgY29uc3Qgc3luY2VycyA9IEJ1aWxkYm90
U3luY2VyLl9sb2FkQ29uZmlnKFJlbW90ZUFQSSwgY29uZmlnLCBidWlsZGVyTmFtZVRvSURNYXAo
KSk7CiAgICAgICAgICAgICBjb25zdCByZXF1ZXN0VG9CdWlsZCA9IGNyZWF0ZVNhbXBsZUJ1aWxk
UmVxdWVzdFdpdGhQYXRjaChNb2NrTW9kZWxzLmlwaG9uZSwgbnVsbCwgLTEpOwogICAgICAgICAg
ICAgY29uc3QgcmVxdWVzdFRvVGVzdCA9IGNyZWF0ZVNhbXBsZUJ1aWxkUmVxdWVzdFdpdGhQYXRj
aChNb2NrTW9kZWxzLmlwaG9uZSwgTW9ja01vZGVscy5zcGVlZG9tZXRlciwgMCk7CiAgICAgICAg
ICAgICBjb25zdCBvdGhlclJlcXVlc3RUb1Rlc3QgPSBjcmVhdGVTYW1wbGVCdWlsZFJlcXVlc3Qo
TW9ja01vZGVscy5pcGhvbmUsIE1vY2tNb2RlbHMuc3BlZWRvbWV0ZXIpOwpAQCAtMTA3NSw3ICsx
MDg4LDcgQEAgZGVzY3JpYmUoJ0J1aWxkYm90U3luY2VyJywgKCkgPT4gewogICAgICAgICAgICAg
ICAgIH0sCiAgICAgICAgICAgICAgICAgJ2FjY2VwdHNSb290cyc6IHRydWUsCiAgICAgICAgICAg
ICB9OwotICAgICAgICAgICAgY29uc3Qgc3luY2VycyA9IEJ1aWxkYm90U3luY2VyLl9sb2FkQ29u
ZmlnKFJlbW90ZUFQSSwgY29uZmlnKTsKKyAgICAgICAgICAgIGNvbnN0IHN5bmNlcnMgPSBCdWls
ZGJvdFN5bmNlci5fbG9hZENvbmZpZyhSZW1vdGVBUEksIGNvbmZpZywgYnVpbGRlck5hbWVUb0lE
TWFwKCkpOwogICAgICAgICAgICAgY29uc3QgcmVxdWVzdCA9IGNyZWF0ZVNhbXBsZUJ1aWxkUmVx
dWVzdFdpdGhPd25lZENvbW1pdChNb2NrTW9kZWxzLmlwaG9uZSwgbnVsbCwgLTEpOwogICAgICAg
ICAgICAgY29uc3QgcHJvcGVydGllcyA9IHN5bmNlcnNbMl0uX3Byb3BlcnRpZXNGb3JCdWlsZFJl
cXVlc3QocmVxdWVzdCwgW3JlcXVlc3RdKTsKICAgICAgICAgICAgIGFzc2VydC5lcXVhbChwcm9w
ZXJ0aWVzWyd3ZWJraXQnXSwgJzE5NzQ2MycpOwpAQCAtMTEwNCw3ICsxMTE3LDcgQEAgZGVzY3Jp
YmUoJ0J1aWxkYm90U3luY2VyJywgKCkgPT4gewogICAgICAgICAgICAgICAgIH0sCiAgICAgICAg
ICAgICAgICAgJ2FjY2VwdHNSb290cyc6IHRydWUsCiAgICAgICAgICAgICB9OwotICAgICAgICAg
ICAgY29uc3Qgc3luY2VycyA9IEJ1aWxkYm90U3luY2VyLl9sb2FkQ29uZmlnKFJlbW90ZUFQSSwg
Y29uZmlnKTsKKyAgICAgICAgICAgIGNvbnN0IHN5bmNlcnMgPSBCdWlsZGJvdFN5bmNlci5fbG9h
ZENvbmZpZyhSZW1vdGVBUEksIGNvbmZpZywgYnVpbGRlck5hbWVUb0lETWFwKCkpOwogICAgICAg
ICAgICAgY29uc3QgcmVxdWVzdCA9IGNyZWF0ZVNhbXBsZUJ1aWxkUmVxdWVzdFdpdGhPd25lZENv
bW1pdEFuZFBhdGNoKE1vY2tNb2RlbHMuaXBob25lLCBudWxsLCAtMSk7CiAgICAgICAgICAgICBj
b25zdCBwcm9wZXJ0aWVzID0gc3luY2Vyc1syXS5fcHJvcGVydGllc0ZvckJ1aWxkUmVxdWVzdChy
ZXF1ZXN0LCBbcmVxdWVzdF0pOwogICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHByb3BlcnRpZXNb
J3dlYmtpdCddLCAnMTk3NDYzJyk7CkBAIC0xMTE1LDcgKzExMjgsNyBAQCBkZXNjcmliZSgnQnVp
bGRib3RTeW5jZXInLCAoKSA9PiB7CiAgICAgICAgIH0pOwogCiAgICAgICAgIGl0KCdzaG91bGQg
c2V0IHRoZSBwcm9wZXJ0eSBmb3IgdGhlIGJ1aWxkIHJlcXVlc3QgaWQnLCAoKSA9PiB7Ci0gICAg
ICAgICAgICBjb25zdCBzeW5jZXJzID0gQnVpbGRib3RTeW5jZXIuX2xvYWRDb25maWcoUmVtb3Rl
QVBJLCBzYW1wbGVpT1NDb25maWcoKSk7CisgICAgICAgICAgICBjb25zdCBzeW5jZXJzID0gQnVp
bGRib3RTeW5jZXIuX2xvYWRDb25maWcoUmVtb3RlQVBJLCBzYW1wbGVpT1NDb25maWcoKSwgYnVp
bGRlck5hbWVUb0lETWFwKCkpOwogICAgICAgICAgICAgY29uc3QgcmVxdWVzdCA9IGNyZWF0ZVNh
bXBsZUJ1aWxkUmVxdWVzdChNb2NrTW9kZWxzLmlwaG9uZSwgTW9ja01vZGVscy5zcGVlZG9tZXRl
cik7CiAgICAgICAgICAgICBjb25zdCBwcm9wZXJ0aWVzID0gc3luY2Vyc1swXS5fcHJvcGVydGll
c0ZvckJ1aWxkUmVxdWVzdChyZXF1ZXN0LCBbcmVxdWVzdF0pOwogICAgICAgICAgICAgYXNzZXJ0
LmVxdWFsKHByb3BlcnRpZXNbJ2J1aWxkX3JlcXVlc3RfaWQnXSwgcmVxdWVzdC5pZCgpKTsKQEAg
LTExMjQsNyArMTEzNyw3IEBAIGRlc2NyaWJlKCdCdWlsZGJvdFN5bmNlcicsICgpID0+IHsKIAog
ICAgIGRlc2NyaWJlKCdwdWxsQnVpbGRib3QnLCAoKSA9PiB7CiAgICAgICAgIGl0KCdzaG91bGQg
ZmV0Y2ggcGVuZGluZyBidWlsZHMgZnJvbSB0aGUgcmlnaHQgVVJMJywgKCkgPT4gewotICAgICAg
ICAgICAgbGV0IHN5bmNlciA9IEJ1aWxkYm90U3luY2VyLl9sb2FkQ29uZmlnKE1vY2tSZW1vdGVB
UEksIHNhbXBsZWlPU0NvbmZpZygpKVsxXTsKKyAgICAgICAgICAgIGxldCBzeW5jZXIgPSBCdWls
ZGJvdFN5bmNlci5fbG9hZENvbmZpZyhNb2NrUmVtb3RlQVBJLCBzYW1wbGVpT1NDb25maWcoKSwg
YnVpbGRlck5hbWVUb0lETWFwKCkpWzFdOwogICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHN5bmNl
ci5idWlsZGVyTmFtZSgpLCAnQUJUZXN0LWlQYWQtUnVuQmVuY2htYXJrLVRlc3RzJyk7CiAgICAg
ICAgICAgICBsZXQgZXhwZWN0ZWRVUkwgPSAnL2pzb24vYnVpbGRlcnMvQUJUZXN0LWlQYWQtUnVu
QmVuY2htYXJrLVRlc3RzL3BlbmRpbmdCdWlsZHMnOwogICAgICAgICAgICAgYXNzZXJ0LmVxdWFs
KHN5bmNlci5wYXRoRm9yUGVuZGluZ0J1aWxkc0pTT04oKSwgZXhwZWN0ZWRVUkwpOwpAQCAtMTEz
NCw3ICsxMTQ3LDcgQEAgZGVzY3JpYmUoJ0J1aWxkYm90U3luY2VyJywgKCkgPT4gewogICAgICAg
ICB9KTsKIAogICAgICAgICBpdCgnc2hvdWxkIGZldGNoIHJlY2VudCBidWlsZHMgb25jZSBwZW5k
aW5nIGJ1aWxkcyBoYXZlIGJlZW4gZmV0Y2hlZCcsICgpID0+IHsKLSAgICAgICAgICAgIGxldCBz
eW5jZXIgPSBCdWlsZGJvdFN5bmNlci5fbG9hZENvbmZpZyhNb2NrUmVtb3RlQVBJLCBzYW1wbGVp
T1NDb25maWcoKSlbMV07CisgICAgICAgICAgICBsZXQgc3luY2VyID0gQnVpbGRib3RTeW5jZXIu
X2xvYWRDb25maWcoTW9ja1JlbW90ZUFQSSwgc2FtcGxlaU9TQ29uZmlnKCksIGJ1aWxkZXJOYW1l
VG9JRE1hcCgpKVsxXTsKICAgICAgICAgICAgIGFzc2VydC5lcXVhbChzeW5jZXIuYnVpbGRlck5h
bWUoKSwgJ0FCVGVzdC1pUGFkLVJ1bkJlbmNobWFyay1UZXN0cycpOwogCiAgICAgICAgICAgICBz
eW5jZXIucHVsbEJ1aWxkYm90KDEpOwpAQCAtMTE0OCw3ICsxMTYxLDcgQEAgZGVzY3JpYmUoJ0J1
aWxkYm90U3luY2VyJywgKCkgPT4gewogICAgICAgICB9KTsKIAogICAgICAgICBpdCgnc2hvdWxk
IGZldGNoIHRoZSByaWdodCBudW1iZXIgb2YgcmVjZW50IGJ1aWxkcycsICgpID0+IHsKLSAgICAg
ICAgICAgIGxldCBzeW5jZXIgPSBCdWlsZGJvdFN5bmNlci5fbG9hZENvbmZpZyhNb2NrUmVtb3Rl
QVBJLCBzYW1wbGVpT1NDb25maWcoKSlbMV07CisgICAgICAgICAgICBsZXQgc3luY2VyID0gQnVp
bGRib3RTeW5jZXIuX2xvYWRDb25maWcoTW9ja1JlbW90ZUFQSSwgc2FtcGxlaU9TQ29uZmlnKCks
IGJ1aWxkZXJOYW1lVG9JRE1hcCgpKVsxXTsKIAogICAgICAgICAgICAgc3luY2VyLnB1bGxCdWls
ZGJvdCgzKTsKICAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXF1ZXN0cy5sZW5ndGgsIDEpOwpA
QCAtMTE2MSw3ICsxMTc0LDcgQEAgZGVzY3JpYmUoJ0J1aWxkYm90U3luY2VyJywgKCkgPT4gewog
ICAgICAgICB9KTsKIAogICAgICAgICBpdCgnc2hvdWxkIGNyZWF0ZSBCdWlsZGJvdEJ1aWxkRW50
cnkgZm9yIHBlbmRpbmcgYnVpbGRzJywgKCkgPT4gewotICAgICAgICAgICAgbGV0IHN5bmNlciA9
IEJ1aWxkYm90U3luY2VyLl9sb2FkQ29uZmlnKE1vY2tSZW1vdGVBUEksIHNhbXBsZWlPU0NvbmZp
ZygpKVsxXTsKKyAgICAgICAgICAgIGxldCBzeW5jZXIgPSBCdWlsZGJvdFN5bmNlci5fbG9hZENv
bmZpZyhNb2NrUmVtb3RlQVBJLCBzYW1wbGVpT1NDb25maWcoKSwgYnVpbGRlck5hbWVUb0lETWFw
KCkpWzFdOwogICAgICAgICAgICAgbGV0IHByb21pc2UgPSBzeW5jZXIucHVsbEJ1aWxkYm90KCk7
CiAgICAgICAgICAgICByZXF1ZXN0c1swXS5yZXNvbHZlKFtzYW1wbGVQZW5kaW5nQnVpbGQoKV0p
OwogICAgICAgICAgICAgcmV0dXJuIHByb21pc2UudGhlbigoZW50cmllcykgPT4gewpAQCAtMTE3
OSw3ICsxMTkyLDcgQEAgZGVzY3JpYmUoJ0J1aWxkYm90U3luY2VyJywgKCkgPT4gewogICAgICAg
ICB9KTsKIAogICAgICAgICBpdCgnc2hvdWxkIGNyZWF0ZSBCdWlsZGJvdEJ1aWxkRW50cnkgZm9y
IGluLXByb2dyZXNzIGJ1aWxkcycsICgpID0+IHsKLSAgICAgICAgICAgIGxldCBzeW5jZXIgPSBC
dWlsZGJvdFN5bmNlci5fbG9hZENvbmZpZyhNb2NrUmVtb3RlQVBJLCBzYW1wbGVpT1NDb25maWco
KSlbMV07CisgICAgICAgICAgICBsZXQgc3luY2VyID0gQnVpbGRib3RTeW5jZXIuX2xvYWRDb25m
aWcoTW9ja1JlbW90ZUFQSSwgc2FtcGxlaU9TQ29uZmlnKCksIGJ1aWxkZXJOYW1lVG9JRE1hcCgp
KVsxXTsKIAogICAgICAgICAgICAgbGV0IHByb21pc2UgPSBzeW5jZXIucHVsbEJ1aWxkYm90KDEp
OwogICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlcXVlc3RzLmxlbmd0aCwgMSk7CkBAIC0xMjAz
LDcgKzEyMTYsNyBAQCBkZXNjcmliZSgnQnVpbGRib3RTeW5jZXInLCAoKSA9PiB7CiAgICAgICAg
IH0pOwogCiAgICAgICAgIGl0KCdzaG91bGQgY3JlYXRlIEJ1aWxkYm90QnVpbGRFbnRyeSBmb3Ig
ZmluaXNoZWQgYnVpbGRzJywgKCkgPT4gewotICAgICAgICAgICAgbGV0IHN5bmNlciA9IEJ1aWxk
Ym90U3luY2VyLl9sb2FkQ29uZmlnKE1vY2tSZW1vdGVBUEksIHNhbXBsZWlPU0NvbmZpZygpKVsx
XTsKKyAgICAgICAgICAgIGxldCBzeW5jZXIgPSBCdWlsZGJvdFN5bmNlci5fbG9hZENvbmZpZyhN
b2NrUmVtb3RlQVBJLCBzYW1wbGVpT1NDb25maWcoKSwgYnVpbGRlck5hbWVUb0lETWFwKCkpWzFd
OwogCiAgICAgICAgICAgICBsZXQgcHJvbWlzZSA9IHN5bmNlci5wdWxsQnVpbGRib3QoMSk7CiAg
ICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVxdWVzdHMubGVuZ3RoLCAxKTsKQEAgLTEyMjcsNyAr
MTI0MCw3IEBAIGRlc2NyaWJlKCdCdWlsZGJvdFN5bmNlcicsICgpID0+IHsKICAgICAgICAgfSk7
CiAKICAgICAgICAgaXQoJ3Nob3VsZCBjcmVhdGUgQnVpbGRib3RCdWlsZEVudHJ5IGZvciBtaXhl
ZCBwZW5kaW5nLCBpbi1wcm9ncmVzcywgZmluaXNoZWQsIGFuZCBtaXNzaW5nIGJ1aWxkcycsICgp
ID0+IHsKLSAgICAgICAgICAgIGxldCBzeW5jZXIgPSBCdWlsZGJvdFN5bmNlci5fbG9hZENvbmZp
ZyhNb2NrUmVtb3RlQVBJLCBzYW1wbGVpT1NDb25maWcoKSlbMV07CisgICAgICAgICAgICBsZXQg
c3luY2VyID0gQnVpbGRib3RTeW5jZXIuX2xvYWRDb25maWcoTW9ja1JlbW90ZUFQSSwgc2FtcGxl
aU9TQ29uZmlnKCksIGJ1aWxkZXJOYW1lVG9JRE1hcCgpKVsxXTsKIAogICAgICAgICAgICAgbGV0
IHByb21pc2UgPSBzeW5jZXIucHVsbEJ1aWxkYm90KDUpOwogICAgICAgICAgICAgYXNzZXJ0LmVx
dWFsKHJlcXVlc3RzLmxlbmd0aCwgMSk7CkBAIC0xMjc0LDcgKzEyODcsNyBAQCBkZXNjcmliZSgn
QnVpbGRib3RTeW5jZXInLCAoKSA9PiB7CiAgICAgICAgIH0pOwogCiAgICAgICAgIGl0KCdzaG91
bGQgc29ydCBCdWlsZGJvdEJ1aWxkRW50cnkgYnkgb3JkZXInLCAoKSA9PiB7Ci0gICAgICAgICAg
ICBsZXQgc3luY2VyID0gQnVpbGRib3RTeW5jZXIuX2xvYWRDb25maWcoTW9ja1JlbW90ZUFQSSwg
c2FtcGxlaU9TQ29uZmlnKCkpWzFdOworICAgICAgICAgICAgbGV0IHN5bmNlciA9IEJ1aWxkYm90
U3luY2VyLl9sb2FkQ29uZmlnKE1vY2tSZW1vdGVBUEksIHNhbXBsZWlPU0NvbmZpZygpLCBidWls
ZGVyTmFtZVRvSURNYXAoKSlbMV07CiAKICAgICAgICAgICAgIGxldCBwcm9taXNlID0gc3luY2Vy
LnB1bGxCdWlsZGJvdCg1KTsKICAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXF1ZXN0cy5sZW5n
dGgsIDEpOwpAQCAtMTMzMSw3ICsxMzQ0LDcgQEAgZGVzY3JpYmUoJ0J1aWxkYm90U3luY2VyJywg
KCkgPT4gewogICAgICAgICB9KTsKIAogICAgICAgICBpdCgnc2hvdWxkIG92ZXJyaWRlIEJ1aWxk
Ym90QnVpbGRFbnRyeSBmb3IgcGVuZGluZyBidWlsZHMgYnkgaW4tcHJvZ3Jlc3MgYnVpbGRzJywg
KCkgPT4gewotICAgICAgICAgICAgbGV0IHN5bmNlciA9IEJ1aWxkYm90U3luY2VyLl9sb2FkQ29u
ZmlnKE1vY2tSZW1vdGVBUEksIHNhbXBsZWlPU0NvbmZpZygpKVsxXTsKKyAgICAgICAgICAgIGxl
dCBzeW5jZXIgPSBCdWlsZGJvdFN5bmNlci5fbG9hZENvbmZpZyhNb2NrUmVtb3RlQVBJLCBzYW1w
bGVpT1NDb25maWcoKSwgYnVpbGRlck5hbWVUb0lETWFwKCkpWzFdOwogCiAgICAgICAgICAgICBs
ZXQgcHJvbWlzZSA9IHN5bmNlci5wdWxsQnVpbGRib3QoNSk7CiAgICAgICAgICAgICBhc3NlcnQu
ZXF1YWwocmVxdWVzdHMubGVuZ3RoLCAxKTsKQEAgLTEzNTgsNyArMTM3MSw3IEBAIGRlc2NyaWJl
KCdCdWlsZGJvdFN5bmNlcicsICgpID0+IHsKICAgICAgICAgfSk7CiAKICAgICAgICAgaXQoJ3No
b3VsZCBvdmVycmlkZSBCdWlsZGJvdEJ1aWxkRW50cnkgZm9yIHBlbmRpbmcgYnVpbGRzIGJ5IGZp
bmlzaGVkIGJ1aWxkcycsICgpID0+IHsKLSAgICAgICAgICAgIGxldCBzeW5jZXIgPSBCdWlsZGJv
dFN5bmNlci5fbG9hZENvbmZpZyhNb2NrUmVtb3RlQVBJLCBzYW1wbGVpT1NDb25maWcoKSlbMV07
CisgICAgICAgICAgICBsZXQgc3luY2VyID0gQnVpbGRib3RTeW5jZXIuX2xvYWRDb25maWcoTW9j
a1JlbW90ZUFQSSwgc2FtcGxlaU9TQ29uZmlnKCksIGJ1aWxkZXJOYW1lVG9JRE1hcCgpKVsxXTsK
IAogICAgICAgICAgICAgbGV0IHByb21pc2UgPSBzeW5jZXIucHVsbEJ1aWxkYm90KDUpOwogICAg
ICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlcXVlc3RzLmxlbmd0aCwgMSk7CkBAIC0xMzg3LDcgKzE0
MDAsNyBAQCBkZXNjcmliZSgnQnVpbGRib3RTeW5jZXInLCAoKSA9PiB7CiAKICAgICBkZXNjcmli
ZSgnc2NoZWR1bGVSZXF1ZXN0JywgKCkgPT4gewogICAgICAgICBpdCgnc2hvdWxkIHNjaGVkdWxl
IGEgYnVpbGQgcmVxdWVzdCBvbiBhIHNwZWNpZmllZCBzbGF2ZScsICgpID0+IHsKLSAgICAgICAg
ICAgIGxldCBzeW5jZXIgPSBCdWlsZGJvdFN5bmNlci5fbG9hZENvbmZpZyhNb2NrUmVtb3RlQVBJ
LCBzYW1wbGVpT1NDb25maWcoKSlbMF07CisgICAgICAgICAgICBsZXQgc3luY2VyID0gQnVpbGRi
b3RTeW5jZXIuX2xvYWRDb25maWcoTW9ja1JlbW90ZUFQSSwgc2FtcGxlaU9TQ29uZmlnKCksIGJ1
aWxkZXJOYW1lVG9JRE1hcCgpKVswXTsKIAogICAgICAgICAgICAgY29uc3Qgd2FpdEZvclJlcXVl
c3QgPSBNb2NrUmVtb3RlQVBJLndhaXRGb3JSZXF1ZXN0KCk7CiAgICAgICAgICAgICBjb25zdCBy
ZXF1ZXN0ID0gY3JlYXRlU2FtcGxlQnVpbGRSZXF1ZXN0KE1vY2tNb2RlbHMuaXBob25lLCBNb2Nr
TW9kZWxzLnNwZWVkb21ldGVyKTsKQEAgLTE0MjQsNyArMTQzNyw3IEBAIGRlc2NyaWJlKCdCdWls
ZGJvdFN5bmNlcicsICgpID0+IHsKICAgICAgICAgfQogCiAgICAgICAgIGl0KCdzaG91bGQgc2No
ZWR1bGUgYSBidWlsZCBpZiBidWlsZGVyIGhhcyBubyBidWlsZHMgaWYgc2xhdmVMaXN0IGlzIG5v
dCBzcGVjaWZpZWQnLCAoKSA9PiB7Ci0gICAgICAgICAgICBsZXQgc3luY2VyID0gQnVpbGRib3RT
eW5jZXIuX2xvYWRDb25maWcoTW9ja1JlbW90ZUFQSSwgc21hbGxDb25maWd1cmF0aW9uKCkpWzBd
OworICAgICAgICAgICAgbGV0IHN5bmNlciA9IEJ1aWxkYm90U3luY2VyLl9sb2FkQ29uZmlnKE1v
Y2tSZW1vdGVBUEksIHNtYWxsQ29uZmlndXJhdGlvbigpLCBidWlsZGVyTmFtZVRvSURNYXAoKSlb
MF07CiAKICAgICAgICAgICAgIHJldHVybiBwdWxsQnVpbGRib3RXaXRoQXNzZXJ0aW9uKHN5bmNl
ciwgW10sIHt9KS50aGVuKCgpID0+IHsKICAgICAgICAgICAgICAgICBjb25zdCByZXF1ZXN0ID0g
Y3JlYXRlU2FtcGxlQnVpbGRSZXF1ZXN0KE1vY2tNb2RlbHMuc29tZVBsYXRmb3JtLCBNb2NrTW9k
ZWxzLnNvbWVUZXN0KTsKQEAgLTE0MzcsNyArMTQ1MCw3IEBAIGRlc2NyaWJlKCdCdWlsZGJvdFN5
bmNlcicsICgpID0+IHsKICAgICAgICAgfSk7CiAKICAgICAgICAgaXQoJ3Nob3VsZCBzY2hlZHVs
ZSBhIGJ1aWxkIGlmIGJ1aWxkZXIgb25seSBoYXMgZmluaXNoZWQgYnVpbGRzIGlmIHNsYXZlTGlz
dCBpcyBub3Qgc3BlY2lmaWVkJywgKCkgPT4gewotICAgICAgICAgICAgbGV0IHN5bmNlciA9IEJ1
aWxkYm90U3luY2VyLl9sb2FkQ29uZmlnKE1vY2tSZW1vdGVBUEksIHNtYWxsQ29uZmlndXJhdGlv
bigpKVswXTsKKyAgICAgICAgICAgIGxldCBzeW5jZXIgPSBCdWlsZGJvdFN5bmNlci5fbG9hZENv
bmZpZyhNb2NrUmVtb3RlQVBJLCBzbWFsbENvbmZpZ3VyYXRpb24oKSwgYnVpbGRlck5hbWVUb0lE
TWFwKCkpWzBdOwogCiAgICAgICAgICAgICByZXR1cm4gcHVsbEJ1aWxkYm90V2l0aEFzc2VydGlv
bihzeW5jZXIsIFtdLCB7Wy0xXTogc21hbGxGaW5pc2hlZEJ1aWxkKCl9KS50aGVuKCgpID0+IHsK
ICAgICAgICAgICAgICAgICBjb25zdCByZXF1ZXN0ID0gY3JlYXRlU2FtcGxlQnVpbGRSZXF1ZXN0
KE1vY2tNb2RlbHMuc29tZVBsYXRmb3JtLCBNb2NrTW9kZWxzLnNvbWVUZXN0KTsKQEAgLTE0NTAs
NyArMTQ2Myw3IEBAIGRlc2NyaWJlKCdCdWlsZGJvdFN5bmNlcicsICgpID0+IHsKICAgICAgICAg
fSk7CiAKICAgICAgICAgaXQoJ3Nob3VsZCBub3Qgc2NoZWR1bGUgYSBidWlsZCBpZiBidWlsZGVy
IGhhcyBhIHBlbmRpbmcgYnVpbGQgaWYgc2xhdmVMaXN0IGlzIG5vdCBzcGVjaWZpZWQnLCAoKSA9
PiB7Ci0gICAgICAgICAgICBsZXQgc3luY2VyID0gQnVpbGRib3RTeW5jZXIuX2xvYWRDb25maWco
TW9ja1JlbW90ZUFQSSwgc21hbGxDb25maWd1cmF0aW9uKCkpWzBdOworICAgICAgICAgICAgbGV0
IHN5bmNlciA9IEJ1aWxkYm90U3luY2VyLl9sb2FkQ29uZmlnKE1vY2tSZW1vdGVBUEksIHNtYWxs
Q29uZmlndXJhdGlvbigpLCBidWlsZGVyTmFtZVRvSURNYXAoKSlbMF07CiAKICAgICAgICAgICAg
IHJldHVybiBwdWxsQnVpbGRib3RXaXRoQXNzZXJ0aW9uKHN5bmNlciwgW3NtYWxsUGVuZGluZ0J1
aWxkKCldLCB7fSkudGhlbigoKSA9PiB7CiAgICAgICAgICAgICAgICAgc3luY2VyLnNjaGVkdWxl
UmVxdWVzdEluR3JvdXBJZkF2YWlsYWJsZShjcmVhdGVTYW1wbGVCdWlsZFJlcXVlc3QoTW9ja01v
ZGVscy5zb21lUGxhdGZvcm0sIE1vY2tNb2RlbHMuc29tZVRlc3QpKTsKQEAgLTE0NTksNyArMTQ3
Miw3IEBAIGRlc2NyaWJlKCdCdWlsZGJvdFN5bmNlcicsICgpID0+IHsKICAgICAgICAgfSk7CiAK
ICAgICAgICAgaXQoJ3Nob3VsZCBzY2hlZHVsZSBhIGJ1aWxkIGlmIGJ1aWxkZXIgZG9lcyBub3Qg
aGF2ZSBwZW5kaW5nIG9yIGNvbXBsZXRlZCBidWlsZHMgb24gdGhlIG1hdGNoaW5nIHNsYXZlJywg
KCkgPT4gewotICAgICAgICAgICAgbGV0IHN5bmNlciA9IEJ1aWxkYm90U3luY2VyLl9sb2FkQ29u
ZmlnKE1vY2tSZW1vdGVBUEksIHNhbXBsZWlPU0NvbmZpZygpKVswXTsKKyAgICAgICAgICAgIGxl
dCBzeW5jZXIgPSBCdWlsZGJvdFN5bmNlci5fbG9hZENvbmZpZyhNb2NrUmVtb3RlQVBJLCBzYW1w
bGVpT1NDb25maWcoKSwgYnVpbGRlck5hbWVUb0lETWFwKCkpWzBdOwogCiAgICAgICAgICAgICBy
ZXR1cm4gcHVsbEJ1aWxkYm90V2l0aEFzc2VydGlvbihzeW5jZXIsIFtdLCB7fSkudGhlbigoKSA9
PiB7CiAgICAgICAgICAgICAgICAgY29uc3QgcmVxdWVzdCA9IGNyZWF0ZVNhbXBsZUJ1aWxkUmVx
dWVzdChNb2NrTW9kZWxzLmlwaG9uZSwgTW9ja01vZGVscy5zcGVlZG9tZXRlcik7CkBAIC0xNDcx
LDcgKzE0ODQsNyBAQCBkZXNjcmliZSgnQnVpbGRib3RTeW5jZXInLCAoKSA9PiB7CiAgICAgICAg
IH0pOwogCiAgICAgICAgIGl0KCdzaG91bGQgc2NoZWR1bGUgYSBidWlsZCBpZiBidWlsZGVyIG9u
bHkgaGFzIGZpbmlzaGVkIGJ1aWxkcyBvbiB0aGUgbWF0Y2hpbmcgc2xhdmUnLCAoKSA9PiB7Ci0g
ICAgICAgICAgICBsZXQgc3luY2VyID0gQnVpbGRib3RTeW5jZXIuX2xvYWRDb25maWcoTW9ja1Jl
bW90ZUFQSSwgc2FtcGxlaU9TQ29uZmlnKCkpWzFdOworICAgICAgICAgICAgbGV0IHN5bmNlciA9
IEJ1aWxkYm90U3luY2VyLl9sb2FkQ29uZmlnKE1vY2tSZW1vdGVBUEksIHNhbXBsZWlPU0NvbmZp
ZygpLCBidWlsZGVyTmFtZVRvSURNYXAoKSlbMV07CiAKICAgICAgICAgICAgIHB1bGxCdWlsZGJv
dFdpdGhBc3NlcnRpb24oc3luY2VyLCBbXSwge1stMV06IHNhbXBsZUZpbmlzaGVkQnVpbGQoKX0p
LnRoZW4oKCkgPT4gewogICAgICAgICAgICAgICAgIGNvbnN0IHJlcXVlc3QgPSBjcmVhdGVTYW1w
bGVCdWlsZFJlcXVlc3QoTW9ja01vZGVscy5pcGFkLCBNb2NrTW9kZWxzLnNwZWVkb21ldGVyKTsK
QEAgLTE0ODMsNyArMTQ5Niw3IEBAIGRlc2NyaWJlKCdCdWlsZGJvdFN5bmNlcicsICgpID0+IHsK
ICAgICAgICAgfSk7CiAKICAgICAgICAgaXQoJ3Nob3VsZCBub3Qgc2NoZWR1bGUgYSBidWlsZCBp
ZiBidWlsZGVyIGhhcyBhIHBlbmRpbmcgYnVpbGQgb24gdGhlIG1hY2hpbmcgc2xhdmUnLCAoKSA9
PiB7Ci0gICAgICAgICAgICBsZXQgc3luY2VyID0gQnVpbGRib3RTeW5jZXIuX2xvYWRDb25maWco
TW9ja1JlbW90ZUFQSSwgc2FtcGxlaU9TQ29uZmlnKCkpWzFdOworICAgICAgICAgICAgbGV0IHN5
bmNlciA9IEJ1aWxkYm90U3luY2VyLl9sb2FkQ29uZmlnKE1vY2tSZW1vdGVBUEksIHNhbXBsZWlP
U0NvbmZpZygpLCBidWlsZGVyTmFtZVRvSURNYXAoKSlbMV07CiAKICAgICAgICAgICAgIHB1bGxC
dWlsZGJvdFdpdGhBc3NlcnRpb24oc3luY2VyLCBbc2FtcGxlUGVuZGluZ0J1aWxkKCldLCB7fSku
dGhlbigoKSA9PiB7CiAgICAgICAgICAgICAgICAgY29uc3QgcmVxdWVzdCA9IGNyZWF0ZVNhbXBs
ZUJ1aWxkUmVxdWVzdChNb2NrTW9kZWxzLmlwYWQsIE1vY2tNb2RlbHMuc3BlZWRvbWV0ZXIpOwpA
QCAtMTQ5Myw3ICsxNTA2LDcgQEAgZGVzY3JpYmUoJ0J1aWxkYm90U3luY2VyJywgKCkgPT4gewog
ICAgICAgICB9KTsKIAogICAgICAgICBpdCgnc2hvdWxkIHNjaGVkdWxlIGEgYnVpbGQgaWYgYnVp
bGRlciBvbmx5IGhhcyBhIHBlbmRpbmcgYnVpbGQgb24gYSBub24tbWFjaGluZyBzbGF2ZScsICgp
ID0+IHsKLSAgICAgICAgICAgIGxldCBzeW5jZXIgPSBCdWlsZGJvdFN5bmNlci5fbG9hZENvbmZp
ZyhNb2NrUmVtb3RlQVBJLCBzYW1wbGVpT1NDb25maWcoKSlbMV07CisgICAgICAgICAgICBsZXQg
c3luY2VyID0gQnVpbGRib3RTeW5jZXIuX2xvYWRDb25maWcoTW9ja1JlbW90ZUFQSSwgc2FtcGxl
aU9TQ29uZmlnKCksIGJ1aWxkZXJOYW1lVG9JRE1hcCgpKVsxXTsKIAogICAgICAgICAgICAgcmV0
dXJuIHB1bGxCdWlsZGJvdFdpdGhBc3NlcnRpb24oc3luY2VyLCBbc2FtcGxlUGVuZGluZ0J1aWxk
KDEsIDEsICdhbm90aGVyLXNsYXZlJyldLCB7fSkudGhlbigoKSA9PiB7CiAgICAgICAgICAgICAg
ICAgY29uc3QgcmVxdWVzdCA9IGNyZWF0ZVNhbXBsZUJ1aWxkUmVxdWVzdChNb2NrTW9kZWxzLmlw
YWQsIE1vY2tNb2RlbHMuc3BlZWRvbWV0ZXIpOwpAQCAtMTUwMyw3ICsxNTE2LDcgQEAgZGVzY3Jp
YmUoJ0J1aWxkYm90U3luY2VyJywgKCkgPT4gewogICAgICAgICB9KTsKIAogICAgICAgICBpdCgn
c2hvdWxkIHNjaGVkdWxlIGEgYnVpbGQgaWYgYnVpbGRlciBvbmx5IGhhcyBhbiBpbi1wcm9ncmVz
cyBidWlsZCBvbiB0aGUgbWF0Y2hpbmcgc2xhdmUnLCAoKSA9PiB7Ci0gICAgICAgICAgICBsZXQg
c3luY2VyID0gQnVpbGRib3RTeW5jZXIuX2xvYWRDb25maWcoTW9ja1JlbW90ZUFQSSwgc2FtcGxl
aU9TQ29uZmlnKCkpWzFdOworICAgICAgICAgICAgbGV0IHN5bmNlciA9IEJ1aWxkYm90U3luY2Vy
Ll9sb2FkQ29uZmlnKE1vY2tSZW1vdGVBUEksIHNhbXBsZWlPU0NvbmZpZygpLCBidWlsZGVyTmFt
ZVRvSURNYXAoKSlbMV07CiAKICAgICAgICAgICAgIHJldHVybiBwdWxsQnVpbGRib3RXaXRoQXNz
ZXJ0aW9uKHN5bmNlciwgW10sIHtbLTFdOiBzYW1wbGVJblByb2dyZXNzQnVpbGQoKX0pLnRoZW4o
KCkgPT4gewogICAgICAgICAgICAgICAgIGNvbnN0IHJlcXVlc3QgPSBjcmVhdGVTYW1wbGVCdWls
ZFJlcXVlc3QoTW9ja01vZGVscy5pcGFkLCBNb2NrTW9kZWxzLnNwZWVkb21ldGVyKTsKQEAgLTE1
MTMsNyArMTUyNiw3IEBAIGRlc2NyaWJlKCdCdWlsZGJvdFN5bmNlcicsICgpID0+IHsKICAgICAg
ICAgfSk7CiAKICAgICAgICAgaXQoJ3Nob3VsZCBzY2hlZHVsZSBhIGJ1aWxkIGlmIGJ1aWxkZXIg
aGFzIGFuIGluLXByb2dyZXNzIGJ1aWxkIG9uIGFub3RoZXIgc2xhdmUnLCAoKSA9PiB7Ci0gICAg
ICAgICAgICBsZXQgc3luY2VyID0gQnVpbGRib3RTeW5jZXIuX2xvYWRDb25maWcoTW9ja1JlbW90
ZUFQSSwgc2FtcGxlaU9TQ29uZmlnKCkpWzFdOworICAgICAgICAgICAgbGV0IHN5bmNlciA9IEJ1
aWxkYm90U3luY2VyLl9sb2FkQ29uZmlnKE1vY2tSZW1vdGVBUEksIHNhbXBsZWlPU0NvbmZpZygp
LCBidWlsZGVyTmFtZVRvSURNYXAoKSlbMV07CiAKICAgICAgICAgICAgIHJldHVybiBwdWxsQnVp
bGRib3RXaXRoQXNzZXJ0aW9uKHN5bmNlciwgW10sIHtbLTFdOiBzYW1wbGVJblByb2dyZXNzQnVp
bGQoJ290aGVyLXNsYXZlJyl9KS50aGVuKCgpID0+IHsKICAgICAgICAgICAgICAgICBjb25zdCBy
ZXF1ZXN0ID0gY3JlYXRlU2FtcGxlQnVpbGRSZXF1ZXN0KE1vY2tNb2RlbHMuaXBhZCwgTW9ja01v
ZGVscy5zcGVlZG9tZXRlcik7CkBAIC0xNTIzLDcgKzE1MzYsNyBAQCBkZXNjcmliZSgnQnVpbGRi
b3RTeW5jZXInLCAoKSA9PiB7CiAgICAgICAgIH0pOwogCiAgICAgICAgIGl0KCdzaG91bGQgbm90
IHNjaGVkdWxlIGEgYnVpbGQgaWYgdGhlIHJlcXVlc3QgZG9lcyBub3QgbWF0Y2ggYW55IGNvbmZp
Z3VyYXRpb24nLCAoKSA9PiB7Ci0gICAgICAgICAgICBsZXQgc3luY2VyID0gQnVpbGRib3RTeW5j
ZXIuX2xvYWRDb25maWcoTW9ja1JlbW90ZUFQSSwgc2FtcGxlaU9TQ29uZmlnKCkpWzBdOworICAg
ICAgICAgICAgbGV0IHN5bmNlciA9IEJ1aWxkYm90U3luY2VyLl9sb2FkQ29uZmlnKE1vY2tSZW1v
dGVBUEksIHNhbXBsZWlPU0NvbmZpZygpLCBidWlsZGVyTmFtZVRvSURNYXAoKSlbMF07CiAKICAg
ICAgICAgICAgIHJldHVybiBwdWxsQnVpbGRib3RXaXRoQXNzZXJ0aW9uKHN5bmNlciwgW10sIHt9
KS50aGVuKCgpID0+IHsKICAgICAgICAgICAgICAgICBjb25zdCByZXF1ZXN0ID0gY3JlYXRlU2Ft
cGxlQnVpbGRSZXF1ZXN0KE1vY2tNb2RlbHMuaXBhZCwgTW9ja01vZGVscy5zcGVlZG9tZXRlcik7
CkBAIC0xNTMzLDcgKzE1NDYsNyBAQCBkZXNjcmliZSgnQnVpbGRib3RTeW5jZXInLCAoKSA9PiB7
CiAgICAgICAgIH0pOwogCiAgICAgICAgIGl0KCdzaG91bGQgbm90IHNjaGVkdWxlIGEgYnVpbGQg
aWYgYSBuZXcgcmVxdWVzdCBoYWQgYmVlbiBzdWJtaXR0ZWQgdG8gdGhlIHNhbWUgc2xhdmUnLCAo
ZG9uZSkgPT4gewotICAgICAgICAgICAgbGV0IHN5bmNlciA9IEJ1aWxkYm90U3luY2VyLl9sb2Fk
Q29uZmlnKE1vY2tSZW1vdGVBUEksIHNhbXBsZWlPU0NvbmZpZygpKVsxXTsKKyAgICAgICAgICAg
IGxldCBzeW5jZXIgPSBCdWlsZGJvdFN5bmNlci5fbG9hZENvbmZpZyhNb2NrUmVtb3RlQVBJLCBz
YW1wbGVpT1NDb25maWcoKSwgYnVpbGRlck5hbWVUb0lETWFwKCkpWzFdOwogCiAgICAgICAgICAg
ICBwdWxsQnVpbGRib3RXaXRoQXNzZXJ0aW9uKHN5bmNlciwgW10sIHt9KS50aGVuKCgpID0+IHsK
ICAgICAgICAgICAgICAgICBsZXQgcmVxdWVzdCA9IGNyZWF0ZVNhbXBsZUJ1aWxkUmVxdWVzdChN
b2NrTW9kZWxzLmlwYWQsIE1vY2tNb2RlbHMuc3BlZWRvbWV0ZXIpOwpAQCAtMTU1MSw3ICsxNTY0
LDcgQEAgZGVzY3JpYmUoJ0J1aWxkYm90U3luY2VyJywgKCkgPT4gewogICAgICAgICB9KTsKIAog
ICAgICAgICBpdCgnc2hvdWxkIHNjaGVkdWxlIGEgYnVpbGQgaWYgYSBuZXcgcmVxdWVzdCBoYWQg
YmVlbiBzdWJtaXR0ZWQgdG8gYW5vdGhlciBzbGF2ZScsICgpID0+IHsKLSAgICAgICAgICAgIGxl
dCBzeW5jZXIgPSBCdWlsZGJvdFN5bmNlci5fbG9hZENvbmZpZyhNb2NrUmVtb3RlQVBJLCBzYW1w
bGVpT1NDb25maWcoKSlbMV07CisgICAgICAgICAgICBsZXQgc3luY2VyID0gQnVpbGRib3RTeW5j
ZXIuX2xvYWRDb25maWcoTW9ja1JlbW90ZUFQSSwgc2FtcGxlaU9TQ29uZmlnKCksIGJ1aWxkZXJO
YW1lVG9JRE1hcCgpKVsxXTsKIAogICAgICAgICAgICAgcmV0dXJuIHB1bGxCdWlsZGJvdFdpdGhB
c3NlcnRpb24oc3luY2VyLCBbXSwge30pLnRoZW4oKCkgPT4gewogICAgICAgICAgICAgICAgIGxl
dCByZXF1ZXN0ID0gY3JlYXRlU2FtcGxlQnVpbGRSZXF1ZXN0KE1vY2tNb2RlbHMuaXBhZCwgTW9j
a01vZGVscy5zcGVlZG9tZXRlcik7CkBAIC0xNTY0LDcgKzE1NzcsNyBAQCBkZXNjcmliZSgnQnVp
bGRib3RTeW5jZXInLCAoKSA9PiB7CiAgICAgICAgIH0pOwogCiAgICAgICAgIGl0KCdzaG91bGQg
bm90IHNjaGVkdWxlIGEgYnVpbGQgaWYgYSBuZXcgcmVxdWVzdCBoYWQgYmVlbiBzdWJtaXR0ZWQg
dG8gdGhlIHNhbWUgYnVpbGRlciB3aXRob3V0IHNsYXZlTGlzdCcsICgpID0+IHsKLSAgICAgICAg
ICAgIGxldCBzeW5jZXIgPSBCdWlsZGJvdFN5bmNlci5fbG9hZENvbmZpZyhNb2NrUmVtb3RlQVBJ
LCBzbWFsbENvbmZpZ3VyYXRpb24oKSlbMF07CisgICAgICAgICAgICBsZXQgc3luY2VyID0gQnVp
bGRib3RTeW5jZXIuX2xvYWRDb25maWcoTW9ja1JlbW90ZUFQSSwgc21hbGxDb25maWd1cmF0aW9u
KCksIGJ1aWxkZXJOYW1lVG9JRE1hcCgpKVswXTsKIAogICAgICAgICAgICAgcmV0dXJuIHB1bGxC
dWlsZGJvdFdpdGhBc3NlcnRpb24oc3luY2VyLCBbXSwge30pLnRoZW4oKCkgPT4gewogICAgICAg
ICAgICAgICAgIGxldCByZXF1ZXN0ID0gY3JlYXRlU2FtcGxlQnVpbGRSZXF1ZXN0KE1vY2tNb2Rl
bHMuc29tZVBsYXRmb3JtLCBNb2NrTW9kZWxzLnNvbWVUZXN0KTsK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>328622</attachid>
            <date>2017-12-06 13:57:06 -0800</date>
            <delta_ts>2018-01-18 19:36:37 -0800</delta_ts>
            <desc>Updated patch</desc>
            <filename>patch_buildbot_perf_builderNameToIDMap_v5</filename>
            <type>text/plain</type>
            <size>78212</size>
            <attacher name="Aakash Jain">aakash_jain</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
V2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL0NoYW5nZUxvZwkocmV2aXNpb24gMjI1NTkzKQorKysg
V2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwz
ICsxLDI4IEBACisyMDE3LTEyLTA2ICBBYWthc2ggSmFpbiAgPGFha2FzaF9qYWluQGFwcGxlLmNv
bT4KKworICAgICAgICBBZGQgc3VwcG9ydCBmb3IgYnVpbGRlck5hbWVUb0lETWFwIGluIEJ1aWxk
Ym90U3luY2VyCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD0xNzY1MjYKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAg
ICAqIHRvb2xzL2pzL2J1aWxkYm90LXN5bmNlci5qczoKKyAgICAgICAgKEJ1aWxkYm90U3luY2Vy
Ll9sb2FkQ29uZmlnKTogQWRkZWQgYnVpbGRlck5hbWVUb0lETWFwIHBhcmFtZXRlci4gSXQgd291
bGQgYmUgdXNlZCBsYXRlciBvbi4KKyAgICAgICAgKEJ1aWxkYm90U3luY2VyLl9yZXNvbHZlQnVp
bGRlcnNXaXRoUGxhdGZvcm1zKTogRGl0dG8uCisgICAgICAgIChCdWlsZGJvdFN5bmNlci5fdmFs
aWRhdGVBbmRNZXJnZUNvbmZpZyk6IEFkZGVkIGJ1aWxkZXJJRCBhcyBhIHZhbGlkIGNvbmZpZyBw
YXJhbWV0ZXIuCisgICAgICAgICogdG9vbHMvanMvYnVpbGRib3QtdHJpZ2dlcmFibGUuanM6Cisg
ICAgICAgIChCdWlsZGJvdFRyaWdnZXJhYmxlLnByb3RvdHlwZS5nZXRCdWlsZGVyTmFtZVRvSURN
YXApOiBNZXRob2QgdG8gZmV0Y2ggQnVpbGRlck5hbWVUb0lETWFwIGZyb20gQnVpbGRib3QgMC45
LgorICAgICAgICAoQnVpbGRib3RUcmlnZ2VyYWJsZS5wcm90b3R5cGUuZ2V0QnVpbGRlck5hbWVU
b0lETWFwRGVwcmVjYXRlZCk6IE1ldGhvZCB0byBmZXRjaCBCdWlsZGVyTmFtZVRvSURNYXAgZnJv
bSBCdWlsZGJvdCAwLjguCisgICAgICAgIChCdWlsZGJvdFRyaWdnZXJhYmxlLnByb3RvdHlwZS5p
bml0U3luY2Vycyk6IFVwZGF0ZWQgdG8gdXNlIGdldEJ1aWxkZXJOYW1lVG9JRE1hcC4KKyAgICAg
ICAgKiB1bml0LXRlc3RzL2J1aWxkYm90LXN5bmNlci10ZXN0cy5qczogVXBkYXRlZCB1bml0LXRl
c3RzLgorICAgICAgICAqIHNlcnZlci10ZXN0cy9yZXNvdXJjZXMvbW9jay1kYXRhLmpzOgorICAg
ICAgICAoTW9ja0RhdGEuYnVpbGRib3RCdWlsZGVyc1VSTCk6IFVSTCBmb3IgZmV0Y2hpbmcgQnVp
bGRlcnMgbGlzdC4KKyAgICAgICAgKE1vY2tEYXRhLmJ1aWxkYm90MDlCdWlsZGVyc1VSTCk6IERp
dHRvIGZvciBCdWlsZGJvdCAwLjkKKyAgICAgICAgKE1vY2tEYXRhLm1vY2tCdWlsZGJvdEJ1aWxk
ZXJzKTogU2FtcGxlIGJ1aWxkZXJzIGRhdGEgZm9yIEJ1aWxkYm90IDAuOAorICAgICAgICAoTW9j
a0RhdGEubW9ja0J1aWxkYm90MDlCdWlsZGVycyk6IERpdHRvIGZvciBCdWlsZGJvdCAwLjkKKyAg
ICAgICAgKiBzZXJ2ZXItdGVzdHMvdG9vbHMtYnVpbGRib3QtdHJpZ2dlcmFibGUtdGVzdHMuanM6
IFVwZGF0ZWQgdGVzdHMgdG8gaGFuZGxlIG5ld2x5IGFkZGVkIHByb21pc2UgZm9yIGZldGNoaW5n
IGJ1aWxkZXJzCisgICAgICAgIGxpc3QgZnJvbSBCdWlsZGJvdC4KKyAgICAgICAgKiBzZXJ2ZXIt
dGVzdHMvdG9vbHMtc3luYy1idWlsZGJvdC1pbnRlZ3JhdGlvbi10ZXN0cy5qczogRGl0dG8uCisK
IDIwMTctMTEtMDIgIERld2VpIFpodSAgPGRld2VpX3podUBhcHBsZS5jb20+CiAKICAgICAgICAg
QWRkIHBsYXRmb3JtIGFyZ3VtZW50IGZvciBzeW5jaW5nIHNjcmlwdC4KSW5kZXg6IFdlYnNpdGVz
L3BlcmYud2Via2l0Lm9yZy9zZXJ2ZXItdGVzdHMvdG9vbHMtYnVpbGRib3QtdHJpZ2dlcmFibGUt
dGVzdHMuanMKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL3NlcnZlci10
ZXN0cy90b29scy1idWlsZGJvdC10cmlnZ2VyYWJsZS10ZXN0cy5qcwkocmV2aXNpb24gMjI1NTkz
KQorKysgV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL3NlcnZlci10ZXN0cy90b29scy1idWlsZGJv
dC10cmlnZ2VyYWJsZS10ZXN0cy5qcwkod29ya2luZyBjb3B5KQpAQCAtMzYsNiArMzYsOCBAQCBk
ZXNjcmliZSgnQnVpbGRib3RUcmlnZ2VyYWJsZScsIGZ1bmN0aW9uCiAgICAgICAgICAgICAgICAg
Y29uc3Qgc2xhdmVJbmZvID0ge25hbWU6ICdzeW5jLXNsYXZlJywgcGFzc3dvcmQ6ICdwYXNzd29y
ZCd9OwogICAgICAgICAgICAgICAgIGNvbnN0IHRyaWdnZXJhYmxlID0gbmV3IEJ1aWxkYm90VHJp
Z2dlcmFibGUoY29uZmlnLCBUZXN0U2VydmVyLnJlbW90ZUFQSSgpLCBNb2NrUmVtb3RlQVBJLCBz
bGF2ZUluZm8sIGxvZ2dlcik7CiAgICAgICAgICAgICAgICAgc3luY1Byb21pc2UgPSB0cmlnZ2Vy
YWJsZS5pbml0U3luY2VycygpLnRoZW4oKCkgPT4gdHJpZ2dlcmFibGUuc3luY09uY2UoKSk7Cisg
ICAgICAgICAgICAgICAgYXNzZXJ0UmVxdWVzdEFuZFJlc29sdmUoTW9ja1JlbW90ZUFQSS5yZXF1
ZXN0c1swXSwgJ0dFVCcsIE1vY2tEYXRhLmJ1aWxkYm90QnVpbGRlcnNVUkwoKSwgTW9ja0RhdGEu
bW9ja0J1aWxkYm90QnVpbGRlcnMoKSk7CisgICAgICAgICAgICAgICAgTW9ja1JlbW90ZUFQSS5y
ZXNldCgpOwogICAgICAgICAgICAgICAgIHJldHVybiBNb2NrUmVtb3RlQVBJLndhaXRGb3JSZXF1
ZXN0KCk7CiAgICAgICAgICAgICB9KS50aGVuKCgpID0+IHsKICAgICAgICAgICAgICAgICBhc3Nl
cnQuZXF1YWwoQnVpbGRSZXF1ZXN0LmFsbCgpLmxlbmd0aCwgNCk7CkBAIC05MCw2ICs5Miw4IEBA
IGRlc2NyaWJlKCdCdWlsZGJvdFRyaWdnZXJhYmxlJywgZnVuY3Rpb24KICAgICAgICAgICAgICAg
ICBsZXQgc2xhdmVJbmZvID0ge25hbWU6ICdzeW5jLXNsYXZlJywgcGFzc3dvcmQ6ICdwYXNzd29y
ZCd9OwogICAgICAgICAgICAgICAgIGxldCB0cmlnZ2VyYWJsZSA9IG5ldyBCdWlsZGJvdFRyaWdn
ZXJhYmxlKGNvbmZpZywgVGVzdFNlcnZlci5yZW1vdGVBUEkoKSwgTW9ja1JlbW90ZUFQSSwgc2xh
dmVJbmZvLCBsb2dnZXIpOwogICAgICAgICAgICAgICAgIHN5bmNQcm9taXNlID0gdHJpZ2dlcmFi
bGUuaW5pdFN5bmNlcnMoKS50aGVuKCgpID0+IHRyaWdnZXJhYmxlLnN5bmNPbmNlKCkpOworICAg
ICAgICAgICAgICAgIGFzc2VydFJlcXVlc3RBbmRSZXNvbHZlKE1vY2tSZW1vdGVBUEkucmVxdWVz
dHNbMF0sICdHRVQnLCBNb2NrRGF0YS5idWlsZGJvdEJ1aWxkZXJzVVJMKCksIE1vY2tEYXRhLm1v
Y2tCdWlsZGJvdEJ1aWxkZXJzKCkpOworICAgICAgICAgICAgICAgIE1vY2tSZW1vdGVBUEkucmVz
ZXQoKTsKICAgICAgICAgICAgICAgICByZXR1cm4gTW9ja1JlbW90ZUFQSS53YWl0Rm9yUmVxdWVz
dCgpOwogICAgICAgICAgICAgfSkudGhlbigoKSA9PiB7CiAgICAgICAgICAgICAgICAgYXNzZXJ0
LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMF0ubWV0aG9kLCAnR0VUJyk7CkBAIC0xMzgs
NiArMTQyLDggQEAgZGVzY3JpYmUoJ0J1aWxkYm90VHJpZ2dlcmFibGUnLCBmdW5jdGlvbgogICAg
ICAgICAgICAgICAgIGNvbnN0IHNsYXZlSW5mbyA9IHtuYW1lOiAnc3luYy1zbGF2ZScsIHBhc3N3
b3JkOiAncGFzc3dvcmQnfTsKICAgICAgICAgICAgICAgICBjb25zdCB0cmlnZ2VyYWJsZSA9IG5l
dyBCdWlsZGJvdFRyaWdnZXJhYmxlKGNvbmZpZywgVGVzdFNlcnZlci5yZW1vdGVBUEkoKSwgTW9j
a1JlbW90ZUFQSSwgc2xhdmVJbmZvLCBsb2dnZXIpOwogICAgICAgICAgICAgICAgIHN5bmNQcm9t
aXNlID0gdHJpZ2dlcmFibGUuaW5pdFN5bmNlcnMoKS50aGVuKCgpID0+IHRyaWdnZXJhYmxlLnN5
bmNPbmNlKCkpOworICAgICAgICAgICAgICAgIGFzc2VydFJlcXVlc3RBbmRSZXNvbHZlKE1vY2tS
ZW1vdGVBUEkucmVxdWVzdHNbMF0sICdHRVQnLCBNb2NrRGF0YS5idWlsZGJvdEJ1aWxkZXJzVVJM
KCksIE1vY2tEYXRhLm1vY2tCdWlsZGJvdEJ1aWxkZXJzKCkpOworICAgICAgICAgICAgICAgIE1v
Y2tSZW1vdGVBUEkucmVzZXQoKTsKICAgICAgICAgICAgICAgICByZXR1cm4gTW9ja1JlbW90ZUFQ
SS53YWl0Rm9yUmVxdWVzdCgpOwogICAgICAgICAgICAgfSkudGhlbigoKSA9PiB7CiAgICAgICAg
ICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHMubGVuZ3RoLCAyKTsK
QEAgLTIxNyw2ICsyMjMsOCBAQCBkZXNjcmliZSgnQnVpbGRib3RUcmlnZ2VyYWJsZScsIGZ1bmN0
aW9uCiAgICAgICAgICAgICAgICAgbGV0IHNsYXZlSW5mbyA9IHtuYW1lOiAnc3luYy1zbGF2ZScs
IHBhc3N3b3JkOiAncGFzc3dvcmQnfTsKICAgICAgICAgICAgICAgICBsZXQgdHJpZ2dlcmFibGUg
PSBuZXcgQnVpbGRib3RUcmlnZ2VyYWJsZShjb25maWcsIFRlc3RTZXJ2ZXIucmVtb3RlQVBJKCks
IE1vY2tSZW1vdGVBUEksIHNsYXZlSW5mbywgbG9nZ2VyKTsKICAgICAgICAgICAgICAgICBzeW5j
UHJvbWlzZSA9IHRyaWdnZXJhYmxlLmluaXRTeW5jZXJzKCkudGhlbigoKSA9PiB0cmlnZ2VyYWJs
ZS5zeW5jT25jZSgpKTsKKyAgICAgICAgICAgICAgICBhc3NlcnRSZXF1ZXN0QW5kUmVzb2x2ZShN
b2NrUmVtb3RlQVBJLnJlcXVlc3RzWzBdLCAnR0VUJywgTW9ja0RhdGEuYnVpbGRib3RCdWlsZGVy
c1VSTCgpLCBNb2NrRGF0YS5tb2NrQnVpbGRib3RCdWlsZGVycygpKTsKKyAgICAgICAgICAgICAg
ICBNb2NrUmVtb3RlQVBJLnJlc2V0KCk7CiAgICAgICAgICAgICAgICAgcmV0dXJuIE1vY2tSZW1v
dGVBUEkud2FpdEZvclJlcXVlc3QoKTsKICAgICAgICAgICAgIH0pLnRoZW4oKCkgPT4gewogICAg
ICAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzLmxlbmd0aCwg
Mik7CkBAIC0yODksNiArMjk3LDggQEAgZGVzY3JpYmUoJ0J1aWxkYm90VHJpZ2dlcmFibGUnLCBm
dW5jdGlvbgogICAgICAgICAgICAgICAgIGNvbnN0IHNsYXZlSW5mbyA9IHtuYW1lOiAnc3luYy1z
bGF2ZScsIHBhc3N3b3JkOiAncGFzc3dvcmQnfTsKICAgICAgICAgICAgICAgICBjb25zdCB0cmln
Z2VyYWJsZSA9IG5ldyBCdWlsZGJvdFRyaWdnZXJhYmxlKGNvbmZpZywgVGVzdFNlcnZlci5yZW1v
dGVBUEkoKSwgTW9ja1JlbW90ZUFQSSwgc2xhdmVJbmZvLCBsb2dnZXIpOwogICAgICAgICAgICAg
ICAgIHN5bmNQcm9taXNlID0gdHJpZ2dlcmFibGUuaW5pdFN5bmNlcnMoKS50aGVuKCgpID0+IHRy
aWdnZXJhYmxlLnN5bmNPbmNlKCkpOworICAgICAgICAgICAgICAgIGFzc2VydFJlcXVlc3RBbmRS
ZXNvbHZlKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMF0sICdHRVQnLCBNb2NrRGF0YS5idWlsZGJv
dEJ1aWxkZXJzVVJMKCksIE1vY2tEYXRhLm1vY2tCdWlsZGJvdEJ1aWxkZXJzKCkpOworICAgICAg
ICAgICAgICAgIE1vY2tSZW1vdGVBUEkucmVzZXQoKTsKICAgICAgICAgICAgICAgICByZXR1cm4g
TW9ja1JlbW90ZUFQSS53YWl0Rm9yUmVxdWVzdCgpOwogICAgICAgICAgICAgfSkudGhlbigoKSA9
PiB7CiAgICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHMu
bGVuZ3RoLCAyKTsKQEAgLTM2OCw2ICszNzgsOCBAQCBkZXNjcmliZSgnQnVpbGRib3RUcmlnZ2Vy
YWJsZScsIGZ1bmN0aW9uCiAgICAgICAgICAgICAgICAgbGV0IHNsYXZlSW5mbyA9IHtuYW1lOiAn
c3luYy1zbGF2ZScsIHBhc3N3b3JkOiAncGFzc3dvcmQnfTsKICAgICAgICAgICAgICAgICBsZXQg
dHJpZ2dlcmFibGUgPSBuZXcgQnVpbGRib3RUcmlnZ2VyYWJsZShjb25maWcsIFRlc3RTZXJ2ZXIu
cmVtb3RlQVBJKCksIE1vY2tSZW1vdGVBUEksIHNsYXZlSW5mbywgbG9nZ2VyKTsKICAgICAgICAg
ICAgICAgICBzeW5jUHJvbWlzZSA9IHRyaWdnZXJhYmxlLmluaXRTeW5jZXJzKCkudGhlbigoKSA9
PiB0cmlnZ2VyYWJsZS5zeW5jT25jZSgpKTsKKyAgICAgICAgICAgICAgICBhc3NlcnRSZXF1ZXN0
QW5kUmVzb2x2ZShNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzBdLCAnR0VUJywgTW9ja0RhdGEuYnVp
bGRib3RCdWlsZGVyc1VSTCgpLCBNb2NrRGF0YS5tb2NrQnVpbGRib3RCdWlsZGVycygpKTsKKyAg
ICAgICAgICAgICAgICBNb2NrUmVtb3RlQVBJLnJlc2V0KCk7CiAgICAgICAgICAgICAgICAgcmV0
dXJuIE1vY2tSZW1vdGVBUEkud2FpdEZvclJlcXVlc3QoKTsKICAgICAgICAgICAgIH0pLnRoZW4o
KCkgPT4gewogICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVl
c3RzLmxlbmd0aCwgMSk7CkBAIC00MzEsNiArNDQzLDggQEAgZGVzY3JpYmUoJ0J1aWxkYm90VHJp
Z2dlcmFibGUnLCBmdW5jdGlvbgogICAgICAgICAgICAgICAgIGNvbnN0IHNsYXZlSW5mbyA9IHtu
YW1lOiAnc3luYy1zbGF2ZScsIHBhc3N3b3JkOiAncGFzc3dvcmQnfTsKICAgICAgICAgICAgICAg
ICBjb25zdCB0cmlnZ2VyYWJsZSA9IG5ldyBCdWlsZGJvdFRyaWdnZXJhYmxlKGNvbmZpZywgVGVz
dFNlcnZlci5yZW1vdGVBUEkoKSwgTW9ja1JlbW90ZUFQSSwgc2xhdmVJbmZvLCBsb2dnZXIpOwog
ICAgICAgICAgICAgICAgIHN5bmNQcm9taXNlID0gdHJpZ2dlcmFibGUuaW5pdFN5bmNlcnMoKS50
aGVuKCgpID0+IHRyaWdnZXJhYmxlLnN5bmNPbmNlKCkpOworICAgICAgICAgICAgICAgIGFzc2Vy
dFJlcXVlc3RBbmRSZXNvbHZlKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMF0sICdHRVQnLCBNb2Nr
RGF0YS5idWlsZGJvdEJ1aWxkZXJzVVJMKCksIE1vY2tEYXRhLm1vY2tCdWlsZGJvdEJ1aWxkZXJz
KCkpOworICAgICAgICAgICAgICAgIE1vY2tSZW1vdGVBUEkucmVzZXQoKTsKICAgICAgICAgICAg
ICAgICByZXR1cm4gTW9ja1JlbW90ZUFQSS53YWl0Rm9yUmVxdWVzdCgpOwogICAgICAgICAgICAg
fSkudGhlbigoKSA9PiB7CiAgICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVB
UEkucmVxdWVzdHMubGVuZ3RoLCAyKTsKQEAgLTUyOSw2ICs1NDMsOCBAQCBkZXNjcmliZSgnQnVp
bGRib3RUcmlnZ2VyYWJsZScsIGZ1bmN0aW9uCiAgICAgICAgICAgICAgICAgY29uc3Qgc2xhdmVJ
bmZvID0ge25hbWU6ICdzeW5jLXNsYXZlJywgcGFzc3dvcmQ6ICdwYXNzd29yZCd9OwogICAgICAg
ICAgICAgICAgIGNvbnN0IHRyaWdnZXJhYmxlID0gbmV3IEJ1aWxkYm90VHJpZ2dlcmFibGUoY29u
ZmlnLCBUZXN0U2VydmVyLnJlbW90ZUFQSSgpLCBNb2NrUmVtb3RlQVBJLCBzbGF2ZUluZm8sIGxv
Z2dlcik7CiAgICAgICAgICAgICAgICAgc3luY1Byb21pc2UgPSB0cmlnZ2VyYWJsZS5pbml0U3lu
Y2VycygpLnRoZW4oKCkgPT4gdHJpZ2dlcmFibGUuc3luY09uY2UoKSk7CisgICAgICAgICAgICAg
ICAgYXNzZXJ0UmVxdWVzdEFuZFJlc29sdmUoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1swXSwgJ0dF
VCcsIE1vY2tEYXRhLmJ1aWxkYm90QnVpbGRlcnNVUkwoKSwgTW9ja0RhdGEubW9ja0J1aWxkYm90
QnVpbGRlcnMoKSk7CisgICAgICAgICAgICAgICAgTW9ja1JlbW90ZUFQSS5yZXNldCgpOwogICAg
ICAgICAgICAgICAgIHJldHVybiBNb2NrUmVtb3RlQVBJLndhaXRGb3JSZXF1ZXN0KCk7CiAgICAg
ICAgICAgICB9KS50aGVuKCgpID0+IHsKICAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9j
a1JlbW90ZUFQSS5yZXF1ZXN0cy5sZW5ndGgsIDIpOwpAQCAtNjMwLDYgKzY0Niw4IEBAIGRlc2Ny
aWJlKCdCdWlsZGJvdFRyaWdnZXJhYmxlJywgZnVuY3Rpb24KICAgICAgICAgICAgICAgICBjb25z
dCBzbGF2ZUluZm8gPSB7bmFtZTogJ3N5bmMtc2xhdmUnLCBwYXNzd29yZDogJ3Bhc3N3b3JkJ307
CiAgICAgICAgICAgICAgICAgY29uc3QgdHJpZ2dlcmFibGUgPSBuZXcgQnVpbGRib3RUcmlnZ2Vy
YWJsZShjb25maWcsIFRlc3RTZXJ2ZXIucmVtb3RlQVBJKCksIE1vY2tSZW1vdGVBUEksIHNsYXZl
SW5mbywgbG9nZ2VyKTsKICAgICAgICAgICAgICAgICBzeW5jUHJvbWlzZSA9IHRyaWdnZXJhYmxl
LmluaXRTeW5jZXJzKCkudGhlbigoKSA9PiB0cmlnZ2VyYWJsZS5zeW5jT25jZSgpKTsKKyAgICAg
ICAgICAgICAgICBhc3NlcnRSZXF1ZXN0QW5kUmVzb2x2ZShyZXF1ZXN0c1swXSwgJ0dFVCcsIE1v
Y2tEYXRhLmJ1aWxkYm90QnVpbGRlcnNVUkwoKSwgTW9ja0RhdGEubW9ja0J1aWxkYm90QnVpbGRl
cnMoKSk7CisgICAgICAgICAgICAgICAgTW9ja1JlbW90ZUFQSS5yZXNldCgpOwogICAgICAgICAg
ICAgICAgIHJldHVybiBNb2NrUmVtb3RlQVBJLndhaXRGb3JSZXF1ZXN0KCk7CiAgICAgICAgICAg
ICB9KS50aGVuKCgpID0+IHsKICAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVxdWVzdHMu
bGVuZ3RoLCAxKTsKQEAgLTcwNSw2ICs3MjMsOCBAQCBkZXNjcmliZSgnQnVpbGRib3RUcmlnZ2Vy
YWJsZScsIGZ1bmN0aW9uCiAgICAgICAgICAgICAgICAgY29uc3Qgc2xhdmVJbmZvID0ge25hbWU6
ICdzeW5jLXNsYXZlJywgcGFzc3dvcmQ6ICdwYXNzd29yZCd9OwogICAgICAgICAgICAgICAgIHRy
aWdnZXJhYmxlID0gbmV3IEJ1aWxkYm90VHJpZ2dlcmFibGUoY29uZmlnLCBUZXN0U2VydmVyLnJl
bW90ZUFQSSgpLCBNb2NrUmVtb3RlQVBJLCBzbGF2ZUluZm8sIGxvZ2dlcik7CiAgICAgICAgICAg
ICAgICAgc3luY1Byb21pc2UgPSB0cmlnZ2VyYWJsZS5pbml0U3luY2VycygpLnRoZW4oKCkgPT4g
dHJpZ2dlcmFibGUuc3luY09uY2UoKSk7CisgICAgICAgICAgICAgICAgYXNzZXJ0UmVxdWVzdEFu
ZFJlc29sdmUocmVxdWVzdHNbMF0sICdHRVQnLCBNb2NrRGF0YS5idWlsZGJvdEJ1aWxkZXJzVVJM
KCksIE1vY2tEYXRhLm1vY2tCdWlsZGJvdEJ1aWxkZXJzKCkpOworICAgICAgICAgICAgICAgIE1v
Y2tSZW1vdGVBUEkucmVzZXQoKTsKICAgICAgICAgICAgICAgICByZXR1cm4gTW9ja1JlbW90ZUFQ
SS53YWl0Rm9yUmVxdWVzdCgpOwogICAgICAgICAgICAgfSkudGhlbigoKSA9PiB7CiAgICAgICAg
ICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlcXVlc3RzLmxlbmd0aCwgMSk7CkBAIC03MzIsMjMgKzc1
MiwyNCBAQCBkZXNjcmliZSgnQnVpbGRib3RUcmlnZ2VyYWJsZScsIGZ1bmN0aW9uCiAgICAgICAg
ICAgICAgICAgcmV0dXJuIHN5bmNQcm9taXNlOwogICAgICAgICAgICAgfSkudGhlbigoKSA9PiB7
CiAgICAgICAgICAgICAgICAgc3luY1Byb21pc2UgPSB0cmlnZ2VyYWJsZS5pbml0U3luY2Vycygp
LnRoZW4oKCkgPT4gdHJpZ2dlcmFibGUuc3luY09uY2UoKSk7Ci0gICAgICAgICAgICAgICAgcmV0
dXJuIE1vY2tSZW1vdGVBUEkud2FpdEZvclJlcXVlc3QoKTsKLSAgICAgICAgICAgIH0pLnRoZW4o
KCkgPT4gewotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXF1ZXN0cy5sZW5ndGgsIDYp
OwotICAgICAgICAgICAgICAgIGFzc2VydFJlcXVlc3RBbmRSZXNvbHZlKHJlcXVlc3RzWzVdLCAn
R0VUJywgJy9qc29uL2J1aWxkZXJzL3NvbWUtYnVpbGRlci0xL3BlbmRpbmdCdWlsZHMnLCBbXSk7
CisgICAgICAgICAgICAgICAgYXNzZXJ0UmVxdWVzdEFuZFJlc29sdmUocmVxdWVzdHNbNV0sICdH
RVQnLCBNb2NrRGF0YS5idWlsZGJvdEJ1aWxkZXJzVVJMKCksIE1vY2tEYXRhLm1vY2tCdWlsZGJv
dEJ1aWxkZXJzKCkpOwogICAgICAgICAgICAgICAgIHJldHVybiBNb2NrUmVtb3RlQVBJLndhaXRG
b3JSZXF1ZXN0KCk7CiAgICAgICAgICAgICB9KS50aGVuKCgpID0+IHsKICAgICAgICAgICAgICAg
ICBhc3NlcnQuZXF1YWwocmVxdWVzdHMubGVuZ3RoLCA3KTsKLSAgICAgICAgICAgICAgICBhc3Nl
cnRSZXF1ZXN0QW5kUmVzb2x2ZShyZXF1ZXN0c1s2XSwgJ0dFVCcsICcvanNvbi9idWlsZGVycy9z
b21lLWJ1aWxkZXItMS9idWlsZHMvP3NlbGVjdD0tMSZzZWxlY3Q9LTInLAotICAgICAgICAgICAg
ICAgICAgICB7Wy0xXTogTW9ja0RhdGEucnVubmluZ0J1aWxkKHtidWlsZFJlcXVlc3RJZDogNzAx
fSksIFstMl06IE1vY2tEYXRhLnJ1bm5pbmdCdWlsZCh7YnVpbGRSZXF1ZXN0SWQ6IDcwMH0pfSk7
CisgICAgICAgICAgICAgICAgYXNzZXJ0UmVxdWVzdEFuZFJlc29sdmUocmVxdWVzdHNbNl0sICdH
RVQnLCAnL2pzb24vYnVpbGRlcnMvc29tZS1idWlsZGVyLTEvcGVuZGluZ0J1aWxkcycsIFtdKTsK
ICAgICAgICAgICAgICAgICByZXR1cm4gTW9ja1JlbW90ZUFQSS53YWl0Rm9yUmVxdWVzdCgpOwog
ICAgICAgICAgICAgfSkudGhlbigoKSA9PiB7CiAgICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFs
KHJlcXVlc3RzLmxlbmd0aCwgOCk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0UmVxdWVzdEFuZFJl
c29sdmUocmVxdWVzdHNbN10sICdHRVQnLCAnL2pzb24vYnVpbGRlcnMvc29tZS1idWlsZGVyLTEv
cGVuZGluZ0J1aWxkcycsIFtdKTsKKyAgICAgICAgICAgICAgICBhc3NlcnRSZXF1ZXN0QW5kUmVz
b2x2ZShyZXF1ZXN0c1s3XSwgJ0dFVCcsICcvanNvbi9idWlsZGVycy9zb21lLWJ1aWxkZXItMS9i
dWlsZHMvP3NlbGVjdD0tMSZzZWxlY3Q9LTInLAorICAgICAgICAgICAgICAgICAgICB7Wy0xXTog
TW9ja0RhdGEucnVubmluZ0J1aWxkKHtidWlsZFJlcXVlc3RJZDogNzAxfSksIFstMl06IE1vY2tE
YXRhLnJ1bm5pbmdCdWlsZCh7YnVpbGRSZXF1ZXN0SWQ6IDcwMH0pfSk7CiAgICAgICAgICAgICAg
ICAgcmV0dXJuIE1vY2tSZW1vdGVBUEkud2FpdEZvclJlcXVlc3QoKTsKICAgICAgICAgICAgIH0p
LnRoZW4oKCkgPT4gewogICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXF1ZXN0cy5sZW5n
dGgsIDkpOwotICAgICAgICAgICAgICAgIGFzc2VydFJlcXVlc3RBbmRSZXNvbHZlKHJlcXVlc3Rz
WzhdLCAnR0VUJywgJy9qc29uL2J1aWxkZXJzL3NvbWUtYnVpbGRlci0xL2J1aWxkcy8/c2VsZWN0
PS0xJnNlbGVjdD0tMicsCisgICAgICAgICAgICAgICAgYXNzZXJ0UmVxdWVzdEFuZFJlc29sdmUo
cmVxdWVzdHNbOF0sICdHRVQnLCAnL2pzb24vYnVpbGRlcnMvc29tZS1idWlsZGVyLTEvcGVuZGlu
Z0J1aWxkcycsIFtdKTsKKyAgICAgICAgICAgICAgICByZXR1cm4gTW9ja1JlbW90ZUFQSS53YWl0
Rm9yUmVxdWVzdCgpOworICAgICAgICAgICAgfSkudGhlbigoKSA9PiB7CisgICAgICAgICAgICAg
ICAgYXNzZXJ0LmVxdWFsKHJlcXVlc3RzLmxlbmd0aCwgMTApOworICAgICAgICAgICAgICAgIGFz
c2VydFJlcXVlc3RBbmRSZXNvbHZlKHJlcXVlc3RzWzldLCAnR0VUJywgJy9qc29uL2J1aWxkZXJz
L3NvbWUtYnVpbGRlci0xL2J1aWxkcy8/c2VsZWN0PS0xJnNlbGVjdD0tMicsCiAgICAgICAgICAg
ICAgICAgICAgIHtbLTFdOiBNb2NrRGF0YS5ydW5uaW5nQnVpbGQoe2J1aWxkUmVxdWVzdElkOiA3
MDF9KSwgWy0yXTogTW9ja0RhdGEucnVubmluZ0J1aWxkKHtidWlsZFJlcXVlc3RJZDogNzAwfSl9
KTsKICAgICAgICAgICAgICAgICByZXR1cm4gc3luY1Byb21pc2U7CiAgICAgICAgICAgICB9KTsK
QEAgLTc2NSw2ICs3ODYsOCBAQCBkZXNjcmliZSgnQnVpbGRib3RUcmlnZ2VyYWJsZScsIGZ1bmN0
aW9uCiAgICAgICAgICAgICAgICAgY29uc3Qgc2xhdmVJbmZvID0ge25hbWU6ICdzeW5jLXNsYXZl
JywgcGFzc3dvcmQ6ICdwYXNzd29yZCd9OwogICAgICAgICAgICAgICAgIGNvbnN0IHRyaWdnZXJh
YmxlID0gbmV3IEJ1aWxkYm90VHJpZ2dlcmFibGUoY29uZmlnLCBUZXN0U2VydmVyLnJlbW90ZUFQ
SSgpLCBNb2NrUmVtb3RlQVBJLCBzbGF2ZUluZm8sIGxvZ2dlcik7CiAgICAgICAgICAgICAgICAg
c3luY1Byb21pc2UgPSB0cmlnZ2VyYWJsZS5pbml0U3luY2VycygpLnRoZW4oKCkgPT4gdHJpZ2dl
cmFibGUuc3luY09uY2UoKSk7CisgICAgICAgICAgICAgICAgYXNzZXJ0UmVxdWVzdEFuZFJlc29s
dmUoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1swXSwgJ0dFVCcsIE1vY2tEYXRhLmJ1aWxkYm90QnVp
bGRlcnNVUkwoKSwgTW9ja0RhdGEubW9ja0J1aWxkYm90QnVpbGRlcnMoKSk7CisgICAgICAgICAg
ICAgICAgTW9ja1JlbW90ZUFQSS5yZXNldCgpOwogICAgICAgICAgICAgICAgIHJldHVybiBNb2Nr
UmVtb3RlQVBJLndhaXRGb3JSZXF1ZXN0KCk7CiAgICAgICAgICAgICB9KS50aGVuKCgpID0+IHsK
ICAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0cy5sZW5n
dGgsIDEpOwpAQCAtODMyLDYgKzg1NSw4IEBAIGRlc2NyaWJlKCdCdWlsZGJvdFRyaWdnZXJhYmxl
JywgZnVuY3Rpb24KICAgICAgICAgICAgICAgICBjb25zdCBzbGF2ZUluZm8gPSB7bmFtZTogJ3N5
bmMtc2xhdmUnLCBwYXNzd29yZDogJ3Bhc3N3b3JkJ307CiAgICAgICAgICAgICAgICAgY29uc3Qg
dHJpZ2dlcmFibGUgPSBuZXcgQnVpbGRib3RUcmlnZ2VyYWJsZShjb25maWcsIFRlc3RTZXJ2ZXIu
cmVtb3RlQVBJKCksIE1vY2tSZW1vdGVBUEksIHNsYXZlSW5mbywgbG9nZ2VyKTsKICAgICAgICAg
ICAgICAgICBzeW5jUHJvbWlzZSA9IHRyaWdnZXJhYmxlLmluaXRTeW5jZXJzKCkudGhlbigoKSA9
PiB0cmlnZ2VyYWJsZS5zeW5jT25jZSgpKTsKKyAgICAgICAgICAgICAgICBhc3NlcnRSZXF1ZXN0
QW5kUmVzb2x2ZShNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzBdLCAnR0VUJywgTW9ja0RhdGEuYnVp
bGRib3RCdWlsZGVyc1VSTCgpLCBNb2NrRGF0YS5tb2NrQnVpbGRib3RCdWlsZGVycygpKTsKKyAg
ICAgICAgICAgICAgICBNb2NrUmVtb3RlQVBJLnJlc2V0KCk7CiAgICAgICAgICAgICAgICAgcmV0
dXJuIE1vY2tSZW1vdGVBUEkud2FpdEZvclJlcXVlc3QoKTsKICAgICAgICAgICAgIH0pLnRoZW4o
KCkgPT4gewogICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVl
c3RzLmxlbmd0aCwgMSk7CkBAIC04ODcsNiArOTEyLDggQEAgZGVzY3JpYmUoJ0J1aWxkYm90VHJp
Z2dlcmFibGUnLCBmdW5jdGlvbgogICAgICAgICAgICAgICAgIGNvbnN0IHNsYXZlSW5mbyA9IHtu
YW1lOiAnc3luYy1zbGF2ZScsIHBhc3N3b3JkOiAncGFzc3dvcmQnfTsKICAgICAgICAgICAgICAg
ICBjb25zdCB0cmlnZ2VyYWJsZSA9IG5ldyBCdWlsZGJvdFRyaWdnZXJhYmxlKGNvbmZpZywgVGVz
dFNlcnZlci5yZW1vdGVBUEkoKSwgTW9ja1JlbW90ZUFQSSwgc2xhdmVJbmZvLCBsb2dnZXIpOwog
ICAgICAgICAgICAgICAgIHN5bmNQcm9taXNlID0gdHJpZ2dlcmFibGUuaW5pdFN5bmNlcnMoKS50
aGVuKCgpID0+IHRyaWdnZXJhYmxlLnN5bmNPbmNlKCkpOworICAgICAgICAgICAgICAgIGFzc2Vy
dFJlcXVlc3RBbmRSZXNvbHZlKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMF0sICdHRVQnLCBNb2Nr
RGF0YS5idWlsZGJvdEJ1aWxkZXJzVVJMKCksIE1vY2tEYXRhLm1vY2tCdWlsZGJvdEJ1aWxkZXJz
KCkpOworICAgICAgICAgICAgICAgIE1vY2tSZW1vdGVBUEkucmVzZXQoKTsKICAgICAgICAgICAg
ICAgICByZXR1cm4gTW9ja1JlbW90ZUFQSS53YWl0Rm9yUmVxdWVzdCgpOwogICAgICAgICAgICAg
fSkudGhlbigoKSA9PiB7CiAgICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVB
UEkucmVxdWVzdHMubGVuZ3RoLCAxKTsKQEAgLTk3Miw3ICs5OTksOSBAQCBkZXNjcmliZSgnQnVp
bGRib3RUcmlnZ2VyYWJsZScsIGZ1bmN0aW9uCiAgICAgICAgICAgICAgICAgY29uc3QgbG9nZ2Vy
ID0gbmV3IE1vY2tMb2dnZXI7CiAgICAgICAgICAgICAgICAgY29uc3Qgc2xhdmVJbmZvID0ge25h
bWU6ICdzeW5jLXNsYXZlJywgcGFzc3dvcmQ6ICdwYXNzd29yZCd9OwogICAgICAgICAgICAgICAg
IGNvbnN0IGJ1aWxkYm90VHJpZ2dlcmFibGUgPSBuZXcgQnVpbGRib3RUcmlnZ2VyYWJsZShjb25m
aWcsIFRlc3RTZXJ2ZXIucmVtb3RlQVBJKCksIE1vY2tSZW1vdGVBUEksIHNsYXZlSW5mbywgbG9n
Z2VyKTsKLSAgICAgICAgICAgICAgICByZXR1cm4gYnVpbGRib3RUcmlnZ2VyYWJsZS5pbml0U3lu
Y2VycygpLnRoZW4oKCkgPT4gYnVpbGRib3RUcmlnZ2VyYWJsZS51cGRhdGVUcmlnZ2VyYWJsZSgp
KTsKKyAgICAgICAgICAgICAgICBjb25zdCB0cmlnZ2VyYWJsZVByb21pc2UgPSBidWlsZGJvdFRy
aWdnZXJhYmxlLmluaXRTeW5jZXJzKCkudGhlbigoKSA9PiBidWlsZGJvdFRyaWdnZXJhYmxlLnVw
ZGF0ZVRyaWdnZXJhYmxlKCkpOworICAgICAgICAgICAgICAgIGFzc2VydFJlcXVlc3RBbmRSZXNv
bHZlKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMF0sICdHRVQnLCBNb2NrRGF0YS5idWlsZGJvdEJ1
aWxkZXJzVVJMKCksIE1vY2tEYXRhLm1vY2tCdWlsZGJvdEJ1aWxkZXJzKCkpOworICAgICAgICAg
ICAgICAgIHJldHVybiB0cmlnZ2VyYWJsZVByb21pc2U7CiAgICAgICAgICAgICB9KS50aGVuKCgp
ID0+IHJlZmV0Y2hNYW5pZmVzdCgpKS50aGVuKCgpID0+IHsKICAgICAgICAgICAgICAgICBhc3Nl
cnQuZXF1YWwoVHJpZ2dlcmFibGUuYWxsKCkubGVuZ3RoLCAxKTsKIApAQCAtOTk3LDcgKzEwMjYs
OSBAQCBkZXNjcmliZSgnQnVpbGRib3RUcmlnZ2VyYWJsZScsIGZ1bmN0aW9uCiAgICAgICAgICAg
ICAgICAgY29uc3QgbG9nZ2VyID0gbmV3IE1vY2tMb2dnZXI7CiAgICAgICAgICAgICAgICAgY29u
c3Qgc2xhdmVJbmZvID0ge25hbWU6ICdzeW5jLXNsYXZlJywgcGFzc3dvcmQ6ICdwYXNzd29yZCd9
OwogICAgICAgICAgICAgICAgIGNvbnN0IGJ1aWxkYm90VHJpZ2dlcmFibGUgPSBuZXcgQnVpbGRi
b3RUcmlnZ2VyYWJsZShjb25maWcsIFRlc3RTZXJ2ZXIucmVtb3RlQVBJKCksIE1vY2tSZW1vdGVB
UEksIHNsYXZlSW5mbywgbG9nZ2VyKTsKLSAgICAgICAgICAgICAgICByZXR1cm4gYnVpbGRib3RU
cmlnZ2VyYWJsZS5pbml0U3luY2VycygpLnRoZW4oKCkgPT4gYnVpbGRib3RUcmlnZ2VyYWJsZS51
cGRhdGVUcmlnZ2VyYWJsZSgpKTsKKyAgICAgICAgICAgICAgICBjb25zdCB0cmlnZ2VyYWJsZVBy
b21pc2UgPSBidWlsZGJvdFRyaWdnZXJhYmxlLmluaXRTeW5jZXJzKCkudGhlbigoKSA9PiBidWls
ZGJvdFRyaWdnZXJhYmxlLnVwZGF0ZVRyaWdnZXJhYmxlKCkpOworICAgICAgICAgICAgICAgIGFz
c2VydFJlcXVlc3RBbmRSZXNvbHZlKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMV0sICdHRVQnLCBN
b2NrRGF0YS5idWlsZGJvdEJ1aWxkZXJzVVJMKCksIE1vY2tEYXRhLm1vY2tCdWlsZGJvdEJ1aWxk
ZXJzKCkpOworICAgICAgICAgICAgICAgIHJldHVybiB0cmlnZ2VyYWJsZVByb21pc2U7CiAgICAg
ICAgICAgICB9KS50aGVuKCgpID0+IHJlZmV0Y2hNYW5pZmVzdCgpKS50aGVuKCgpID0+IHsKICAg
ICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoVHJpZ2dlcmFibGUuYWxsKCkubGVuZ3RoLCAxKTsK
ICAgICAgICAgICAgICAgICBjb25zdCBncm91cHMgPSBUcmlnZ2VyYWJsZVJlcG9zaXRvcnlHcm91
cC5zb3J0QnlOYW1lKFRyaWdnZXJhYmxlLmFsbCgpWzBdLnJlcG9zaXRvcnlHcm91cHMoKSk7Cklu
ZGV4OiBXZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvc2VydmVyLXRlc3RzL3Rvb2xzLXN5bmMtYnVp
bGRib3QtaW50ZWdyYXRpb24tdGVzdHMuanMKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2Vic2l0ZXMvcGVyZi53
ZWJraXQub3JnL3NlcnZlci10ZXN0cy90b29scy1zeW5jLWJ1aWxkYm90LWludGVncmF0aW9uLXRl
c3RzLmpzCShyZXZpc2lvbiAyMjU1OTMpCisrKyBXZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvc2Vy
dmVyLXRlc3RzL3Rvb2xzLXN5bmMtYnVpbGRib3QtaW50ZWdyYXRpb24tdGVzdHMuanMJKHdvcmtp
bmcgY29weSkKQEAgLTEzOSw2ICsxMzksMTMgQEAgY29uc3QgY29uZmlnV2l0aFR3b1Rlc3RlcnMg
PSB7CiAgICAgXQogfTsKIAorZnVuY3Rpb24gYXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVz
dCwgbWV0aG9kLCB1cmwsIGNvbnRlbnRUb1Jlc29sdmUpCit7CisgICAgYXNzZXJ0LmVxdWFsKHJl
cXVlc3QubWV0aG9kLCBtZXRob2QpOworICAgIGFzc2VydC5lcXVhbChyZXF1ZXN0LnVybCwgdXJs
KTsKKyAgICByZXF1ZXN0LnJlc29sdmUoY29udGVudFRvUmVzb2x2ZSk7Cit9CisKIGZ1bmN0aW9u
IGNyZWF0ZVRyaWdnZXJhYmxlKGNvbmZpZyA9IGNvbmZpZ1dpdGhPbmVUZXN0ZXJUd29CdWlsZGVy
cykKIHsKICAgICBsZXQgdHJpZ2dlcmFibGU7CkBAIC0xNDYsNyArMTUzLDEwIEBAIGZ1bmN0aW9u
IGNyZWF0ZVRyaWdnZXJhYmxlKGNvbmZpZyA9IGNvbmYKICAgICAgICAgcmV0dXJuIE1hbmlmZXN0
LmZldGNoKCk7CiAgICAgfSkudGhlbigoKSA9PiB7CiAgICAgICAgIHRyaWdnZXJhYmxlID0gbmV3
IEJ1aWxkYm90VHJpZ2dlcmFibGUoY29uZmlnLCBUZXN0U2VydmVyLnJlbW90ZUFQSSgpLCBNb2Nr
UmVtb3RlQVBJLCB7bmFtZTogJ3N5bmMtc2xhdmUnLCBwYXNzd29yZDogJ3Bhc3N3b3JkJ30sIG5l
dyBNb2NrTG9nZ2VyKTsKLSAgICAgICAgcmV0dXJuIHRyaWdnZXJhYmxlLmluaXRTeW5jZXJzKCku
dGhlbigoKSA9PiB0cmlnZ2VyYWJsZS51cGRhdGVUcmlnZ2VyYWJsZSgpKTsKKyAgICAgICAgY29u
c3Qgc3luY1Byb21pc2UgPSB0cmlnZ2VyYWJsZS5pbml0U3luY2VycygpLnRoZW4oKCkgPT4gdHJp
Z2dlcmFibGUudXBkYXRlVHJpZ2dlcmFibGUoKSk7CisgICAgICAgIGFzc2VydEFuZFJlc29sdmVS
ZXF1ZXN0KE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMF0sICdHRVQnLCBNb2NrRGF0YS5idWlsZGJv
dEJ1aWxkZXJzVVJMKCksIE1vY2tEYXRhLm1vY2tCdWlsZGJvdEJ1aWxkZXJzKCkpOworICAgICAg
ICBNb2NrUmVtb3RlQVBJLnJlc2V0KCk7CisgICAgICAgIHJldHVybiBzeW5jUHJvbWlzZTsKICAg
ICB9KS50aGVuKCgpID0+IE1hbmlmZXN0LmZldGNoKCkpLnRoZW4oKCkgPT4gewogICAgICAgICBy
ZXR1cm4gbmV3IEJ1aWxkYm90VHJpZ2dlcmFibGUoY29uZmlnLCBUZXN0U2VydmVyLnJlbW90ZUFQ
SSgpLCBNb2NrUmVtb3RlQVBJLCB7bmFtZTogJ3N5bmMtc2xhdmUnLCBwYXNzd29yZDogJ3Bhc3N3
b3JkJ30sIG5ldyBNb2NrTG9nZ2VyKTsKICAgICB9KTsKQEAgLTIyMSwxMiArMjMxLDYgQEAgZGVz
Y3JpYmUoJ3N5bmMtYnVpbGRib3QnLCBmdW5jdGlvbiAoKSB7CiAgICAgICAgIE1vY2tSZW1vdGVB
UEkucmVzZXQoJ2h0dHA6Ly9idWlsZC53ZWJraXQub3JnJyk7CiAgICAgfSk7CiAKLSAgICBmdW5j
dGlvbiBhc3NlcnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0LCBtZXRob2QsIHVybCwgY29udGVu
dFRvUmVzb2x2ZSkKLSAgICB7Ci0gICAgICAgIGFzc2VydC5lcXVhbChyZXF1ZXN0Lm1ldGhvZCwg
bWV0aG9kKTsKLSAgICAgICAgYXNzZXJ0LmVxdWFsKHJlcXVlc3QudXJsLCB1cmwpOwotICAgICAg
ICByZXF1ZXN0LnJlc29sdmUoY29udGVudFRvUmVzb2x2ZSk7Ci0gICAgfQogCiAgICAgaXQoJ3No
b3VsZCBub3Qgc2NoZWR1bGUgb24gYW5vdGhlciBidWlsZGVyIGlmIHRoZSBidWlsZCB3YXMgc2No
ZWR1bGVkIG9uIG9uZSBidWlsZGVyIGJlZm9yZScsICgpID0+IHsKICAgICAgICAgY29uc3QgcmVx
dWVzdHMgPSBNb2NrUmVtb3RlQVBJLnJlcXVlc3RzOwpAQCAtMjQ1LDYgKzI0OSw4IEBAIGRlc2Ny
aWJlKCdzeW5jLWJ1aWxkYm90JywgZnVuY3Rpb24gKCkgewogICAgICAgICAgICAgdGFza0lkID0g
Zmlyc3RUZXN0R3JvdXAudGFzaygpLmlkKCk7CiAgICAgICAgICAgICBhbm90aGVyVGFza0lkID0g
c2Vjb25kVGVzdEdyb3VwLnRhc2soKS5pZCgpOwogICAgICAgICAgICAgc3luY1Byb21pc2UgPSB0
cmlnZ2VyYWJsZS5pbml0U3luY2VycygpLnRoZW4oKCkgPT4gdHJpZ2dlcmFibGUuc3luY09uY2Uo
KSk7CisgICAgICAgICAgICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1swXSwgJ0dF
VCcsIE1vY2tEYXRhLmJ1aWxkYm90QnVpbGRlcnNVUkwoKSwgTW9ja0RhdGEubW9ja0J1aWxkYm90
QnVpbGRlcnMoKSk7CisgICAgICAgICAgICBNb2NrUmVtb3RlQVBJLnJlc2V0KCk7CiAgICAgICAg
ICAgICByZXR1cm4gTW9ja1JlbW90ZUFQSS53YWl0Rm9yUmVxdWVzdCgpOwogICAgICAgICB9KS50
aGVuKCgpID0+IHsKICAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXF1ZXN0cy5sZW5ndGgsIDIp
OwpAQCAtMzU3LDYgKzM2Myw4IEBAIGRlc2NyaWJlKCdzeW5jLWJ1aWxkYm90JywgZnVuY3Rpb24g
KCkgewogICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChvdGhlckNvbW1pdFNldC5hbGxSb290
RmlsZXMoKSwgW10pOwogCiAgICAgICAgICAgICBzeW5jUHJvbWlzZSA9IHRyaWdnZXJhYmxlLmlu
aXRTeW5jZXJzKCkudGhlbigoKSA9PiB0cmlnZ2VyYWJsZS5zeW5jT25jZSgpKTsKKyAgICAgICAg
ICAgIGFzc2VydEFuZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3RzWzBdLCAnR0VUJywgTW9ja0RhdGEu
YnVpbGRib3RCdWlsZGVyc1VSTCgpLCBNb2NrRGF0YS5tb2NrQnVpbGRib3RCdWlsZGVycygpKTsK
KyAgICAgICAgICAgIE1vY2tSZW1vdGVBUEkucmVzZXQoKTsKICAgICAgICAgICAgIHJldHVybiBN
b2NrUmVtb3RlQVBJLndhaXRGb3JSZXF1ZXN0KCk7CiAgICAgICAgIH0pLnRoZW4oKCkgPT4gewog
ICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlcXVlc3RzLmxlbmd0aCwgMyk7CkBAIC00NjgsNiAr
NDc2LDggQEAgZGVzY3JpYmUoJ3N5bmMtYnVpbGRib3QnLCBmdW5jdGlvbiAoKSB7CiAKICAgICAg
ICAgICAgIE1vY2tSZW1vdGVBUEkucmVzZXQoKTsKICAgICAgICAgICAgIHN5bmNQcm9taXNlID0g
dHJpZ2dlcmFibGUuaW5pdFN5bmNlcnMoKS50aGVuKCgpID0+IHRyaWdnZXJhYmxlLnN5bmNPbmNl
KCkpOworICAgICAgICAgICAgYXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNbMF0sICdH
RVQnLCBNb2NrRGF0YS5idWlsZGJvdEJ1aWxkZXJzVVJMKCksIE1vY2tEYXRhLm1vY2tCdWlsZGJv
dEJ1aWxkZXJzKCkpOworICAgICAgICAgICAgTW9ja1JlbW90ZUFQSS5yZXNldCgpOwogICAgICAg
ICAgICAgcmV0dXJuIE1vY2tSZW1vdGVBUEkud2FpdEZvclJlcXVlc3QoKTsKICAgICAgICAgfSku
dGhlbigoKSA9PiB7CiAgICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVxdWVzdHMubGVuZ3RoLCAz
KTsKQEAgLTYyNiw2ICs2MzYsOCBAQCBkZXNjcmliZSgnc3luYy1idWlsZGJvdCcsIGZ1bmN0aW9u
ICgpIHsKICAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwob3RoZXJDb21taXRTZXQuYWxsUm9v
dEZpbGVzKCksIFtdKTsKIAogICAgICAgICAgICAgc3luY1Byb21pc2UgPSB0cmlnZ2VyYWJsZS5p
bml0U3luY2VycygpLnRoZW4oKCkgPT4gdHJpZ2dlcmFibGUuc3luY09uY2UoKSk7CisgICAgICAg
ICAgICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1swXSwgJ0dFVCcsIE1vY2tEYXRh
LmJ1aWxkYm90QnVpbGRlcnNVUkwoKSwgTW9ja0RhdGEubW9ja0J1aWxkYm90QnVpbGRlcnMoKSk7
CisgICAgICAgICAgICBNb2NrUmVtb3RlQVBJLnJlc2V0KCk7CiAgICAgICAgICAgICByZXR1cm4g
TW9ja1JlbW90ZUFQSS53YWl0Rm9yUmVxdWVzdCgpOwogICAgICAgICB9KS50aGVuKCgpID0+IHsK
ICAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXF1ZXN0cy5sZW5ndGgsIDMpOwpAQCAtNzM3LDYg
Kzc0OSw4IEBAIGRlc2NyaWJlKCdzeW5jLWJ1aWxkYm90JywgZnVuY3Rpb24gKCkgewogCiAgICAg
ICAgICAgICBNb2NrUmVtb3RlQVBJLnJlc2V0KCk7CiAgICAgICAgICAgICBzeW5jUHJvbWlzZSA9
IHRyaWdnZXJhYmxlLmluaXRTeW5jZXJzKCkudGhlbigoKSA9PiB0cmlnZ2VyYWJsZS5zeW5jT25j
ZSgpKTsKKyAgICAgICAgICAgIGFzc2VydEFuZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3RzWzBdLCAn
R0VUJywgTW9ja0RhdGEuYnVpbGRib3RCdWlsZGVyc1VSTCgpLCBNb2NrRGF0YS5tb2NrQnVpbGRi
b3RCdWlsZGVycygpKTsKKyAgICAgICAgICAgIE1vY2tSZW1vdGVBUEkucmVzZXQoKTsKICAgICAg
ICAgICAgIHJldHVybiBNb2NrUmVtb3RlQVBJLndhaXRGb3JSZXF1ZXN0KCk7CiAgICAgICAgIH0p
LnRoZW4oKCkgPT4gewogICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlcXVlc3RzLmxlbmd0aCwg
Myk7CkBAIC05MTEsNiArOTI1LDggQEAgZGVzY3JpYmUoJ3N5bmMtYnVpbGRib3QnLCBmdW5jdGlv
biAoKSB7CiAgICAgICAgICAgICBhc3NlcnQuZXF1YWwob3RoZXJSb290cy5sZW5ndGgsIDEpOwog
ICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChvdGhlclJvb3RzWzBdLmZpbGVuYW1lKCksICdy
b290NDYuZGF0Jyk7CiAgICAgICAgICAgICBzeW5jUHJvbWlzZSA9IHRyaWdnZXJhYmxlLmluaXRT
eW5jZXJzKCkudGhlbigoKSA9PiB0cmlnZ2VyYWJsZS5zeW5jT25jZSgpKTsKKyAgICAgICAgICAg
IGFzc2VydEFuZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3RzWzBdLCAnR0VUJywgTW9ja0RhdGEuYnVp
bGRib3RCdWlsZGVyc1VSTCgpLCBNb2NrRGF0YS5tb2NrQnVpbGRib3RCdWlsZGVycygpKTsKKyAg
ICAgICAgICAgIE1vY2tSZW1vdGVBUEkucmVzZXQoKTsKICAgICAgICAgICAgIHJldHVybiBNb2Nr
UmVtb3RlQVBJLndhaXRGb3JSZXF1ZXN0KCk7CiAgICAgICAgIH0pLnRoZW4oKCkgPT4gewogICAg
ICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlcXVlc3RzLmxlbmd0aCwgMyk7CkBAIC05ODIsNiArOTk4
LDggQEAgZGVzY3JpYmUoJ3N5bmMtYnVpbGRib3QnLCBmdW5jdGlvbiAoKSB7CiAgICAgICAgICAg
ICBhc3NlcnQuZXF1YWwob3RoZXJCdWlsZFJlcXVlc3QuYnVpbGRJZCgpLCBudWxsKTsKIAogICAg
ICAgICAgICAgc3luY1Byb21pc2UgPSB0cmlnZ2VyYWJsZS5pbml0U3luY2VycygpLnRoZW4oKCkg
PT4gdHJpZ2dlcmFibGUuc3luY09uY2UoKSk7CisgICAgICAgICAgICBhc3NlcnRBbmRSZXNvbHZl
UmVxdWVzdChyZXF1ZXN0c1swXSwgJ0dFVCcsIE1vY2tEYXRhLmJ1aWxkYm90QnVpbGRlcnNVUkwo
KSwgTW9ja0RhdGEubW9ja0J1aWxkYm90QnVpbGRlcnMoKSk7CisgICAgICAgICAgICBNb2NrUmVt
b3RlQVBJLnJlc2V0KCk7CiAgICAgICAgICAgICByZXR1cm4gUHJvbWlzZS5hbGwoW01vY2tSZW1v
dGVBUEkud2FpdEZvclJlcXVlc3QoKSwgdXBsb2FkUm9vdCgxLCAxMjMpXSk7CiAgICAgICAgIH0p
LnRoZW4oKCkgPT4gewogICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlcXVlc3RzLmxlbmd0aCwg
Myk7CkBAIC0xMDY2LDYgKzEwODQsOCBAQCBkZXNjcmliZSgnc3luYy1idWlsZGJvdCcsIGZ1bmN0
aW9uICgpIHsKICAgICAgICAgICAgIGFzc2VydC5lcXVhbChvdGhlckJ1aWxkUmVxdWVzdC5idWls
ZElkKCksIG51bGwpOwogCiAgICAgICAgICAgICBzeW5jUHJvbWlzZSA9IHRyaWdnZXJhYmxlLmlu
aXRTeW5jZXJzKCkudGhlbigoKSA9PiB0cmlnZ2VyYWJsZS5zeW5jT25jZSgpKTsKKyAgICAgICAg
ICAgIGFzc2VydEFuZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3RzWzBdLCAnR0VUJywgTW9ja0RhdGEu
YnVpbGRib3RCdWlsZGVyc1VSTCgpLCBNb2NrRGF0YS5tb2NrQnVpbGRib3RCdWlsZGVycygpKTsK
KyAgICAgICAgICAgIE1vY2tSZW1vdGVBUEkucmVzZXQoKTsKICAgICAgICAgICAgIHJldHVybiBN
b2NrUmVtb3RlQVBJLndhaXRGb3JSZXF1ZXN0KCk7CiAgICAgICAgIH0pLnRoZW4oKCkgPT4gewog
ICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlcXVlc3RzLmxlbmd0aCwgMyk7CkBAIC0xMTcyLDYg
KzExOTIsOCBAQCBkZXNjcmliZSgnc3luYy1idWlsZGJvdCcsIGZ1bmN0aW9uICgpIHsKICAgICAg
ICAgICAgIGFzc2VydC5kZWVwRXF1YWwob3RoZXJDb21taXRTZXQuYWxsUm9vdEZpbGVzKCksIFtd
KTsKIAogICAgICAgICAgICAgc3luY1Byb21pc2UgPSB0cmlnZ2VyYWJsZS5pbml0U3luY2Vycygp
LnRoZW4oKCkgPT4gdHJpZ2dlcmFibGUuc3luY09uY2UoKSk7CisgICAgICAgICAgICBhc3NlcnRB
bmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1swXSwgJ0dFVCcsIE1vY2tEYXRhLmJ1aWxkYm90QnVp
bGRlcnNVUkwoKSwgTW9ja0RhdGEubW9ja0J1aWxkYm90QnVpbGRlcnMoKSk7CisgICAgICAgICAg
ICBNb2NrUmVtb3RlQVBJLnJlc2V0KCk7CiAgICAgICAgICAgICByZXR1cm4gTW9ja1JlbW90ZUFQ
SS53YWl0Rm9yUmVxdWVzdCgpOwogICAgICAgICB9KS50aGVuKCgpID0+IHsKICAgICAgICAgICAg
IGFzc2VydC5lcXVhbChyZXF1ZXN0cy5sZW5ndGgsIDMpOwpAQCAtMTI5MSw2ICsxMzEzLDggQEAg
ZGVzY3JpYmUoJ3N5bmMtYnVpbGRib3QnLCBmdW5jdGlvbiAoKSB7CiAKICAgICAgICAgICAgIE1v
Y2tSZW1vdGVBUEkucmVzZXQoKTsKICAgICAgICAgICAgIHN5bmNQcm9taXNlID0gdHJpZ2dlcmFi
bGUuaW5pdFN5bmNlcnMoKS50aGVuKCgpID0+IHRyaWdnZXJhYmxlLnN5bmNPbmNlKCkpOworICAg
ICAgICAgICAgYXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNbMF0sICdHRVQnLCBNb2Nr
RGF0YS5idWlsZGJvdEJ1aWxkZXJzVVJMKCksIE1vY2tEYXRhLm1vY2tCdWlsZGJvdEJ1aWxkZXJz
KCkpOworICAgICAgICAgICAgTW9ja1JlbW90ZUFQSS5yZXNldCgpOwogICAgICAgICAgICAgcmV0
dXJuIE1vY2tSZW1vdGVBUEkud2FpdEZvclJlcXVlc3QoKTsKICAgICAgICAgfSkudGhlbigoKSA9
PiB7CiAgICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVxdWVzdHMubGVuZ3RoLCAzKTsKQEAgLTE0
NjcsNiArMTQ5MSw4IEBAIGRlc2NyaWJlKCdzeW5jLWJ1aWxkYm90JywgZnVuY3Rpb24gKCkgewog
ICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChvdGhlckNvbW1pdFNldC5hbGxSb290RmlsZXMo
KSwgW10pOwogCiAgICAgICAgICAgICBzeW5jUHJvbWlzZSA9IHRyaWdnZXJhYmxlLmluaXRTeW5j
ZXJzKCkudGhlbigoKSA9PiB0cmlnZ2VyYWJsZS5zeW5jT25jZSgpKTsKKyAgICAgICAgICAgIGFz
c2VydEFuZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3RzWzBdLCAnR0VUJywgTW9ja0RhdGEuYnVpbGRi
b3RCdWlsZGVyc1VSTCgpLCBNb2NrRGF0YS5tb2NrQnVpbGRib3RCdWlsZGVycygpKTsKKyAgICAg
ICAgICAgIE1vY2tSZW1vdGVBUEkucmVzZXQoKTsKICAgICAgICAgICAgIHJldHVybiBNb2NrUmVt
b3RlQVBJLndhaXRGb3JSZXF1ZXN0KCk7CiAgICAgICAgIH0pLnRoZW4oKCkgPT4gewogICAgICAg
ICAgICAgYXNzZXJ0LmVxdWFsKHJlcXVlc3RzLmxlbmd0aCwgMyk7CkBAIC0xNjI3LDYgKzE2NTMs
OCBAQCBkZXNjcmliZSgnc3luYy1idWlsZGJvdCcsIGZ1bmN0aW9uICgpIHsKIAogICAgICAgICAg
ICAgTW9ja1JlbW90ZUFQSS5yZXNldCgpOwogICAgICAgICAgICAgc3luY1Byb21pc2UgPSB0cmln
Z2VyYWJsZS5pbml0U3luY2VycygpLnRoZW4oKCkgPT4gdHJpZ2dlcmFibGUuc3luY09uY2UoKSk7
CisgICAgICAgICAgICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1swXSwgJ0dFVCcs
IE1vY2tEYXRhLmJ1aWxkYm90QnVpbGRlcnNVUkwoKSwgTW9ja0RhdGEubW9ja0J1aWxkYm90QnVp
bGRlcnMoKSk7CisgICAgICAgICAgICBNb2NrUmVtb3RlQVBJLnJlc2V0KCk7CiAgICAgICAgICAg
ICByZXR1cm4gTW9ja1JlbW90ZUFQSS53YWl0Rm9yUmVxdWVzdCgpOwogICAgICAgICB9KS50aGVu
KCgpID0+IHsKICAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXF1ZXN0cy5sZW5ndGgsIDMpOwpJ
bmRleDogV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL3NlcnZlci10ZXN0cy9yZXNvdXJjZXMvbW9j
ay1kYXRhLmpzCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy9zZXJ2ZXIt
dGVzdHMvcmVzb3VyY2VzL21vY2stZGF0YS5qcwkocmV2aXNpb24gMjI1NTkzKQorKysgV2Vic2l0
ZXMvcGVyZi53ZWJraXQub3JnL3NlcnZlci10ZXN0cy9yZXNvdXJjZXMvbW9jay1kYXRhLmpzCSh3
b3JraW5nIGNvcHkpCkBAIC0xNyw2ICsxNyw4IEBAIE1vY2tEYXRhID0gewogICAgIGpzY1JlcG9z
aXRvcnlJZCgpIHsgcmV0dXJuIDIyMjsgfSwKICAgICBnaXRXZWJraXRSZXBvc2l0b3J5SWQoKSB7
IHJldHVybiAxMTE7IH0sCiAgICAgc2hhcmVkUmVwb3NpdG9yeUlkKCkgeyByZXR1cm4gMTQ7IH0s
CisgICAgYnVpbGRib3RCdWlsZGVyc1VSTCgpIHtyZXR1cm4gJy9qc29uL2J1aWxkZXJzJ30sCisg
ICAgYnVpbGRib3QwOUJ1aWxkZXJzVVJMKCkge3JldHVybiAnL2FwaS92Mi9idWlsZGVycyd9LAog
ICAgIGFkZE1vY2tDb25maWd1cmF0aW9uOiBmdW5jdGlvbiAoZGIpCiAgICAgewogICAgICAgICBy
ZXR1cm4gUHJvbWlzZS5hbGwoWwpAQCAtMjIwLDYgKzIyMiw2MCBAQCBNb2NrRGF0YSA9IHsKICAg
ICAgICAgICAgIF0KICAgICAgICAgfQogICAgIH0sCisgICAgbW9ja0J1aWxkYm90QnVpbGRlcnM6
IGZ1bmN0aW9uICgpCisgICAgeworICAgICAgICByZXR1cm4geworICAgICAgICAgICAgInNvbWUg
YnVpbGRlciI6IHsKKyAgICAgICAgICAgICAgICAic2xhdmVzIjogWyAic29tZS1zbGF2ZS0xIiBd
CisgICAgICAgICAgICB9LAorICAgICAgICAgICAgInNvbWUtYnVpbGRlci0xIjogeworICAgICAg
ICAgICAgICAgICJzbGF2ZXMiOiBbICJzb21lLXNsYXZlLTIiIF0KKyAgICAgICAgICAgIH0sCisg
ICAgICAgICAgICAic29tZSBidWlsZGVyIDIiOiB7CisgICAgICAgICAgICAgICAgInNsYXZlcyI6
IFsgInNvbWUtc2xhdmUtMyIgXQorICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICJvdGhlciBi
dWlsZGVyIjogeworICAgICAgICAgICAgICAgICJzbGF2ZXMiOiBbICJzb21lLXNsYXZlLTQiIF0K
KyAgICAgICAgICAgIH0sCisgICAgICAgICAgICAic29tZSB0ZXN0ZXIiOiB7CisgICAgICAgICAg
ICAgICAgInNsYXZlcyI6IFsgInNvbWUtc2xhdmUtNSIgXQorICAgICAgICAgICAgfSwKKyAgICAg
ICAgICAgICJhbm90aGVyIHRlc3RlciI6IHsKKyAgICAgICAgICAgICAgICAic2xhdmVzIjogWyAi
c29tZS1zbGF2ZS02IiBdCisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICB9LAorICAgIG1v
Y2tCdWlsZGJvdDA5QnVpbGRlcnM6IGZ1bmN0aW9uICgpCisgICAgeworICAgICAgICByZXR1cm4g
eworICAgICAgICAgICAgImJ1aWxkZXJzIjogWworICAgICAgICAgICAgICAgIHsKKyAgICAgICAg
ICAgICAgICAgICAgImJ1aWxkZXJpZCI6IDEsCisgICAgICAgICAgICAgICAgICAgICJuYW1lIjog
InNvbWUgYnVpbGRlciIsCisgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICAgICB7Cisg
ICAgICAgICAgICAgICAgICAgICJidWlsZGVyaWQiOiAyLAorICAgICAgICAgICAgICAgICAgICAi
bmFtZSI6ICJzb21lLWJ1aWxkZXItMSIsCisgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAg
ICAgICB7CisgICAgICAgICAgICAgICAgICAgICJidWlsZGVyaWQiOiAzLAorICAgICAgICAgICAg
ICAgICAgICAibmFtZSI6ICJzb21lIGJ1aWxkZXIgMiIsCisgICAgICAgICAgICAgICAgfSwKKyAg
ICAgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgICAgICJidWlsZGVyaWQiOiA0LAorICAg
ICAgICAgICAgICAgICAgICAibmFtZSI6ICJvdGhlciBidWlsZGVyIiwKKyAgICAgICAgICAgICAg
ICB9LAorICAgICAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAgICAgImJ1aWxkZXJpZCI6
IDUsCisgICAgICAgICAgICAgICAgICAgICJuYW1lIjogInNvbWUgdGVzdGVyIiwKKyAgICAgICAg
ICAgICAgICB9LAorICAgICAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAgICAgImJ1aWxk
ZXJpZCI6IDYsCisgICAgICAgICAgICAgICAgICAgICJuYW1lIjogImFub3RoZXIgdGVzdGVyIiwK
KyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICBdCisgICAgICAgIH0KKyAgICB9LAogICAg
IHBlbmRpbmdCdWlsZChvcHRpb25zKQogICAgIHsKICAgICAgICAgb3B0aW9ucyA9IG9wdGlvbnMg
fHwge307CkluZGV4OiBXZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvdG9vbHMvanMvYnVpbGRib3Qt
c3luY2VyLmpzCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy90b29scy9q
cy9idWlsZGJvdC1zeW5jZXIuanMJKHJldmlzaW9uIDIyNTU5MykKKysrIFdlYnNpdGVzL3BlcmYu
d2Via2l0Lm9yZy90b29scy9qcy9idWlsZGJvdC1zeW5jZXIuanMJKHdvcmtpbmcgY29weSkKQEAg
LTY3LDYgKzY3LDcgQEAgY2xhc3MgQnVpbGRib3RTeW5jZXIgewogICAgICAgICB0aGlzLl9wbGF0
Zm9ybVByb3BlcnR5TmFtZSA9IGNvbW1vbkNvbmZpZ3VyYXRpb25zLnBsYXRmb3JtQXJndW1lbnQ7
CiAgICAgICAgIHRoaXMuX2J1aWxkUmVxdWVzdFByb3BlcnR5TmFtZSA9IGNvbW1vbkNvbmZpZ3Vy
YXRpb25zLmJ1aWxkUmVxdWVzdEFyZ3VtZW50OwogICAgICAgICB0aGlzLl9idWlsZGVyTmFtZSA9
IG9iamVjdC5idWlsZGVyOworICAgICAgICB0aGlzLl9idWlsZGVySUQgPSBvYmplY3QuYnVpbGRl
cklEOwogICAgICAgICB0aGlzLl9zbGF2ZUxpc3QgPSBvYmplY3Quc2xhdmVMaXN0OwogICAgICAg
ICB0aGlzLl9lbnRyeUxpc3QgPSBudWxsOwogICAgICAgICB0aGlzLl9zbGF2ZXNXaXRoTmV3UmVx
dWVzdHMgPSBuZXcgU2V0OwpAQCAtMzE3LDggKzMxOCw5IEBAIGNsYXNzIEJ1aWxkYm90U3luY2Vy
IHsKICAgICAgICAgcmV0dXJuIHJldmlzaW9uU2V0OwogICAgIH0KIAotICAgIHN0YXRpYyBfbG9h
ZENvbmZpZyhyZW1vdGUsIGNvbmZpZykKKyAgICBzdGF0aWMgX2xvYWRDb25maWcocmVtb3RlLCBj
b25maWcsIGJ1aWxkZXJOYW1lVG9JRE1hcCkKICAgICB7CisgICAgICAgIGFzc2VydChidWlsZGVy
TmFtZVRvSURNYXApOwogICAgICAgICBjb25zdCB0eXBlcyA9IGNvbmZpZ1sndHlwZXMnXSB8fCB7
fTsKICAgICAgICAgY29uc3QgYnVpbGRlcnMgPSBjb25maWdbJ2J1aWxkZXJzJ10gfHwge307CiAK
QEAgLTM0OCw3ICszNTAsNyBAQCBjbGFzcyBCdWlsZGJvdFN5bmNlciB7CiAgICAgICAgIH0KIAog
ICAgICAgICBhc3NlcnQoQXJyYXkuaXNBcnJheShjb25maWdbJ3Rlc3RDb25maWd1cmF0aW9ucydd
KSwgYFRoZSB0ZXN0IGNvbmZpZ3VyYXRpb24gbXVzdCBiZSBhbiBhcnJheWApOwotICAgICAgICB0
aGlzLl9yZXNvbHZlQnVpbGRlcnNXaXRoUGxhdGZvcm1zKCd0ZXN0JywgY29uZmlnWyd0ZXN0Q29u
ZmlndXJhdGlvbnMnXSwgYnVpbGRlcnMpLmZvckVhY2goKGVudHJ5LCBjb25maWd1cmF0aW9uSW5k
ZXgpID0+IHsKKyAgICAgICAgdGhpcy5fcmVzb2x2ZUJ1aWxkZXJzV2l0aFBsYXRmb3JtcygndGVz
dCcsIGNvbmZpZ1sndGVzdENvbmZpZ3VyYXRpb25zJ10sIGJ1aWxkZXJzLCBidWlsZGVyTmFtZVRv
SURNYXApLmZvckVhY2goKGVudHJ5LCBjb25maWd1cmF0aW9uSW5kZXgpID0+IHsKICAgICAgICAg
ICAgIGFzc2VydChBcnJheS5pc0FycmF5KGVudHJ5Wyd0eXBlcyddKSwgYFRoZSB0ZXN0IGNvbmZp
Z3VyYXRpb24gJHtjb25maWd1cmF0aW9uSW5kZXh9IGRvZXMgbm90IHNwZWNpZnkgInR5cGVzIiBh
cyBhbiBhcnJheWApOwogICAgICAgICAgICAgZm9yIChjb25zdCB0eXBlIG9mIGVudHJ5Wyd0eXBl
cyddKSB7CiAgICAgICAgICAgICAgICAgY29uc3QgdHlwZUNvbmZpZyA9IHRoaXMuX3ZhbGlkYXRl
QW5kTWVyZ2VDb25maWcoe30sIGVudHJ5LmJ1aWxkZXJDb25maWcpOwpAQCAtMzY2LDcgKzM2OCw3
IEBAIGNsYXNzIEJ1aWxkYm90U3luY2VyIHsKICAgICAgICAgY29uc3QgYnVpbGRDb25maWd1cmF0
aW9ucyA9IGNvbmZpZ1snYnVpbGRDb25maWd1cmF0aW9ucyddOwogICAgICAgICBpZiAoYnVpbGRD
b25maWd1cmF0aW9ucykgewogICAgICAgICAgICAgYXNzZXJ0KEFycmF5LmlzQXJyYXkoYnVpbGRD
b25maWd1cmF0aW9ucyksIGBUaGUgdGVzdCBjb25maWd1cmF0aW9uIG11c3QgYmUgYW4gYXJyYXlg
KTsKLSAgICAgICAgICAgIHRoaXMuX3Jlc29sdmVCdWlsZGVyc1dpdGhQbGF0Zm9ybXMoJ3Rlc3Qn
LCBidWlsZENvbmZpZ3VyYXRpb25zLCBidWlsZGVycykuZm9yRWFjaCgoZW50cnksIGNvbmZpZ3Vy
YXRpb25JbmRleCkgPT4geworICAgICAgICAgICAgdGhpcy5fcmVzb2x2ZUJ1aWxkZXJzV2l0aFBs
YXRmb3JtcygndGVzdCcsIGJ1aWxkQ29uZmlndXJhdGlvbnMsIGJ1aWxkZXJzLCBidWlsZGVyTmFt
ZVRvSURNYXApLmZvckVhY2goKGVudHJ5LCBjb25maWd1cmF0aW9uSW5kZXgpID0+IHsKICAgICAg
ICAgICAgICAgICBjb25zdCBzeW5jZXIgPSBlbnN1cmVCdWlsZGJvdFN5bmNlcihlbnRyeS5idWls
ZGVyQ29uZmlnKTsKICAgICAgICAgICAgICAgICBhc3NlcnQoIXN5bmNlci5pc1Rlc3RlcigpLCBg
VGhlIGJ1aWxkIGNvbmZpZ3VyYXRpb24gJHtjb25maWd1cmF0aW9uSW5kZXh9IHVzZXMgYSB0ZXN0
ZXI6ICR7c3luY2VyLmJ1aWxkZXJOYW1lKCl9YCk7CiAgICAgICAgICAgICAgICAgc3luY2VyLmFk
ZEJ1aWxkQ29uZmlndXJhdGlvbihlbnRyeS5wbGF0Zm9ybSwgZW50cnkuYnVpbGRlckNvbmZpZy5w
cm9wZXJ0aWVzKTsKQEAgLTM3Niw3ICszNzgsNyBAQCBjbGFzcyBCdWlsZGJvdFN5bmNlciB7CiAg
ICAgICAgIHJldHVybiBBcnJheS5mcm9tKHN5bmNlckJ5QnVpbGRlci52YWx1ZXMoKSk7CiAgICAg
fQogCi0gICAgc3RhdGljIF9yZXNvbHZlQnVpbGRlcnNXaXRoUGxhdGZvcm1zKGNvbmZpZ3VyYXRp
b25UeXBlLCBjb25maWd1cmF0aW9uTGlzdCwgYnVpbGRlcnMpCisgICAgc3RhdGljIF9yZXNvbHZl
QnVpbGRlcnNXaXRoUGxhdGZvcm1zKGNvbmZpZ3VyYXRpb25UeXBlLCBjb25maWd1cmF0aW9uTGlz
dCwgYnVpbGRlcnMsIGJ1aWxkZXJOYW1lVG9JRE1hcCkKICAgICB7CiAgICAgICAgIGNvbnN0IHJl
c29sdmVkQ29uZmlndXJhdGlvbnMgPSBbXTsKICAgICAgICAgbGV0IGNvbmZpZ3VyYXRpb25JbmRl
eCA9IDA7CkBAIC0zODgsNiArMzkwLDggQEAgY2xhc3MgQnVpbGRib3RTeW5jZXIgewogICAgICAg
ICAgICAgICAgIGNvbnN0IG1hdGNoaW5nQnVpbGRlciA9IGJ1aWxkZXJzW2J1aWxkZXJLZXldOwog
ICAgICAgICAgICAgICAgIGFzc2VydChtYXRjaGluZ0J1aWxkZXIsIGAiJHtidWlsZGVyS2V5fSIg
aXMgbm90IGEgdmFsaWQgYnVpbGRlciBpbiB0aGUgY29uZmlndXJhdGlvbmApOwogICAgICAgICAg
ICAgICAgIGFzc2VydCgnYnVpbGRlcicgaW4gbWF0Y2hpbmdCdWlsZGVyLCBgQnVpbGRlciAke2J1
aWxkZXJLZXl9IGRvZXMgbm90IHNwZWNpZnkgYSBidWlsZGJvdCBidWlsZGVyIG5hbWVgKTsKKyAg
ICAgICAgICAgICAgICBhc3NlcnQobWF0Y2hpbmdCdWlsZGVyLmJ1aWxkZXIgaW4gYnVpbGRlck5h
bWVUb0lETWFwLCBgQnVpbGRlciAke21hdGNoaW5nQnVpbGRlci5idWlsZGVyfSBub3QgZm91bmQg
aW4gQnVpbGRib3QgY29uZmlndXJhdGlvbi5gKTsKKyAgICAgICAgICAgICAgICBtYXRjaGluZ0J1
aWxkZXJbJ2J1aWxkZXJJRCddID0gYnVpbGRlck5hbWVUb0lETWFwW21hdGNoaW5nQnVpbGRlci5i
dWlsZGVyXTsKICAgICAgICAgICAgICAgICBjb25zdCBidWlsZGVyQ29uZmlnID0gdGhpcy5fdmFs
aWRhdGVBbmRNZXJnZUNvbmZpZyh7fSwgbWF0Y2hpbmdCdWlsZGVyKTsKICAgICAgICAgICAgICAg
ICBmb3IgKGNvbnN0IHBsYXRmb3JtTmFtZSBvZiBlbnRyeVsncGxhdGZvcm1zJ10pIHsKICAgICAg
ICAgICAgICAgICAgICAgY29uc3QgcGxhdGZvcm0gPSBQbGF0Zm9ybS5maW5kQnlOYW1lKHBsYXRm
b3JtTmFtZSk7CkBAIC01NjUsNiArNTY5LDEwIEBAIGNsYXNzIEJ1aWxkYm90U3luY2VyIHsKICAg
ICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwodHlwZW9mKHZhbHVlKSwgJ3N0cmluZycsIGAke25h
bWV9IHNob3VsZCBiZSBvZiBzdHJpbmcgdHlwZWApOwogICAgICAgICAgICAgICAgIGNvbmZpZ1tu
YW1lXSA9IHZhbHVlOwogICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgY2FzZSAn
YnVpbGRlcklEJzoKKyAgICAgICAgICAgICAgICBhc3NlcnQodmFsdWUsICdidWlsZGVySUQgc2hv
dWxkIG5vdCBiZSB1bmRlZmluZWQuJyk7CisgICAgICAgICAgICAgICAgY29uZmlnW25hbWVdID0g
dmFsdWU7CisgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICBkZWZhdWx0OgogICAg
ICAgICAgICAgICAgIGFzc2VydChmYWxzZSwgYFVucmVjb2duaXplZCBwYXJhbWV0ZXIgIiR7bmFt
ZX0iYCk7CiAgICAgICAgICAgICB9CkluZGV4OiBXZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvdG9v
bHMvanMvYnVpbGRib3QtdHJpZ2dlcmFibGUuanMKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2Vic2l0ZXMvcGVy
Zi53ZWJraXQub3JnL3Rvb2xzL2pzL2J1aWxkYm90LXRyaWdnZXJhYmxlLmpzCShyZXZpc2lvbiAy
MjU1OTMpCisrKyBXZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvdG9vbHMvanMvYnVpbGRib3QtdHJp
Z2dlcmFibGUuanMJKHdvcmtpbmcgY29weSkKQEAgLTI3LDExICsyNywzNiBAQCBjbGFzcyBCdWls
ZGJvdFRyaWdnZXJhYmxlIHsKICAgICAgICAgdGhpcy5fbG9nZ2VyID0gbG9nZ2VyIHx8IHtsb2c6
ICgpID0+IHsgfSwgZXJyb3I6ICgpID0+IHsgfX07CiAgICAgfQogCisgICAgLy8gVGhpcyBtZXRo
b2QgaGFuZGxlcyBCdWlsZGJvdCAwLjkgZGF0YSBmb3JtYXQKKyAgICBnZXRCdWlsZGVyTmFtZVRv
SURNYXAoKQorICAgIHsKKyAgICAgICAgcmV0dXJuIHRoaXMuX2J1aWxkYm90UmVtb3RlLmdldEpT
T04oIi9hcGkvdjIvYnVpbGRlcnMiKS50aGVuKChjb250ZW50KSA9PiB7CisgICAgICAgICAgICBh
c3NlcnQoY29udGVudC5idWlsZGVycyBpbnN0YW5jZW9mIEFycmF5KTsKKworICAgICAgICAgICAg
Y29uc3QgYnVpbGRlck5hbWVUb0lETWFwID0ge307CisgICAgICAgICAgICBmb3IgKGNvbnN0IGJ1
aWxkZXIgb2YgY29udGVudC5idWlsZGVycykKKyAgICAgICAgICAgICAgICBidWlsZGVyTmFtZVRv
SURNYXBbYnVpbGRlci5uYW1lXSA9IGJ1aWxkZXIuYnVpbGRlcmlkOworCisgICAgICAgICAgICBy
ZXR1cm4gYnVpbGRlck5hbWVUb0lETWFwOworICAgICAgICB9KTsKKyAgICB9CisKKyAgICAvLyBU
aGlzIG1ldGhvZCBoYW5kbGVzIEJ1aWxkYm90IDAuOCBkYXRhIGZvcm1hdAorICAgIGdldEJ1aWxk
ZXJOYW1lVG9JRE1hcERlcHJlY2F0ZWQoKQorICAgIHsKKyAgICAgICAgcmV0dXJuIHRoaXMuX2J1
aWxkYm90UmVtb3RlLmdldEpTT04oIi9qc29uL2J1aWxkZXJzIikudGhlbigoY29udGVudCkgPT4g
eworICAgICAgICAgICAgY29uc3QgYnVpbGRlck5hbWVUb0lETWFwID0ge307CisgICAgICAgICAg
ICBmb3IgKGxldCBidWlsZGVyIGluIGNvbnRlbnQpCisgICAgICAgICAgICAgICAgYnVpbGRlck5h
bWVUb0lETWFwW2J1aWxkZXJdID0gYnVpbGRlcjsKKworICAgICAgICAgICAgcmV0dXJuIGJ1aWxk
ZXJOYW1lVG9JRE1hcDsKKyAgICAgICAgfSk7CisgICAgfQorCiAgICAgaW5pdFN5bmNlcnMoKQog
ICAgIHsKLSAgICAgICAgcmV0dXJuIG5ldyBQcm9taXNlKChyZXNvbHZlLCByZWplY3QpID0+IHsK
LSAgICAgICAgICAgIHRoaXMuX3N5bmNlcnMgPSBCdWlsZGJvdFN5bmNlci5fbG9hZENvbmZpZyh0
aGlzLl9idWlsZGJvdFJlbW90ZSwgdGhpcy5fY29uZmlnKTsKLSAgICAgICAgICAgIHNldFRpbWVv
dXQocmVzb2x2ZSwgMCk7CisgICAgICAgIHJldHVybiB0aGlzLmdldEJ1aWxkZXJOYW1lVG9JRE1h
cERlcHJlY2F0ZWQoKS50aGVuKChidWlsZGVyTmFtZVRvSURNYXApID0+IHsKKyAgICAgICAgICAg
IHRoaXMuX3N5bmNlcnMgPSBCdWlsZGJvdFN5bmNlci5fbG9hZENvbmZpZyh0aGlzLl9idWlsZGJv
dFJlbW90ZSwgdGhpcy5fY29uZmlnLCBidWlsZGVyTmFtZVRvSURNYXApOwogICAgICAgICB9KTsK
ICAgICB9CiAKSW5kZXg6IFdlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy91bml0LXRlc3RzL2J1aWxk
Ym90LXN5bmNlci10ZXN0cy5qcwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJzaXRlcy9wZXJmLndlYmtpdC5v
cmcvdW5pdC10ZXN0cy9idWlsZGJvdC1zeW5jZXItdGVzdHMuanMJKHJldmlzaW9uIDIyNTU5MykK
KysrIFdlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy91bml0LXRlc3RzL2J1aWxkYm90LXN5bmNlci10
ZXN0cy5qcwkod29ya2luZyBjb3B5KQpAQCAtMTQzLDYgKzE0MywxOSBAQCBmdW5jdGlvbiBzbWFs
bENvbmZpZ3VyYXRpb24oKQogICAgIH07CiB9CiAKK2Z1bmN0aW9uIGJ1aWxkZXJOYW1lVG9JRE1h
cCgpCit7CisgICAgcmV0dXJuIHsKKyAgICAgICAgJ3NvbWUgYnVpbGRlcicgOiAnMTAwJywKKyAg
ICAgICAgJ0FCVGVzdC1pUGhvbmUtUnVuQmVuY2htYXJrLVRlc3RzJzogJzEwMScsCisgICAgICAg
ICdBQlRlc3QtaVBhZC1SdW5CZW5jaG1hcmstVGVzdHMnOiAnMTAyJywKKyAgICAgICAgJ0FCVGVz
dC1pT1MtQnVpbGRlcic6ICcxMDMnLAorICAgICAgICAnaVBob25lIEFCIFRlc3RzJyA6ICcxMDQn
LAorICAgICAgICAnaVBob25lIDIgQUIgVGVzdHMnOiAnMTA1JywKKyAgICAgICAgJ2lQYWQgQUIg
VGVzdHMnOiAnMTA2JworICAgIH0gICAgCit9CisKIGZ1bmN0aW9uIHNtYWxsUGVuZGluZ0J1aWxk
KCkKIHsKICAgICByZXR1cm4gewpAQCAtNDc3LDM5ICs0OTAsMzkgQEAgZGVzY3JpYmUoJ0J1aWxk
Ym90U3luY2VyJywgKCkgPT4gewogICAgIGRlc2NyaWJlKCdfbG9hZENvbmZpZycsICgpID0+IHsK
IAogICAgICAgICBpdCgnc2hvdWxkIGNyZWF0ZSBCdWlsZGJvdFN5bmNlciBvYmplY3RzIGZvciBh
IGNvbmZpZ3VyYXRpb24gdGhhdCBzcGVjaWZ5IGFsbCByZXF1aXJlZCBvcHRpb25zJywgKCkgPT4g
ewotICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKEJ1aWxkYm90U3luY2VyLl9sb2FkQ29uZmlnKE1v
Y2tSZW1vdGVBUEksIHNtYWxsQ29uZmlndXJhdGlvbigpKS5sZW5ndGgsIDEpOworICAgICAgICAg
ICAgYXNzZXJ0LmVxdWFsKEJ1aWxkYm90U3luY2VyLl9sb2FkQ29uZmlnKE1vY2tSZW1vdGVBUEks
IHNtYWxsQ29uZmlndXJhdGlvbigpLCBidWlsZGVyTmFtZVRvSURNYXAoKSkubGVuZ3RoLCAxKTsK
ICAgICAgICAgfSk7CiAKICAgICAgICAgaXQoJ3Nob3VsZCB0aHJvdyB3aGVuIHNvbWUgcmVxdWly
ZWQgb3B0aW9ucyBhcmUgbWlzc2luZycsICgpID0+IHsKICAgICAgICAgICAgIGFzc2VydC50aHJv
d3MoKCkgPT4gewogICAgICAgICAgICAgICAgIGNvbnN0IGNvbmZpZyA9IHNtYWxsQ29uZmlndXJh
dGlvbigpOwogICAgICAgICAgICAgICAgIGRlbGV0ZSBjb25maWcuYnVpbGRlcnM7Ci0gICAgICAg
ICAgICAgICAgQnVpbGRib3RTeW5jZXIuX2xvYWRDb25maWcoTW9ja1JlbW90ZUFQSSwgY29uZmln
KTsKKyAgICAgICAgICAgICAgICBCdWlsZGJvdFN5bmNlci5fbG9hZENvbmZpZyhNb2NrUmVtb3Rl
QVBJLCBjb25maWcsIGJ1aWxkZXJOYW1lVG9JRE1hcCgpKTsKICAgICAgICAgICAgIH0sIC8ic29t
ZS1idWlsZGVyIiBpcyBub3QgYSB2YWxpZCBidWlsZGVyIGluIHRoZSBjb25maWd1cmF0aW9uLyk7
CiAgICAgICAgICAgICBhc3NlcnQudGhyb3dzKCgpID0+IHsKICAgICAgICAgICAgICAgICBjb25z
dCBjb25maWcgPSBzbWFsbENvbmZpZ3VyYXRpb24oKTsKICAgICAgICAgICAgICAgICBkZWxldGUg
Y29uZmlnLnR5cGVzOwotICAgICAgICAgICAgICAgIEJ1aWxkYm90U3luY2VyLl9sb2FkQ29uZmln
KE1vY2tSZW1vdGVBUEksIGNvbmZpZyk7CisgICAgICAgICAgICAgICAgQnVpbGRib3RTeW5jZXIu
X2xvYWRDb25maWcoTW9ja1JlbW90ZUFQSSwgY29uZmlnLCBidWlsZGVyTmFtZVRvSURNYXAoKSk7
CiAgICAgICAgICAgICB9LCAvInNvbWUtdGVzdCIgaXMgbm90IGEgdmFsaWQgdHlwZSBpbiB0aGUg
Y29uZmlndXJhdGlvbi8pOwogICAgICAgICAgICAgYXNzZXJ0LnRocm93cygoKSA9PiB7CiAgICAg
ICAgICAgICAgICAgY29uc3QgY29uZmlnID0gc21hbGxDb25maWd1cmF0aW9uKCk7CiAgICAgICAg
ICAgICAgICAgZGVsZXRlIGNvbmZpZy50ZXN0Q29uZmlndXJhdGlvbnNbMF0uYnVpbGRlcnM7Ci0g
ICAgICAgICAgICAgICAgQnVpbGRib3RTeW5jZXIuX2xvYWRDb25maWcoTW9ja1JlbW90ZUFQSSwg
Y29uZmlnKTsKKyAgICAgICAgICAgICAgICBCdWlsZGJvdFN5bmNlci5fbG9hZENvbmZpZyhNb2Nr
UmVtb3RlQVBJLCBjb25maWcsIGJ1aWxkZXJOYW1lVG9JRE1hcCgpKTsKICAgICAgICAgICAgIH0s
IC9UaGUgdGVzdCBjb25maWd1cmF0aW9uIDEgZG9lcyBub3Qgc3BlY2lmeSAiYnVpbGRlcnMiIGFz
IGFuIGFycmF5Lyk7CiAgICAgICAgICAgICBhc3NlcnQudGhyb3dzKCgpID0+IHsKICAgICAgICAg
ICAgICAgICBjb25zdCBjb25maWcgPSBzbWFsbENvbmZpZ3VyYXRpb24oKTsKICAgICAgICAgICAg
ICAgICBkZWxldGUgY29uZmlnLnRlc3RDb25maWd1cmF0aW9uc1swXS5wbGF0Zm9ybXM7Ci0gICAg
ICAgICAgICAgICAgQnVpbGRib3RTeW5jZXIuX2xvYWRDb25maWcoTW9ja1JlbW90ZUFQSSwgY29u
ZmlnKTsKKyAgICAgICAgICAgICAgICBCdWlsZGJvdFN5bmNlci5fbG9hZENvbmZpZyhNb2NrUmVt
b3RlQVBJLCBjb25maWcsIGJ1aWxkZXJOYW1lVG9JRE1hcCgpKTsKICAgICAgICAgICAgIH0sIC9U
aGUgdGVzdCBjb25maWd1cmF0aW9uIDEgZG9lcyBub3Qgc3BlY2lmeSAicGxhdGZvcm1zIiBhcyBh
biBhcnJheS8pOwogICAgICAgICAgICAgYXNzZXJ0LnRocm93cygoKSA9PiB7CiAgICAgICAgICAg
ICAgICAgY29uc3QgY29uZmlnID0gc21hbGxDb25maWd1cmF0aW9uKCk7CiAgICAgICAgICAgICAg
ICAgZGVsZXRlIGNvbmZpZy50ZXN0Q29uZmlndXJhdGlvbnNbMF0udHlwZXM7Ci0gICAgICAgICAg
ICAgICAgQnVpbGRib3RTeW5jZXIuX2xvYWRDb25maWcoTW9ja1JlbW90ZUFQSSwgY29uZmlnKTsK
KyAgICAgICAgICAgICAgICBCdWlsZGJvdFN5bmNlci5fbG9hZENvbmZpZyhNb2NrUmVtb3RlQVBJ
LCBjb25maWcsIGJ1aWxkZXJOYW1lVG9JRE1hcCgpKTsKICAgICAgICAgICAgIH0sIC9UaGUgdGVz
dCBjb25maWd1cmF0aW9uIDAgZG9lcyBub3Qgc3BlY2lmeSAidHlwZXMiIGFzIGFuIGFycmF5Lyk7
CiAgICAgICAgICAgICBhc3NlcnQudGhyb3dzKCgpID0+IHsKICAgICAgICAgICAgICAgICBjb25z
dCBjb25maWcgPSBzbWFsbENvbmZpZ3VyYXRpb24oKTsKICAgICAgICAgICAgICAgICBkZWxldGUg
Y29uZmlnLmJ1aWxkUmVxdWVzdEFyZ3VtZW50OwotICAgICAgICAgICAgICAgIEJ1aWxkYm90U3lu
Y2VyLl9sb2FkQ29uZmlnKE1vY2tSZW1vdGVBUEksIGNvbmZpZyk7CisgICAgICAgICAgICAgICAg
QnVpbGRib3RTeW5jZXIuX2xvYWRDb25maWcoTW9ja1JlbW90ZUFQSSwgY29uZmlnLCBidWlsZGVy
TmFtZVRvSURNYXAoKSk7CiAgICAgICAgICAgICB9LCAvYnVpbGRSZXF1ZXN0QXJndW1lbnQgbXVz
dCBzcGVjaWZ5IHRoZSBuYW1lIG9mIHRoZSBwcm9wZXJ0eSB1c2VkIHRvIHN0b3JlIHRoZSBidWls
ZCByZXF1ZXN0IElELyk7CiAgICAgICAgIH0pOwogCkBAIC01MTcsMTIgKzUzMCwxMiBAQCBkZXNj
cmliZSgnQnVpbGRib3RTeW5jZXInLCAoKSA9PiB7CiAgICAgICAgICAgICBhc3NlcnQudGhyb3dz
KCgpID0+IHsKICAgICAgICAgICAgICAgICBjb25zdCBjb25maWcgPSBzbWFsbENvbmZpZ3VyYXRp
b24oKTsKICAgICAgICAgICAgICAgICBjb25maWcudGVzdENvbmZpZ3VyYXRpb25zWzBdLnR5cGVz
ID0gJ3NvbWUgdGVzdCc7Ci0gICAgICAgICAgICAgICAgQnVpbGRib3RTeW5jZXIuX2xvYWRDb25m
aWcoTW9ja1JlbW90ZUFQSSwgY29uZmlnKTsKKyAgICAgICAgICAgICAgICBCdWlsZGJvdFN5bmNl
ci5fbG9hZENvbmZpZyhNb2NrUmVtb3RlQVBJLCBjb25maWcsIGJ1aWxkZXJOYW1lVG9JRE1hcCgp
KTsKICAgICAgICAgICAgIH0sIC9UaGUgdGVzdCBjb25maWd1cmF0aW9uIDAgZG9lcyBub3Qgc3Bl
Y2lmeSAidHlwZXMiIGFzIGFuIGFycmF5Lyk7CiAgICAgICAgICAgICBhc3NlcnQudGhyb3dzKCgp
ID0+IHsKICAgICAgICAgICAgICAgICBjb25zdCBjb25maWcgPSBzbWFsbENvbmZpZ3VyYXRpb24o
KTsKICAgICAgICAgICAgICAgICBjb25maWcudGVzdENvbmZpZ3VyYXRpb25zWzBdLnR5cGVzID0g
WzFdOwotICAgICAgICAgICAgICAgIEJ1aWxkYm90U3luY2VyLl9sb2FkQ29uZmlnKE1vY2tSZW1v
dGVBUEksIGNvbmZpZyk7CisgICAgICAgICAgICAgICAgQnVpbGRib3RTeW5jZXIuX2xvYWRDb25m
aWcoTW9ja1JlbW90ZUFQSSwgY29uZmlnLCBidWlsZGVyTmFtZVRvSURNYXAoKSk7CiAgICAgICAg
ICAgICB9LCAvIjEiIGlzIG5vdCBhIHZhbGlkIHR5cGUgaW4gdGhlIGNvbmZpZ3VyYXRpb24vKTsK
ICAgICAgICAgfSk7CiAKQEAgLTUzMCwxMiArNTQzLDEyIEBAIGRlc2NyaWJlKCdCdWlsZGJvdFN5
bmNlcicsICgpID0+IHsKICAgICAgICAgICAgIGFzc2VydC50aHJvd3MoKCkgPT4gewogICAgICAg
ICAgICAgICAgIGNvbnN0IGNvbmZpZyA9IHNtYWxsQ29uZmlndXJhdGlvbigpOwogICAgICAgICAg
ICAgICAgIGNvbmZpZy5idWlsZGVyc1tPYmplY3Qua2V5cyhjb25maWcuYnVpbGRlcnMpWzBdXS5w
cm9wZXJ0aWVzID0gJ2hlbGxvJzsKLSAgICAgICAgICAgICAgICBCdWlsZGJvdFN5bmNlci5fbG9h
ZENvbmZpZyhNb2NrUmVtb3RlQVBJLCBjb25maWcpOworICAgICAgICAgICAgICAgIEJ1aWxkYm90
U3luY2VyLl9sb2FkQ29uZmlnKE1vY2tSZW1vdGVBUEksIGNvbmZpZywgYnVpbGRlck5hbWVUb0lE
TWFwKCkpOwogICAgICAgICAgICAgfSwgL0J1aWxkIHByb3BlcnRpZXMgc2hvdWxkIGJlIGEgZGlj
dGlvbmFyeS8pOwogICAgICAgICAgICAgYXNzZXJ0LnRocm93cygoKSA9PiB7CiAgICAgICAgICAg
ICAgICAgY29uc3QgY29uZmlnID0gc21hbGxDb25maWd1cmF0aW9uKCk7CiAgICAgICAgICAgICAg
ICAgY29uZmlnLnR5cGVzW09iamVjdC5rZXlzKGNvbmZpZy50eXBlcylbMF1dLnByb3BlcnRpZXMg
PSAnaGVsbG8nOwotICAgICAgICAgICAgICAgIEJ1aWxkYm90U3luY2VyLl9sb2FkQ29uZmlnKE1v
Y2tSZW1vdGVBUEksIGNvbmZpZyk7CisgICAgICAgICAgICAgICAgQnVpbGRib3RTeW5jZXIuX2xv
YWRDb25maWcoTW9ja1JlbW90ZUFQSSwgY29uZmlnLCBidWlsZGVyTmFtZVRvSURNYXAoKSk7CiAg
ICAgICAgICAgICB9LCAvQnVpbGQgcHJvcGVydGllcyBzaG91bGQgYmUgYSBkaWN0aW9uYXJ5Lyk7
CiAgICAgICAgIH0pOwogCkBAIC01NDQsMTMgKzU1NywxMyBAQCBkZXNjcmliZSgnQnVpbGRib3RT
eW5jZXInLCAoKSA9PiB7CiAgICAgICAgICAgICAgICAgY29uc3QgY29uZmlnID0gc21hbGxDb25m
aWd1cmF0aW9uKCk7CiAgICAgICAgICAgICAgICAgY29uc3QgZmlyc3RUeXBlID0gT2JqZWN0Lmtl
eXMoY29uZmlnLnR5cGVzKVswXTsKICAgICAgICAgICAgICAgICBjb25maWcudHlwZXNbZmlyc3RU
eXBlXS50ZXN0UHJvcGVydGllcyA9IHt9OwotICAgICAgICAgICAgICAgIEJ1aWxkYm90U3luY2Vy
Ll9sb2FkQ29uZmlnKE1vY2tSZW1vdGVBUEksIGNvbmZpZyk7CisgICAgICAgICAgICAgICAgQnVp
bGRib3RTeW5jZXIuX2xvYWRDb25maWcoTW9ja1JlbW90ZUFQSSwgY29uZmlnLCBidWlsZGVyTmFt
ZVRvSURNYXAoKSk7CiAgICAgICAgICAgICB9LCAvVW5yZWNvZ25pemVkIHBhcmFtZXRlciAidGVz
dFByb3BlcnRpZXMiLyk7CiAgICAgICAgICAgICBhc3NlcnQudGhyb3dzKCgpID0+IHsKICAgICAg
ICAgICAgICAgICBjb25zdCBjb25maWcgPSBzbWFsbENvbmZpZ3VyYXRpb24oKTsKICAgICAgICAg
ICAgICAgICBjb25zdCBmaXJzdEJ1aWxkZXIgPSBPYmplY3Qua2V5cyhjb25maWcuYnVpbGRlcnMp
WzBdOwogICAgICAgICAgICAgICAgIGNvbmZpZy5idWlsZGVyc1tmaXJzdEJ1aWxkZXJdLnRlc3RQ
cm9wZXJ0aWVzID0ge307Ci0gICAgICAgICAgICAgICAgQnVpbGRib3RTeW5jZXIuX2xvYWRDb25m
aWcoTW9ja1JlbW90ZUFQSSwgY29uZmlnKTsKKyAgICAgICAgICAgICAgICBCdWlsZGJvdFN5bmNl
ci5fbG9hZENvbmZpZyhNb2NrUmVtb3RlQVBJLCBjb25maWcsIGJ1aWxkZXJOYW1lVG9JRE1hcCgp
KTsKICAgICAgICAgICAgIH0sIC9VbnJlY29nbml6ZWQgcGFyYW1ldGVyICJ0ZXN0UHJvcGVydGll
cyIvKTsKICAgICAgICAgfSk7CiAKQEAgLTU1OSwxMyArNTcyLDEzIEBAIGRlc2NyaWJlKCdCdWls
ZGJvdFN5bmNlcicsICgpID0+IHsKICAgICAgICAgICAgICAgICBjb25zdCBjb25maWcgPSBzbWFs
bENvbmZpZ3VyYXRpb24oKTsKICAgICAgICAgICAgICAgICBjb25zdCBmaXJzdFR5cGUgPSBPYmpl
Y3Qua2V5cyhjb25maWcudHlwZXMpWzBdOwogICAgICAgICAgICAgICAgIGNvbmZpZy50eXBlc1tm
aXJzdFR5cGVdLmJ1aWxkUHJvcGVydGllcyA9IHt9OwotICAgICAgICAgICAgICAgIEJ1aWxkYm90
U3luY2VyLl9sb2FkQ29uZmlnKE1vY2tSZW1vdGVBUEksIGNvbmZpZyk7CisgICAgICAgICAgICAg
ICAgQnVpbGRib3RTeW5jZXIuX2xvYWRDb25maWcoTW9ja1JlbW90ZUFQSSwgY29uZmlnLCBidWls
ZGVyTmFtZVRvSURNYXAoKSk7CiAgICAgICAgICAgICB9LCAvVW5yZWNvZ25pemVkIHBhcmFtZXRl
ciAiYnVpbGRQcm9wZXJ0aWVzIi8pOwogICAgICAgICAgICAgYXNzZXJ0LnRocm93cygoKSA9PiB7
CiAgICAgICAgICAgICAgICAgY29uc3QgY29uZmlnID0gc21hbGxDb25maWd1cmF0aW9uKCk7CiAg
ICAgICAgICAgICAgICAgY29uc3QgZmlyc3RCdWlsZGVyID0gT2JqZWN0LmtleXMoY29uZmlnLmJ1
aWxkZXJzKVswXTsKICAgICAgICAgICAgICAgICBjb25maWcuYnVpbGRlcnNbZmlyc3RCdWlsZGVy
XS5idWlsZFByb3BlcnRpZXMgPSB7fTsKLSAgICAgICAgICAgICAgICBCdWlsZGJvdFN5bmNlci5f
bG9hZENvbmZpZyhNb2NrUmVtb3RlQVBJLCBjb25maWcpOworICAgICAgICAgICAgICAgIEJ1aWxk
Ym90U3luY2VyLl9sb2FkQ29uZmlnKE1vY2tSZW1vdGVBUEksIGNvbmZpZywgYnVpbGRlck5hbWVU
b0lETWFwKCkpOwogICAgICAgICAgICAgfSwgL1VucmVjb2duaXplZCBwYXJhbWV0ZXIgImJ1aWxk
UHJvcGVydGllcyIvKTsKICAgICAgICAgfSk7CiAKQEAgLTU3NCwyNyArNTg3LDI3IEBAIGRlc2Ny
aWJlKCdCdWlsZGJvdFN5bmNlcicsICgpID0+IHsKICAgICAgICAgICAgIGFzc2VydC50aHJvd3Mo
KCkgPT4gewogICAgICAgICAgICAgICAgIGNvbnN0IGNvbmZpZyA9IHNtYWxsQ29uZmlndXJhdGlv
bigpOwogICAgICAgICAgICAgICAgIGNvbmZpZy50eXBlc1tmaXJzdFR5cGVdLnByb3BlcnRpZXMg
PSAnaGVsbG8nOwotICAgICAgICAgICAgICAgIEJ1aWxkYm90U3luY2VyLl9sb2FkQ29uZmlnKE1v
Y2tSZW1vdGVBUEksIGNvbmZpZyk7CisgICAgICAgICAgICAgICAgQnVpbGRib3RTeW5jZXIuX2xv
YWRDb25maWcoTW9ja1JlbW90ZUFQSSwgY29uZmlnLCBidWlsZGVyTmFtZVRvSURNYXAoKSk7CiAg
ICAgICAgICAgICB9LCAvQnVpbGQgcHJvcGVydGllcyBzaG91bGQgYmUgYSBkaWN0aW9uYXJ5Lyk7
CiAgICAgICAgICAgICBhc3NlcnQudGhyb3dzKCgpID0+IHsKICAgICAgICAgICAgICAgICBjb25z
dCBjb25maWcgPSBzbWFsbENvbmZpZ3VyYXRpb24oKTsKICAgICAgICAgICAgICAgICBjb25maWcu
dHlwZXNbZmlyc3RUeXBlXS5wcm9wZXJ0aWVzID0geydzb21lJzogeydvdGhlcktleSc6ICdzb21l
IHJvb3QnfX07Ci0gICAgICAgICAgICAgICAgQnVpbGRib3RTeW5jZXIuX2xvYWRDb25maWcoUmVt
b3RlQVBJLCBjb25maWcpOworICAgICAgICAgICAgICAgIEJ1aWxkYm90U3luY2VyLl9sb2FkQ29u
ZmlnKFJlbW90ZUFQSSwgY29uZmlnLCBidWlsZGVyTmFtZVRvSURNYXAoKSk7CiAgICAgICAgICAg
ICB9LCAvQnVpbGQgcHJvcGVydGllcyAic29tZSIgc3BlY2lmaWVzIGEgbm9uLXN0cmluZyB2YWx1
ZSBvZiB0eXBlICJvYmplY3QiLyk7CiAgICAgICAgICAgICBhc3NlcnQudGhyb3dzKCgpID0+IHsK
ICAgICAgICAgICAgICAgICBjb25zdCBjb25maWcgPSBzbWFsbENvbmZpZ3VyYXRpb24oKTsKICAg
ICAgICAgICAgICAgICBjb25maWcudHlwZXNbZmlyc3RUeXBlXS5wcm9wZXJ0aWVzID0geydzb21l
JzogeydvdGhlcktleSc6ICdzb21lIHJvb3QnfX07Ci0gICAgICAgICAgICAgICAgQnVpbGRib3RT
eW5jZXIuX2xvYWRDb25maWcoUmVtb3RlQVBJLCBjb25maWcpOworICAgICAgICAgICAgICAgIEJ1
aWxkYm90U3luY2VyLl9sb2FkQ29uZmlnKFJlbW90ZUFQSSwgY29uZmlnLCBidWlsZGVyTmFtZVRv
SURNYXAoKSk7CiAgICAgICAgICAgICB9LCAvQnVpbGQgcHJvcGVydGllcyAic29tZSIgc3BlY2lm
aWVzIGEgbm9uLXN0cmluZyB2YWx1ZSBvZiB0eXBlICJvYmplY3QiLyk7CiAgICAgICAgICAgICBh
c3NlcnQudGhyb3dzKCgpID0+IHsKICAgICAgICAgICAgICAgICBjb25zdCBjb25maWcgPSBzbWFs
bENvbmZpZ3VyYXRpb24oKTsKICAgICAgICAgICAgICAgICBjb25maWcudHlwZXNbZmlyc3RUeXBl
XS5wcm9wZXJ0aWVzID0geydzb21lJzogeydyZXZpc2lvbic6ICdXZWJLaXQnfX07Ci0gICAgICAg
ICAgICAgICAgQnVpbGRib3RTeW5jZXIuX2xvYWRDb25maWcoUmVtb3RlQVBJLCBjb25maWcpOwor
ICAgICAgICAgICAgICAgIEJ1aWxkYm90U3luY2VyLl9sb2FkQ29uZmlnKFJlbW90ZUFQSSwgY29u
ZmlnLCBidWlsZGVyTmFtZVRvSURNYXAoKSk7CiAgICAgICAgICAgICB9LCAvQnVpbGQgcHJvcGVy
dGllcyAic29tZSIgc3BlY2lmaWVzIGEgbm9uLXN0cmluZyB2YWx1ZSBvZiB0eXBlICJvYmplY3Qi
Lyk7CiAgICAgICAgICAgICBhc3NlcnQudGhyb3dzKCgpID0+IHsKICAgICAgICAgICAgICAgICBj
b25zdCBjb25maWcgPSBzbWFsbENvbmZpZ3VyYXRpb24oKTsKICAgICAgICAgICAgICAgICBjb25m
aWcudHlwZXNbZmlyc3RUeXBlXS5wcm9wZXJ0aWVzID0geydzb21lJzogMX07Ci0gICAgICAgICAg
ICAgICAgQnVpbGRib3RTeW5jZXIuX2xvYWRDb25maWcoUmVtb3RlQVBJLCBjb25maWcpOworICAg
ICAgICAgICAgICAgIEJ1aWxkYm90U3luY2VyLl9sb2FkQ29uZmlnKFJlbW90ZUFQSSwgY29uZmln
LCBidWlsZGVyTmFtZVRvSURNYXAoKSk7CiAgICAgICAgICAgICB9LCAvIEJ1aWxkIHByb3BlcnRp
ZXMgInNvbWUiIHNwZWNpZmllcyBhIG5vbi1zdHJpbmcgdmFsdWUgb2YgdHlwZSAib2JqZWN0Ii8p
OwogICAgICAgICB9KTsKIApAQCAtNjAzLDMyICs2MTYsMzIgQEAgZGVzY3JpYmUoJ0J1aWxkYm90
U3luY2VyJywgKCkgPT4gewogICAgICAgICAgICAgYXNzZXJ0LnRocm93cygoKSA9PiB7CiAgICAg
ICAgICAgICAgICAgY29uc3QgY29uZmlnID0gc21hbGxDb25maWd1cmF0aW9uKCk7CiAgICAgICAg
ICAgICAgICAgY29uZmlnLmJ1aWxkZXJzW2ZpcnN0QnVpbGRlcl0ucHJvcGVydGllcyA9ICdoZWxs
byc7Ci0gICAgICAgICAgICAgICAgQnVpbGRib3RTeW5jZXIuX2xvYWRDb25maWcoTW9ja1JlbW90
ZUFQSSwgY29uZmlnKTsKKyAgICAgICAgICAgICAgICBCdWlsZGJvdFN5bmNlci5fbG9hZENvbmZp
ZyhNb2NrUmVtb3RlQVBJLCBjb25maWcsIGJ1aWxkZXJOYW1lVG9JRE1hcCgpKTsKICAgICAgICAg
ICAgIH0sIC9CdWlsZCBwcm9wZXJ0aWVzIHNob3VsZCBiZSBhIGRpY3Rpb25hcnkvKTsKICAgICAg
ICAgICAgIGFzc2VydC50aHJvd3MoKCkgPT4gewogICAgICAgICAgICAgICAgIGNvbnN0IGNvbmZp
ZyA9IHNtYWxsQ29uZmlndXJhdGlvbigpOwogICAgICAgICAgICAgICAgIGNvbmZpZy5idWlsZGVy
c1tmaXJzdEJ1aWxkZXJdLnByb3BlcnRpZXMgPSB7J3NvbWUnOiB7J290aGVyS2V5JzogJ3NvbWUg
cm9vdCd9fTsKLSAgICAgICAgICAgICAgICBCdWlsZGJvdFN5bmNlci5fbG9hZENvbmZpZyhSZW1v
dGVBUEksIGNvbmZpZyk7CisgICAgICAgICAgICAgICAgQnVpbGRib3RTeW5jZXIuX2xvYWRDb25m
aWcoUmVtb3RlQVBJLCBjb25maWcsIGJ1aWxkZXJOYW1lVG9JRE1hcCgpKTsKICAgICAgICAgICAg
IH0sIC9CdWlsZCBwcm9wZXJ0aWVzICJzb21lIiBzcGVjaWZpZXMgYSBub24tc3RyaW5nIHZhbHVl
IG9mIHR5cGUgIm9iamVjdCIvKTsKICAgICAgICAgICAgIGFzc2VydC50aHJvd3MoKCkgPT4gewog
ICAgICAgICAgICAgICAgIGNvbnN0IGNvbmZpZyA9IHNtYWxsQ29uZmlndXJhdGlvbigpOwogICAg
ICAgICAgICAgICAgIGNvbmZpZy5idWlsZGVyc1tmaXJzdEJ1aWxkZXJdLnByb3BlcnRpZXMgPSB7
J3NvbWUnOiB7J290aGVyS2V5JzogJ3NvbWUgcm9vdCd9fTsKLSAgICAgICAgICAgICAgICBCdWls
ZGJvdFN5bmNlci5fbG9hZENvbmZpZyhSZW1vdGVBUEksIGNvbmZpZyk7CisgICAgICAgICAgICAg
ICAgQnVpbGRib3RTeW5jZXIuX2xvYWRDb25maWcoUmVtb3RlQVBJLCBjb25maWcsIGJ1aWxkZXJO
YW1lVG9JRE1hcCgpKTsKICAgICAgICAgICAgIH0sIC9CdWlsZCBwcm9wZXJ0aWVzICJzb21lIiBz
cGVjaWZpZXMgYSBub24tc3RyaW5nIHZhbHVlIG9mIHR5cGUgIm9iamVjdCIvKTsKICAgICAgICAg
ICAgIGFzc2VydC50aHJvd3MoKCkgPT4gewogICAgICAgICAgICAgICAgIGNvbnN0IGNvbmZpZyA9
IHNtYWxsQ29uZmlndXJhdGlvbigpOwogICAgICAgICAgICAgICAgIGNvbmZpZy5idWlsZGVyc1tm
aXJzdEJ1aWxkZXJdLnByb3BlcnRpZXMgPSB7J3NvbWUnOiB7J3JldmlzaW9uJzogJ1dlYktpdCd9
fTsKLSAgICAgICAgICAgICAgICBCdWlsZGJvdFN5bmNlci5fbG9hZENvbmZpZyhSZW1vdGVBUEks
IGNvbmZpZyk7CisgICAgICAgICAgICAgICAgQnVpbGRib3RTeW5jZXIuX2xvYWRDb25maWcoUmVt
b3RlQVBJLCBjb25maWcsIGJ1aWxkZXJOYW1lVG9JRE1hcCgpKTsKICAgICAgICAgICAgIH0sIC9C
dWlsZCBwcm9wZXJ0aWVzICJzb21lIiBzcGVjaWZpZXMgYSBub24tc3RyaW5nIHZhbHVlIG9mIHR5
cGUgIm9iamVjdCIvKTsKICAgICAgICAgICAgIGFzc2VydC50aHJvd3MoKCkgPT4gewogICAgICAg
ICAgICAgICAgIGNvbnN0IGNvbmZpZyA9IHNtYWxsQ29uZmlndXJhdGlvbigpOwogICAgICAgICAg
ICAgICAgIGNvbmZpZy5idWlsZGVyc1tmaXJzdEJ1aWxkZXJdLnByb3BlcnRpZXMgPSB7J3NvbWUn
OiAxfTsKLSAgICAgICAgICAgICAgICBCdWlsZGJvdFN5bmNlci5fbG9hZENvbmZpZyhSZW1vdGVB
UEksIGNvbmZpZyk7CisgICAgICAgICAgICAgICAgQnVpbGRib3RTeW5jZXIuX2xvYWRDb25maWco
UmVtb3RlQVBJLCBjb25maWcsIGJ1aWxkZXJOYW1lVG9JRE1hcCgpKTsKICAgICAgICAgICAgIH0s
IC9CdWlsZCBwcm9wZXJ0aWVzICJzb21lIiBzcGVjaWZpZXMgYSBub24tc3RyaW5nIHZhbHVlIG9m
IHR5cGUgIm9iamVjdCIvKTsKICAgICAgICAgfSk7CiAKICAgICAgICAgaXQoJ3Nob3VsZCBjcmVh
dGUgQnVpbGRib3RTeW5jZXIgb2JqZWN0cyBmb3IgdmFsaWQgY29uZmlndXJhdGlvbnMnLCAoKSA9
PiB7Ci0gICAgICAgICAgICBsZXQgc3luY2VycyA9IEJ1aWxkYm90U3luY2VyLl9sb2FkQ29uZmln
KFJlbW90ZUFQSSwgc2FtcGxlaU9TQ29uZmlnKCkpOworICAgICAgICAgICAgbGV0IHN5bmNlcnMg
PSBCdWlsZGJvdFN5bmNlci5fbG9hZENvbmZpZyhSZW1vdGVBUEksIHNhbXBsZWlPU0NvbmZpZygp
LCBidWlsZGVyTmFtZVRvSURNYXAoKSk7CiAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoc3luY2Vy
cy5sZW5ndGgsIDMpOwogICAgICAgICAgICAgYXNzZXJ0Lm9rKHN5bmNlcnNbMF0gaW5zdGFuY2Vv
ZiBCdWlsZGJvdFN5bmNlcik7CiAgICAgICAgICAgICBhc3NlcnQub2soc3luY2Vyc1sxXSBpbnN0
YW5jZW9mIEJ1aWxkYm90U3luY2VyKTsKQEAgLTYzNiwxNCArNjQ5LDE0IEBAIGRlc2NyaWJlKCdC
dWlsZGJvdFN5bmNlcicsICgpID0+IHsKICAgICAgICAgfSk7CiAKICAgICAgICAgaXQoJ3Nob3Vs
ZCBwYXJzZSBidWlsZGVyIG5hbWVzIGNvcnJlY3RseScsICgpID0+IHsKLSAgICAgICAgICAgIGxl
dCBzeW5jZXJzID0gQnVpbGRib3RTeW5jZXIuX2xvYWRDb25maWcoUmVtb3RlQVBJLCBzYW1wbGVp
T1NDb25maWcoKSk7CisgICAgICAgICAgICBsZXQgc3luY2VycyA9IEJ1aWxkYm90U3luY2VyLl9s
b2FkQ29uZmlnKFJlbW90ZUFQSSwgc2FtcGxlaU9TQ29uZmlnKCksIGJ1aWxkZXJOYW1lVG9JRE1h
cCgpKTsKICAgICAgICAgICAgIGFzc2VydC5lcXVhbChzeW5jZXJzWzBdLmJ1aWxkZXJOYW1lKCks
ICdBQlRlc3QtaVBob25lLVJ1bkJlbmNobWFyay1UZXN0cycpOwogICAgICAgICAgICAgYXNzZXJ0
LmVxdWFsKHN5bmNlcnNbMV0uYnVpbGRlck5hbWUoKSwgJ0FCVGVzdC1pUGFkLVJ1bkJlbmNobWFy
ay1UZXN0cycpOwogICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHN5bmNlcnNbMl0uYnVpbGRlck5h
bWUoKSwgJ0FCVGVzdC1pT1MtQnVpbGRlcicpOwogICAgICAgICB9KTsKIAogICAgICAgICBpdCgn
c2hvdWxkIHBhcnNlIHRlc3QgY29uZmlndXJhdGlvbnMgd2l0aCBidWlsZCBjb25maWd1cmF0aW9u
cyBjb3JyZWN0bHknLCAoKSA9PiB7Ci0gICAgICAgICAgICBsZXQgc3luY2VycyA9IEJ1aWxkYm90
U3luY2VyLl9sb2FkQ29uZmlnKFJlbW90ZUFQSSwgc2FtcGxlaU9TQ29uZmlnKCkpOworICAgICAg
ICAgICAgbGV0IHN5bmNlcnMgPSBCdWlsZGJvdFN5bmNlci5fbG9hZENvbmZpZyhSZW1vdGVBUEks
IHNhbXBsZWlPU0NvbmZpZygpLCBidWlsZGVyTmFtZVRvSURNYXAoKSk7CiAKICAgICAgICAgICAg
IGxldCBjb25maWd1cmF0aW9ucyA9IHN5bmNlcnNbMF0udGVzdENvbmZpZ3VyYXRpb25zKCk7CiAg
ICAgICAgICAgICBhc3NlcnQoc3luY2Vyc1swXS5pc1Rlc3RlcigpKTsKQEAgLTY3OSwxMiArNjky
LDEyIEBAIGRlc2NyaWJlKCdCdWlsZGJvdFN5bmNlcicsICgpID0+IHsKICAgICAgICAgICAgIGFz
c2VydC50aHJvd3MoKCkgPT4gewogICAgICAgICAgICAgICAgIGNvbnN0IGNvbmZpZyA9IHNhbXBs
ZWlPU0NvbmZpZygpOwogICAgICAgICAgICAgICAgIGNvbmZpZy5idWlsZENvbmZpZ3VyYXRpb25z
WzBdLmJ1aWxkZXJzID0gY29uZmlnLnRlc3RDb25maWd1cmF0aW9uc1swXS5idWlsZGVyczsKLSAg
ICAgICAgICAgICAgICBCdWlsZGJvdFN5bmNlci5fbG9hZENvbmZpZyhNb2NrUmVtb3RlQVBJLCBj
b25maWcpOworICAgICAgICAgICAgICAgIEJ1aWxkYm90U3luY2VyLl9sb2FkQ29uZmlnKE1vY2tS
ZW1vdGVBUEksIGNvbmZpZywgYnVpbGRlck5hbWVUb0lETWFwKCkpOwogICAgICAgICAgICAgfSk7
CiAgICAgICAgIH0pOwogCiAgICAgICAgIGl0KCdzaG91bGQgcGFyc2UgdGVzdCBjb25maWd1cmF0
aW9ucyB3aXRoIHR5cGVzIGFuZCBwbGF0Zm9ybXMgZXhwYW5zaW9ucyBjb3JyZWN0bHknLCAoKSA9
PiB7Ci0gICAgICAgICAgICBjb25zdCBzeW5jZXJzID0gQnVpbGRib3RTeW5jZXIuX2xvYWRDb25m
aWcoUmVtb3RlQVBJLCBzYW1wbGVpT1NDb25maWdXaXRoRXhwYW5zaW9ucygpKTsKKyAgICAgICAg
ICAgIGNvbnN0IHN5bmNlcnMgPSBCdWlsZGJvdFN5bmNlci5fbG9hZENvbmZpZyhSZW1vdGVBUEks
IHNhbXBsZWlPU0NvbmZpZ1dpdGhFeHBhbnNpb25zKCksIGJ1aWxkZXJOYW1lVG9JRE1hcCgpKTsK
IAogICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHN5bmNlcnMubGVuZ3RoLCAzKTsKIApAQCAtNzI1
LDEyICs3MzgsMTIgQEAgZGVzY3JpYmUoJ0J1aWxkYm90U3luY2VyJywgKCkgPT4gewogICAgICAg
ICAgICAgYXNzZXJ0LnRocm93cygoKSA9PiB7CiAgICAgICAgICAgICAgICAgY29uc3QgY29uZmln
ID0gc21hbGxDb25maWd1cmF0aW9uKCk7CiAgICAgICAgICAgICAgICAgY29uZmlnLnJlcG9zaXRv
cnlHcm91cHMgPSAxOwotICAgICAgICAgICAgICAgIEJ1aWxkYm90U3luY2VyLl9sb2FkQ29uZmln
KE1vY2tSZW1vdGVBUEksIGNvbmZpZyk7CisgICAgICAgICAgICAgICAgQnVpbGRib3RTeW5jZXIu
X2xvYWRDb25maWcoTW9ja1JlbW90ZUFQSSwgY29uZmlnLCBidWlsZGVyTmFtZVRvSURNYXAoKSk7
CiAgICAgICAgICAgICB9LCAvcmVwb3NpdG9yeUdyb3VwcyBtdXN0IHNwZWNpZnkgYSBkaWN0aW9u
YXJ5IGZyb20gdGhlIG5hbWUgdG8gaXRzIGRlZmluaXRpb24vKTsKICAgICAgICAgICAgIGFzc2Vy
dC50aHJvd3MoKCkgPT4gewogICAgICAgICAgICAgICAgIGNvbnN0IGNvbmZpZyA9IHNtYWxsQ29u
ZmlndXJhdGlvbigpOwogICAgICAgICAgICAgICAgIGNvbmZpZy5yZXBvc2l0b3J5R3JvdXBzID0g
J2hlbGxvJzsKLSAgICAgICAgICAgICAgICBCdWlsZGJvdFN5bmNlci5fbG9hZENvbmZpZyhNb2Nr
UmVtb3RlQVBJLCBjb25maWcpOworICAgICAgICAgICAgICAgIEJ1aWxkYm90U3luY2VyLl9sb2Fk
Q29uZmlnKE1vY2tSZW1vdGVBUEksIGNvbmZpZywgYnVpbGRlck5hbWVUb0lETWFwKCkpOwogICAg
ICAgICAgICAgfSwgL3JlcG9zaXRvcnlHcm91cHMgbXVzdCBzcGVjaWZ5IGEgZGljdGlvbmFyeSBm
cm9tIHRoZSBuYW1lIHRvIGl0cyBkZWZpbml0aW9uLyk7CiAgICAgICAgIH0pOwogCkBAIC03Mzgs
MTIgKzc1MSwxMiBAQCBkZXNjcmliZSgnQnVpbGRib3RTeW5jZXInLCAoKSA9PiB7CiAgICAgICAg
ICAgICBhc3NlcnQudGhyb3dzKCgpID0+IHsKICAgICAgICAgICAgICAgICBjb25zdCBjb25maWcg
PSBzbWFsbENvbmZpZ3VyYXRpb24oKTsKICAgICAgICAgICAgICAgICBjb25maWcucmVwb3NpdG9y
eUdyb3VwcyA9IHsnc29tZS1ncm91cCc6IHt0ZXN0UHJvcGVydGllczoge319fTsKLSAgICAgICAg
ICAgICAgICBCdWlsZGJvdFN5bmNlci5fbG9hZENvbmZpZyhNb2NrUmVtb3RlQVBJLCBjb25maWcp
OworICAgICAgICAgICAgICAgIEJ1aWxkYm90U3luY2VyLl9sb2FkQ29uZmlnKE1vY2tSZW1vdGVB
UEksIGNvbmZpZywgYnVpbGRlck5hbWVUb0lETWFwKCkpOwogICAgICAgICAgICAgfSwgL1JlcG9z
aXRvcnkgZ3JvdXAgInNvbWUtZ3JvdXAiIGRvZXMgbm90IHNwZWNpZnkgYSBkaWN0aW9uYXJ5IG9m
IHJlcG9zaXRvcmllcy8pOwogICAgICAgICAgICAgYXNzZXJ0LnRocm93cygoKSA9PiB7CiAgICAg
ICAgICAgICAgICAgY29uc3QgY29uZmlnID0gc21hbGxDb25maWd1cmF0aW9uKCk7CiAgICAgICAg
ICAgICAgICAgY29uZmlnLnJlcG9zaXRvcnlHcm91cHMgPSB7J3NvbWUtZ3JvdXAnOiB7cmVwb3Np
dG9yaWVzOiAxfSwgdGVzdFByb3BlcnRpZXM6IHt9fTsKLSAgICAgICAgICAgICAgICBCdWlsZGJv
dFN5bmNlci5fbG9hZENvbmZpZyhNb2NrUmVtb3RlQVBJLCBjb25maWcpOworICAgICAgICAgICAg
ICAgIEJ1aWxkYm90U3luY2VyLl9sb2FkQ29uZmlnKE1vY2tSZW1vdGVBUEksIGNvbmZpZywgYnVp
bGRlck5hbWVUb0lETWFwKCkpOwogICAgICAgICAgICAgfSwgL1JlcG9zaXRvcnkgZ3JvdXAgInNv
bWUtZ3JvdXAiIGRvZXMgbm90IHNwZWNpZnkgYSBkaWN0aW9uYXJ5IG9mIHJlcG9zaXRvcmllcy8p
OwogICAgICAgICB9KTsKIApAQCAtNzUxLDcgKzc2NCw3IEBAIGRlc2NyaWJlKCdCdWlsZGJvdFN5
bmNlcicsICgpID0+IHsKICAgICAgICAgICAgIGFzc2VydC50aHJvd3MoKCkgPT4gewogICAgICAg
ICAgICAgICAgIGNvbnN0IGNvbmZpZyA9IHNtYWxsQ29uZmlndXJhdGlvbigpOwogICAgICAgICAg
ICAgICAgIGNvbmZpZy5yZXBvc2l0b3J5R3JvdXBzID0geydzb21lLWdyb3VwJzoge3JlcG9zaXRv
cmllczoge30sIHRlc3RQcm9wZXJ0aWVzOiB7fX19OwotICAgICAgICAgICAgICAgIEJ1aWxkYm90
U3luY2VyLl9sb2FkQ29uZmlnKE1vY2tSZW1vdGVBUEksIGNvbmZpZyk7CisgICAgICAgICAgICAg
ICAgQnVpbGRib3RTeW5jZXIuX2xvYWRDb25maWcoTW9ja1JlbW90ZUFQSSwgY29uZmlnLCBidWls
ZGVyTmFtZVRvSURNYXAoKSk7CiAgICAgICAgICAgICB9LCAvUmVwb3NpdG9yeSBncm91cCAic29t
ZS1ncm91cCIgZG9lcyBub3Qgc3BlY2lmeSBhbnkgcmVwb3NpdG9yeS8pOwogICAgICAgICB9KTsK
IApAQCAtNzU5LDcgKzc3Miw3IEBAIGRlc2NyaWJlKCdCdWlsZGJvdFN5bmNlcicsICgpID0+IHsK
ICAgICAgICAgICAgIGFzc2VydC50aHJvd3MoKCkgPT4gewogICAgICAgICAgICAgICAgIGNvbnN0
IGNvbmZpZyA9IHNtYWxsQ29uZmlndXJhdGlvbigpOwogICAgICAgICAgICAgICAgIGNvbmZpZy5y
ZXBvc2l0b3J5R3JvdXBzID0geydzb21lLWdyb3VwJzoge3JlcG9zaXRvcmllczogeydJbnZhbGlk
UmVwb3NpdG9yeU5hbWUnOiB7fX19fTsKLSAgICAgICAgICAgICAgICBCdWlsZGJvdFN5bmNlci5f
bG9hZENvbmZpZyhNb2NrUmVtb3RlQVBJLCBjb25maWcpOworICAgICAgICAgICAgICAgIEJ1aWxk
Ym90U3luY2VyLl9sb2FkQ29uZmlnKE1vY2tSZW1vdGVBUEksIGNvbmZpZywgYnVpbGRlck5hbWVU
b0lETWFwKCkpOwogICAgICAgICAgICAgfSwgLyJJbnZhbGlkUmVwb3NpdG9yeU5hbWUiIGlzIG5v
dCBhIHZhbGlkIHJlcG9zaXRvcnkgbmFtZS8pOwogICAgICAgICB9KTsKIApAQCAtNzY3LDcgKzc4
MCw3IEBAIGRlc2NyaWJlKCdCdWlsZGJvdFN5bmNlcicsICgpID0+IHsKICAgICAgICAgICAgIGFz
c2VydC50aHJvd3MoKCkgPT4gewogICAgICAgICAgICAgICAgIGNvbnN0IGNvbmZpZyA9IHNtYWxs
Q29uZmlndXJhdGlvbigpOwogICAgICAgICAgICAgICAgIGNvbmZpZy5yZXBvc2l0b3J5R3JvdXBz
ID0geydzb21lLWdyb3VwJzoge3JlcG9zaXRvcmllczogeydXZWJLaXQnOiAxfX19OwotICAgICAg
ICAgICAgICAgIEJ1aWxkYm90U3luY2VyLl9sb2FkQ29uZmlnKE1vY2tSZW1vdGVBUEksIGNvbmZp
Zyk7CisgICAgICAgICAgICAgICAgQnVpbGRib3RTeW5jZXIuX2xvYWRDb25maWcoTW9ja1JlbW90
ZUFQSSwgY29uZmlnLCBidWlsZGVyTmFtZVRvSURNYXAoKSk7CiAgICAgICAgICAgICB9LCAvIldl
YktpdCIgc3BlY2lmaWVzIGEgbm9uLWRpY3Rpb25hcnkgdmFsdWUvKTsKICAgICAgICAgfSk7CiAK
QEAgLTc3NSwxMiArNzg4LDEyIEBAIGRlc2NyaWJlKCdCdWlsZGJvdFN5bmNlcicsICgpID0+IHsK
ICAgICAgICAgICAgIGFzc2VydC50aHJvd3MoKCkgPT4gewogICAgICAgICAgICAgICAgIGNvbnN0
IGNvbmZpZyA9IHNtYWxsQ29uZmlndXJhdGlvbigpOwogICAgICAgICAgICAgICAgIGNvbmZpZy5y
ZXBvc2l0b3J5R3JvdXBzID0geydzb21lLWdyb3VwJzoge3JlcG9zaXRvcmllczogeydXZWJLaXQn
OiB7fX0sIGRlc2NyaXB0aW9uOiAxfX07Ci0gICAgICAgICAgICAgICAgQnVpbGRib3RTeW5jZXIu
X2xvYWRDb25maWcoTW9ja1JlbW90ZUFQSSwgY29uZmlnKTsKKyAgICAgICAgICAgICAgICBCdWls
ZGJvdFN5bmNlci5fbG9hZENvbmZpZyhNb2NrUmVtb3RlQVBJLCBjb25maWcsIGJ1aWxkZXJOYW1l
VG9JRE1hcCgpKTsKICAgICAgICAgICAgIH0sIC9SZXBvc2l0b3J5IGdyb3VwICJzb21lLWdyb3Vw
IiBoYXZlIGFuIGludmFsaWQgZGVzY3JpcHRpb24vKTsKICAgICAgICAgICAgIGFzc2VydC50aHJv
d3MoKCkgPT4gewogICAgICAgICAgICAgICAgIGNvbnN0IGNvbmZpZyA9IHNtYWxsQ29uZmlndXJh
dGlvbigpOwogICAgICAgICAgICAgICAgIGNvbmZpZy5yZXBvc2l0b3J5R3JvdXBzID0geydzb21l
LWdyb3VwJzoge3JlcG9zaXRvcmllczogeydXZWJLaXQnOiB7fX0sIGRlc2NyaXB0aW9uOiBbMSwg
Ml19fTsKLSAgICAgICAgICAgICAgICBCdWlsZGJvdFN5bmNlci5fbG9hZENvbmZpZyhNb2NrUmVt
b3RlQVBJLCBjb25maWcpOworICAgICAgICAgICAgICAgIEJ1aWxkYm90U3luY2VyLl9sb2FkQ29u
ZmlnKE1vY2tSZW1vdGVBUEksIGNvbmZpZywgYnVpbGRlck5hbWVUb0lETWFwKCkpOwogICAgICAg
ICAgICAgfSwgL1JlcG9zaXRvcnkgZ3JvdXAgInNvbWUtZ3JvdXAiIGhhdmUgYW4gaW52YWxpZCBk
ZXNjcmlwdGlvbi8pOwogICAgICAgICB9KTsKIApAQCAtNzg4LDEyICs4MDEsMTIgQEAgZGVzY3Jp
YmUoJ0J1aWxkYm90U3luY2VyJywgKCkgPT4gewogICAgICAgICAgICAgYXNzZXJ0LnRocm93cygo
KSA9PiB7CiAgICAgICAgICAgICAgICAgY29uc3QgY29uZmlnID0gc21hbGxDb25maWd1cmF0aW9u
KCk7CiAgICAgICAgICAgICAgICAgY29uZmlnLnJlcG9zaXRvcnlHcm91cHMgPSB7J3NvbWUtZ3Jv
dXAnOiB7cmVwb3NpdG9yaWVzOiB7J1dlYktpdCc6IHt9fSwgdGVzdFByb3BlcnRpZXM6IDF9fTsK
LSAgICAgICAgICAgICAgICBCdWlsZGJvdFN5bmNlci5fbG9hZENvbmZpZyhNb2NrUmVtb3RlQVBJ
LCBjb25maWcpOworICAgICAgICAgICAgICAgIEJ1aWxkYm90U3luY2VyLl9sb2FkQ29uZmlnKE1v
Y2tSZW1vdGVBUEksIGNvbmZpZywgYnVpbGRlck5hbWVUb0lETWFwKCkpOwogICAgICAgICAgICAg
fSwgL1JlcG9zaXRvcnkgZ3JvdXAgInNvbWUtZ3JvdXAiIHNwZWNpZmllcyB0aGUgdGVzdCBjb25m
aWd1cmF0aW9ucyB3aXRoIGFuIGludmFsaWQgdHlwZS8pOwogICAgICAgICAgICAgYXNzZXJ0LnRo
cm93cygoKSA9PiB7CiAgICAgICAgICAgICAgICAgY29uc3QgY29uZmlnID0gc21hbGxDb25maWd1
cmF0aW9uKCk7CiAgICAgICAgICAgICAgICAgY29uZmlnLnJlcG9zaXRvcnlHcm91cHMgPSB7J3Nv
bWUtZ3JvdXAnOiB7cmVwb3NpdG9yaWVzOiB7J1dlYktpdCc6IHt9fSwgdGVzdFByb3BlcnRpZXM6
ICdoZWxsbyd9fTsKLSAgICAgICAgICAgICAgICBCdWlsZGJvdFN5bmNlci5fbG9hZENvbmZpZyhN
b2NrUmVtb3RlQVBJLCBjb25maWcpOworICAgICAgICAgICAgICAgIEJ1aWxkYm90U3luY2VyLl9s
b2FkQ29uZmlnKE1vY2tSZW1vdGVBUEksIGNvbmZpZywgYnVpbGRlck5hbWVUb0lETWFwKCkpOwog
ICAgICAgICAgICAgfSwgL1JlcG9zaXRvcnkgZ3JvdXAgInNvbWUtZ3JvdXAiIHNwZWNpZmllcyB0
aGUgdGVzdCBjb25maWd1cmF0aW9ucyB3aXRoIGFuIGludmFsaWQgdHlwZS8pOwogICAgICAgICB9
KTsKIApAQCAtODAxLDcgKzgxNCw3IEBAIGRlc2NyaWJlKCdCdWlsZGJvdFN5bmNlcicsICgpID0+
IHsKICAgICAgICAgICAgIGFzc2VydC50aHJvd3MoKCkgPT4gewogICAgICAgICAgICAgICAgIGNv
bnN0IGNvbmZpZyA9IHNtYWxsQ29uZmlndXJhdGlvbigpOwogICAgICAgICAgICAgICAgIGNvbmZp
Zy5yZXBvc2l0b3J5R3JvdXBzID0geydzb21lLWdyb3VwJzoge3JlcG9zaXRvcmllczogeydXZWJL
aXQnOiB7fX0sIHRlc3RQcm9wZXJ0aWVzOiB7J3drJzoge3JldmlzaW9uOiAnSW52YWxpZFJlcG9z
aXRvcnknfX19fTsKLSAgICAgICAgICAgICAgICBCdWlsZGJvdFN5bmNlci5fbG9hZENvbmZpZyhN
b2NrUmVtb3RlQVBJLCBjb25maWcpOworICAgICAgICAgICAgICAgIEJ1aWxkYm90U3luY2VyLl9s
b2FkQ29uZmlnKE1vY2tSZW1vdGVBUEksIGNvbmZpZywgYnVpbGRlck5hbWVUb0lETWFwKCkpOwog
ICAgICAgICAgICAgfSwgL1JlcG9zaXRvcnkgZ3JvdXAgInNvbWUtZ3JvdXAiIGFuIGludmFsaWQg
cmVwb3NpdG9yeSAiSW52YWxpZFJlcG9zaXRvcnkiLyk7CiAgICAgICAgIH0pOwogCkBAIC04MDks
NyArODIyLDcgQEAgZGVzY3JpYmUoJ0J1aWxkYm90U3luY2VyJywgKCkgPT4gewogICAgICAgICAg
ICAgYXNzZXJ0LnRocm93cygoKSA9PiB7CiAgICAgICAgICAgICAgICAgY29uc3QgY29uZmlnID0g
c21hbGxDb25maWd1cmF0aW9uKCk7CiAgICAgICAgICAgICAgICAgY29uZmlnLnJlcG9zaXRvcnlH
cm91cHMgPSB7J3NvbWUtZ3JvdXAnOiB7cmVwb3NpdG9yaWVzOiB7J1dlYktpdCc6IHt9fSwgdGVz
dFByb3BlcnRpZXM6IHsnb3MnOiB7cmV2aXNpb246ICdpT1MnfX19fTsKLSAgICAgICAgICAgICAg
ICBCdWlsZGJvdFN5bmNlci5fbG9hZENvbmZpZyhNb2NrUmVtb3RlQVBJLCBjb25maWcpOworICAg
ICAgICAgICAgICAgIEJ1aWxkYm90U3luY2VyLl9sb2FkQ29uZmlnKE1vY2tSZW1vdGVBUEksIGNv
bmZpZywgYnVpbGRlck5hbWVUb0lETWFwKCkpOwogICAgICAgICAgICAgfSwgL1JlcG9zaXRvcnkg
Z3JvdXAgInNvbWUtZ3JvdXAiIGFuIGludmFsaWQgcmVwb3NpdG9yeSAiaU9TIi8pOwogICAgICAg
ICAgICAgYXNzZXJ0LnRocm93cygoKSA9PiB7CiAgICAgICAgICAgICAgICAgY29uc3QgY29uZmln
ID0gc21hbGxDb25maWd1cmF0aW9uKCk7CkBAIC04MTgsNyArODMxLDcgQEAgZGVzY3JpYmUoJ0J1
aWxkYm90U3luY2VyJywgKCkgPT4gewogICAgICAgICAgICAgICAgICAgICB0ZXN0UHJvcGVydGll
czogeyd3ayc6IHtyZXZpc2lvbjogJ1dlYktpdCd9LCAnaW5zdGFsbC1yb290cyc6IHsncm9vdHMn
OiB7fX19LAogICAgICAgICAgICAgICAgICAgICBidWlsZFByb3BlcnRpZXM6IHsnb3MnOiB7cmV2
aXNpb246ICdpT1MnfX0sCiAgICAgICAgICAgICAgICAgICAgIGFjY2VwdHNSb290czogdHJ1ZX19
OwotICAgICAgICAgICAgICAgIEJ1aWxkYm90U3luY2VyLl9sb2FkQ29uZmlnKE1vY2tSZW1vdGVB
UEksIGNvbmZpZyk7CisgICAgICAgICAgICAgICAgQnVpbGRib3RTeW5jZXIuX2xvYWRDb25maWco
TW9ja1JlbW90ZUFQSSwgY29uZmlnLCBidWlsZGVyTmFtZVRvSURNYXAoKSk7CiAgICAgICAgICAg
ICB9LCAvUmVwb3NpdG9yeSBncm91cCAic29tZS1ncm91cCIgYW4gaW52YWxpZCByZXBvc2l0b3J5
ICJpT1MiLyk7CiAgICAgICAgIH0pOwogCkBAIC04MzAsNyArODQzLDcgQEAgZGVzY3JpYmUoJ0J1
aWxkYm90U3luY2VyJywgKCkgPT4gewogICAgICAgICAgICAgICAgICAgICB0ZXN0UHJvcGVydGll
czogeyd3ayc6IHtyZXZpc2lvbjogJ1dlYktpdCd9LCAnaW9zJzoge3JldmlzaW9uOiAnaU9TJ30s
ICdpbnN0YWxsLXJvb3RzJzogeydyb290cyc6IHt9fX0sCiAgICAgICAgICAgICAgICAgICAgIGJ1
aWxkUHJvcGVydGllczogeyd3ayc6IHtyZXZpc2lvbjogJ1dlYktpdCd9LCAnaW9zJzoge3Jldmlz
aW9uOiAnaU9TJ30sICd3ay1wYXRjaCc6IHtwYXRjaDogJ2lPUyd9fSwKICAgICAgICAgICAgICAg
ICAgICAgYWNjZXB0c1Jvb3RzOiB0cnVlfX07Ci0gICAgICAgICAgICAgICAgQnVpbGRib3RTeW5j
ZXIuX2xvYWRDb25maWcoTW9ja1JlbW90ZUFQSSwgY29uZmlnKTsKKyAgICAgICAgICAgICAgICBC
dWlsZGJvdFN5bmNlci5fbG9hZENvbmZpZyhNb2NrUmVtb3RlQVBJLCBjb25maWcsIGJ1aWxkZXJO
YW1lVG9JRE1hcCgpKTsKICAgICAgICAgICAgIH0sIC9SZXBvc2l0b3J5IGdyb3VwICJzb21lLWdy
b3VwIiBzcGVjaWZpZXMgYSBwYXRjaCBmb3IgImlPUyIgYnV0IGl0IGRvZXMgbm90IGFjY2VwdCBh
IHBhdGNoLyk7CiAgICAgICAgIH0pOwogCkBAIC04NDIsNyArODU1LDcgQEAgZGVzY3JpYmUoJ0J1
aWxkYm90U3luY2VyJywgKCkgPT4gewogICAgICAgICAgICAgICAgICAgICB0ZXN0UHJvcGVydGll
czogeyd3ayc6IHtyZXZpc2lvbjogJ1dlYktpdCd9LCAnaW5zdGFsbC1yb290cyc6IHsncm9vdHMn
OiB7fX19LAogICAgICAgICAgICAgICAgICAgICBidWlsZFByb3BlcnRpZXM6IHsnd2stcGF0Y2gn
OiB7cGF0Y2g6ICdXZWJLaXQnfX0sCiAgICAgICAgICAgICAgICAgICAgIGFjY2VwdHNSb290czog
dHJ1ZX19OwotICAgICAgICAgICAgICAgIEJ1aWxkYm90U3luY2VyLl9sb2FkQ29uZmlnKE1vY2tS
ZW1vdGVBUEksIGNvbmZpZyk7CisgICAgICAgICAgICAgICAgQnVpbGRib3RTeW5jZXIuX2xvYWRD
b25maWcoTW9ja1JlbW90ZUFQSSwgY29uZmlnLCBidWlsZGVyTmFtZVRvSURNYXAoKSk7CiAgICAg
ICAgICAgICB9LCAvUmVwb3NpdG9yeSBncm91cCAic29tZS1ncm91cCIgc3BlY2lmaWVzIGEgcGF0
Y2ggZm9yICJXZWJLaXQiIGJ1dCBkb2VzIG5vdCBzcGVjaWZ5IGEgcmV2aXNpb24vKTsKICAgICAg
ICAgfSk7CiAKQEAgLTg1MCw3ICs4NjMsNyBAQCBkZXNjcmliZSgnQnVpbGRib3RTeW5jZXInLCAo
KSA9PiB7CiAgICAgICAgICAgICBhc3NlcnQudGhyb3dzKCgpID0+IHsKICAgICAgICAgICAgICAg
ICBjb25zdCBjb25maWcgPSBzbWFsbENvbmZpZ3VyYXRpb24oKTsKICAgICAgICAgICAgICAgICBj
b25maWcucmVwb3NpdG9yeUdyb3VwcyA9IHsnc29tZS1ncm91cCc6IHsncmVwb3NpdG9yaWVzJzog
eydXZWJLaXQnOiB7fX0sIHRlc3RQcm9wZXJ0aWVzOiB7fX19OwotICAgICAgICAgICAgICAgIEJ1
aWxkYm90U3luY2VyLl9sb2FkQ29uZmlnKE1vY2tSZW1vdGVBUEksIGNvbmZpZyk7CisgICAgICAg
ICAgICAgICAgQnVpbGRib3RTeW5jZXIuX2xvYWRDb25maWcoTW9ja1JlbW90ZUFQSSwgY29uZmln
LCBidWlsZGVyTmFtZVRvSURNYXAoKSk7CiAgICAgICAgICAgICB9LCAvUmVwb3NpdG9yeSBncm91
cCAic29tZS1ncm91cCIgZG9lcyBub3QgdXNlIHNvbWUgb2YgdGhlIHJlcG9zaXRvcmllcyBsaXN0
ZWQgaW4gdGVzdGluZy8pOwogICAgICAgICAgICAgYXNzZXJ0LnRocm93cygoKSA9PiB7CiAgICAg
ICAgICAgICAgICAgY29uc3QgY29uZmlnID0gc21hbGxDb25maWd1cmF0aW9uKCk7CkBAIC04NTks
NyArODcyLDcgQEAgZGVzY3JpYmUoJ0J1aWxkYm90U3luY2VyJywgKCkgPT4gewogICAgICAgICAg
ICAgICAgICAgICB0ZXN0UHJvcGVydGllczogeyd3ayc6IHtyZXZpc2lvbjogJ1dlYktpdCd9LCAn
aW5zdGFsbC1yb290cyc6IHsncm9vdHMnOiB7fX19LAogICAgICAgICAgICAgICAgICAgICBidWls
ZFByb3BlcnRpZXM6IHt9LAogICAgICAgICAgICAgICAgICAgICBhY2NlcHRzUm9vdHM6IHRydWV9
fTsKLSAgICAgICAgICAgICAgICBCdWlsZGJvdFN5bmNlci5fbG9hZENvbmZpZyhNb2NrUmVtb3Rl
QVBJLCBjb25maWcpOworICAgICAgICAgICAgICAgIEJ1aWxkYm90U3luY2VyLl9sb2FkQ29uZmln
KE1vY2tSZW1vdGVBUEksIGNvbmZpZywgYnVpbGRlck5hbWVUb0lETWFwKCkpOwogICAgICAgICAg
ICAgfSwgL1JlcG9zaXRvcnkgZ3JvdXAgInNvbWUtZ3JvdXAiIGRvZXMgbm90IHVzZSBzb21lIG9m
IHRoZSByZXBvc2l0b3JpZXMgbGlzdGVkIGluIGJ1aWxkaW5nIGEgcGF0Y2gvKTsKICAgICAgICAg
fSk7CiAKQEAgLTg2NywxMiArODgwLDEyIEBAIGRlc2NyaWJlKCdCdWlsZGJvdFN5bmNlcicsICgp
ID0+IHsKICAgICAgICAgICAgIGFzc2VydC50aHJvd3MoKCkgPT4gewogICAgICAgICAgICAgICAg
IGNvbnN0IGNvbmZpZyA9IHNtYWxsQ29uZmlndXJhdGlvbigpOwogICAgICAgICAgICAgICAgIGNv
bmZpZy5yZXBvc2l0b3J5R3JvdXBzID0geydzb21lLWdyb3VwJzogeydyZXBvc2l0b3JpZXMnOiB7
J1dlYktpdCc6IHt9fSwgJ3Rlc3RQcm9wZXJ0aWVzJzogeyd3ZWJraXQnOiB7J3JldmlzaW9uJzog
J1dlYktpdCd9fSwgYWNjZXB0c1Jvb3RzOiAxfX07Ci0gICAgICAgICAgICAgICAgQnVpbGRib3RT
eW5jZXIuX2xvYWRDb25maWcoTW9ja1JlbW90ZUFQSSwgY29uZmlnKTsKKyAgICAgICAgICAgICAg
ICBCdWlsZGJvdFN5bmNlci5fbG9hZENvbmZpZyhNb2NrUmVtb3RlQVBJLCBjb25maWcsIGJ1aWxk
ZXJOYW1lVG9JRE1hcCgpKTsKICAgICAgICAgICAgIH0sIC9SZXBvc2l0b3J5IGdyb3VwICJzb21l
LWdyb3VwIiBjb250YWlucyBpbnZhbGlkIGFjY2VwdHNSb290cyB2YWx1ZTovKTsKICAgICAgICAg
ICAgIGFzc2VydC50aHJvd3MoKCkgPT4gewogICAgICAgICAgICAgICAgIGNvbnN0IGNvbmZpZyA9
IHNtYWxsQ29uZmlndXJhdGlvbigpOwogICAgICAgICAgICAgICAgIGNvbmZpZy5yZXBvc2l0b3J5
R3JvdXBzID0geydzb21lLWdyb3VwJzogeydyZXBvc2l0b3JpZXMnOiB7J1dlYktpdCc6IHt9fSwg
J3Rlc3RQcm9wZXJ0aWVzJzogeyd3ZWJraXQnOiB7J3JldmlzaW9uJzogJ1dlYktpdCd9fSwgYWNj
ZXB0c1Jvb3RzOiBbXX19OwotICAgICAgICAgICAgICAgIEJ1aWxkYm90U3luY2VyLl9sb2FkQ29u
ZmlnKE1vY2tSZW1vdGVBUEksIGNvbmZpZyk7CisgICAgICAgICAgICAgICAgQnVpbGRib3RTeW5j
ZXIuX2xvYWRDb25maWcoTW9ja1JlbW90ZUFQSSwgY29uZmlnLCBidWlsZGVyTmFtZVRvSURNYXAo
KSk7CiAgICAgICAgICAgICB9LCAvUmVwb3NpdG9yeSBncm91cCAic29tZS1ncm91cCIgY29udGFp
bnMgaW52YWxpZCBhY2NlcHRzUm9vdHMgdmFsdWU6Lyk7CiAgICAgICAgIH0pOwogCkBAIC04ODAs
MTIgKzg5MywxMiBAQCBkZXNjcmliZSgnQnVpbGRib3RTeW5jZXInLCAoKSA9PiB7CiAgICAgICAg
ICAgICBhc3NlcnQudGhyb3dzKCgpID0+IHsKICAgICAgICAgICAgICAgICBjb25zdCBjb25maWcg
PSBzbWFsbENvbmZpZ3VyYXRpb24oKTsKICAgICAgICAgICAgICAgICBjb25maWcucmVwb3NpdG9y
eUdyb3VwcyA9IHsnc29tZS1ncm91cCc6IHsncmVwb3NpdG9yaWVzJzogeydXZWJLaXQnOiB7YWNj
ZXB0c1BhdGNoOiAxfX0sICd0ZXN0UHJvcGVydGllcyc6IHsnd2Via2l0JzogeydyZXZpc2lvbic6
ICdXZWJLaXQnfX19fTsKLSAgICAgICAgICAgICAgICBCdWlsZGJvdFN5bmNlci5fbG9hZENvbmZp
ZyhNb2NrUmVtb3RlQVBJLCBjb25maWcpOworICAgICAgICAgICAgICAgIEJ1aWxkYm90U3luY2Vy
Ll9sb2FkQ29uZmlnKE1vY2tSZW1vdGVBUEksIGNvbmZpZywgYnVpbGRlck5hbWVUb0lETWFwKCkp
OwogICAgICAgICAgICAgfSwgLyJXZWJLaXQiIGNvbnRhaW5zIGludmFsaWQgYWNjZXB0c1BhdGNo
IHZhbHVlOi8pOwogICAgICAgICAgICAgYXNzZXJ0LnRocm93cygoKSA9PiB7CiAgICAgICAgICAg
ICAgICAgY29uc3QgY29uZmlnID0gc21hbGxDb25maWd1cmF0aW9uKCk7CiAgICAgICAgICAgICAg
ICAgY29uZmlnLnJlcG9zaXRvcnlHcm91cHMgPSB7J3NvbWUtZ3JvdXAnOiB7J3JlcG9zaXRvcmll
cyc6IHsnV2ViS2l0Jzoge2FjY2VwdHNQYXRjaDogW119fSwgJ3Rlc3RQcm9wZXJ0aWVzJzogeyd3
ZWJraXQnOiB7J3JldmlzaW9uJzogJ1dlYktpdCd9fX19OwotICAgICAgICAgICAgICAgIEJ1aWxk
Ym90U3luY2VyLl9sb2FkQ29uZmlnKE1vY2tSZW1vdGVBUEksIGNvbmZpZyk7CisgICAgICAgICAg
ICAgICAgQnVpbGRib3RTeW5jZXIuX2xvYWRDb25maWcoTW9ja1JlbW90ZUFQSSwgY29uZmlnLCBi
dWlsZGVyTmFtZVRvSURNYXAoKSk7CiAgICAgICAgICAgICB9LCAvIldlYktpdCIgY29udGFpbnMg
aW52YWxpZCBhY2NlcHRzUGF0Y2ggdmFsdWU6Lyk7CiAgICAgICAgIH0pOwogCkBAIC04OTQsNyAr
OTA3LDcgQEAgZGVzY3JpYmUoJ0J1aWxkYm90U3luY2VyJywgKCkgPT4gewogICAgICAgICAgICAg
ICAgIGNvbnN0IGNvbmZpZyA9IHNtYWxsQ29uZmlndXJhdGlvbigpOwogICAgICAgICAgICAgICAg
IGNvbmZpZy5yZXBvc2l0b3J5R3JvdXBzID0geydzb21lLWdyb3VwJzogeydyZXBvc2l0b3JpZXMn
OiB7J1dlYktpdCc6IHthY2NlcHRzUGF0Y2g6IHRydWV9fSwKICAgICAgICAgICAgICAgICAgICAg
J3Rlc3RQcm9wZXJ0aWVzJzogeyd3ZWJraXQnOiB7J3JldmlzaW9uJzogJ1dlYktpdCd9LCAnd2Vi
a2l0LXBhdGNoJzogeydwYXRjaCc6ICdXZWJLaXQnfX19fTsKLSAgICAgICAgICAgICAgICBCdWls
ZGJvdFN5bmNlci5fbG9hZENvbmZpZyhNb2NrUmVtb3RlQVBJLCBjb25maWcpOworICAgICAgICAg
ICAgICAgIEJ1aWxkYm90U3luY2VyLl9sb2FkQ29uZmlnKE1vY2tSZW1vdGVBUEksIGNvbmZpZywg
YnVpbGRlck5hbWVUb0lETWFwKCkpOwogICAgICAgICAgICAgfSwgL1JlcG9zaXRvcnkgZ3JvdXAg
InNvbWUtZ3JvdXAiIHNwZWNpZmllcyBhIHBhdGNoIGZvciAiV2ViS2l0IiBpbiB0aGUgcHJvcGVy
dGllcyBmb3IgdGVzdGluZy8pOwogICAgICAgICB9KTsKIApAQCAtOTA2LDcgKzkxOSw3IEBAIGRl
c2NyaWJlKCdCdWlsZGJvdFN5bmNlcicsICgpID0+IHsKICAgICAgICAgICAgICAgICAgICAgdGVz
dFByb3BlcnRpZXM6IHsnd2Via2l0Jzoge3JldmlzaW9uOiAnV2ViS2l0J30sICdpbnN0YWxsLXJv
b3RzJzogeydyb290cyc6IHt9fX0sCiAgICAgICAgICAgICAgICAgICAgIGJ1aWxkUHJvcGVydGll
czogeyd3ZWJraXQnOiB7cmV2aXNpb246ICdXZWJLaXQnfSwgJ3BhdGNoJzoge3BhdGNoOiAnV2Vi
S2l0J30sICdpbnN0YWxsLXJvb3RzJzoge3Jvb3RzOiB7fX19LAogICAgICAgICAgICAgICAgICAg
ICBhY2NlcHRzUm9vdHM6IHRydWV9fTsKLSAgICAgICAgICAgICAgICBCdWlsZGJvdFN5bmNlci5f
bG9hZENvbmZpZyhNb2NrUmVtb3RlQVBJLCBjb25maWcpOworICAgICAgICAgICAgICAgIEJ1aWxk
Ym90U3luY2VyLl9sb2FkQ29uZmlnKE1vY2tSZW1vdGVBUEksIGNvbmZpZywgYnVpbGRlck5hbWVU
b0lETWFwKCkpOwogICAgICAgICAgICAgfSwgL1JlcG9zaXRvcnkgZ3JvdXAgInNvbWUtZ3JvdXAi
IHNwZWNpZmllcyByb290cyBpbiB0aGUgcHJvcGVydGllcyBmb3IgYnVpbGRpbmcvKTsKICAgICAg
ICAgfSk7CiAKQEAgLTkxNiw3ICs5MjksNyBAQCBkZXNjcmliZSgnQnVpbGRib3RTeW5jZXInLCAo
KSA9PiB7CiAgICAgICAgICAgICAgICAgY29uZmlnLnJlcG9zaXRvcnlHcm91cHMgPSB7J3NvbWUt
Z3JvdXAnOiB7CiAgICAgICAgICAgICAgICAgICAgIHJlcG9zaXRvcmllczogeydXZWJLaXQnOiB7
fX0sCiAgICAgICAgICAgICAgICAgICAgIHRlc3RQcm9wZXJ0aWVzOiB7J3dlYmtpdCc6IHsncmV2
aXNpb24nOiAnV2ViS2l0J30sICdpbnN0YWxsLXJvb3RzJzogeydyb290cyc6IHt9fX19fTsKLSAg
ICAgICAgICAgICAgICBCdWlsZGJvdFN5bmNlci5fbG9hZENvbmZpZyhNb2NrUmVtb3RlQVBJLCBj
b25maWcpOworICAgICAgICAgICAgICAgIEJ1aWxkYm90U3luY2VyLl9sb2FkQ29uZmlnKE1vY2tS
ZW1vdGVBUEksIGNvbmZpZywgYnVpbGRlck5hbWVUb0lETWFwKCkpOwogICAgICAgICAgICAgfSwg
L1JlcG9zaXRvcnkgZ3JvdXAgInNvbWUtZ3JvdXAiIHNwZWNpZmllcyByb290cyBpbiBhIHByb3Bl
cnR5IGJ1dCBpdCBkb2VzIG5vdCBhY2NlcHQgcm9vdHMvKTsKICAgICAgICAgfSk7CiAKQEAgLTky
Nyw3ICs5NDAsNyBAQCBkZXNjcmliZSgnQnVpbGRib3RTeW5jZXInLCAoKSA9PiB7CiAgICAgICAg
ICAgICAgICAgICAgIHJlcG9zaXRvcmllczogeydXZWJLaXQnOiB7YWNjZXB0c1BhdGNoOiB0cnVl
fX0sCiAgICAgICAgICAgICAgICAgICAgIHRlc3RQcm9wZXJ0aWVzOiB7J3dlYmtpdCc6IHtyZXZp
c2lvbjogJ1dlYktpdCd9fSwKICAgICAgICAgICAgICAgICAgICAgYnVpbGRQcm9wZXJ0aWVzOiB7
J3dlYmtpdCc6IHtyZXZpc2lvbjogJ1dlYktpdCd9LCAnd2Via2l0LXBhdGNoJzoge3BhdGNoOiAn
V2ViS2l0J319fX07Ci0gICAgICAgICAgICAgICAgQnVpbGRib3RTeW5jZXIuX2xvYWRDb25maWco
TW9ja1JlbW90ZUFQSSwgY29uZmlnKTsKKyAgICAgICAgICAgICAgICBCdWlsZGJvdFN5bmNlci5f
bG9hZENvbmZpZyhNb2NrUmVtb3RlQVBJLCBjb25maWcsIGJ1aWxkZXJOYW1lVG9JRE1hcCgpKTsK
ICAgICAgICAgICAgIH0sIC9SZXBvc2l0b3J5IGdyb3VwICJzb21lLWdyb3VwIiBzcGVjaWZpZXMg
dGhlIHByb3BlcnRpZXMgZm9yIGJ1aWxkaW5nIGJ1dCBkb2VzIG5vdCBhY2NlcHQgcm9vdHMgaW4g
dGVzdGluZy8pOwogICAgICAgICB9KTsKIApAQCAtOTM5LDcgKzk1Miw3IEBAIGRlc2NyaWJlKCdC
dWlsZGJvdFN5bmNlcicsICgpID0+IHsKICAgICAgICAgICAgICAgICAgICAgdGVzdFByb3BlcnRp
ZXM6IHsnd2Via2l0JzogeydyZXZpc2lvbic6ICdXZWJLaXQnfSwgJ2luc3RhbGwtcm9vdHMnOiB7
J3Jvb3RzJzoge319fSwKICAgICAgICAgICAgICAgICAgICAgYnVpbGRQcm9wZXJ0aWVzOiB7J3dl
YmtpdCc6IHsncmV2aXNpb24nOiAnV2ViS2l0J319LAogICAgICAgICAgICAgICAgICAgICBhY2Nl
cHRzUm9vdHM6IHRydWV9fTsKLSAgICAgICAgICAgICAgICBCdWlsZGJvdFN5bmNlci5fbG9hZENv
bmZpZyhNb2NrUmVtb3RlQVBJLCBjb25maWcpOworICAgICAgICAgICAgICAgIEJ1aWxkYm90U3lu
Y2VyLl9sb2FkQ29uZmlnKE1vY2tSZW1vdGVBUEksIGNvbmZpZywgYnVpbGRlck5hbWVUb0lETWFw
KCkpOwogICAgICAgICAgICAgfSwgL1JlcG9zaXRvcnkgZ3JvdXAgInNvbWUtZ3JvdXAiIHNwZWNp
ZmllcyB0aGUgcHJvcGVydGllcyBmb3IgYnVpbGRpbmcgYnV0IGRvZXMgbm90IGFjY2VwdCBhbnkg
cGF0Y2hlcy8pOwogICAgICAgICB9KTsKIApAQCAtOTUxLDIxICs5NjQsMjEgQEAgZGVzY3JpYmUo
J0J1aWxkYm90U3luY2VyJywgKCkgPT4gewogICAgICAgICAgICAgICAgICAgICB0ZXN0UHJvcGVy
dGllczogeyd3ZWJraXQnOiB7cmV2aXNpb246ICdXZWJLaXQnfX0sCiAgICAgICAgICAgICAgICAg
ICAgIGJ1aWxkUHJvcGVydGllczogeyd3ZWJraXQnOiB7cmV2aXNpb246ICdXZWJLaXQnfSwgJ3dl
YmtpdC1wYXRjaCc6IHtwYXRjaDogJ1dlYktpdCd9fSwKICAgICAgICAgICAgICAgICAgICAgYWNj
ZXB0c1Jvb3RzOiB0cnVlfX07Ci0gICAgICAgICAgICAgICAgQnVpbGRib3RTeW5jZXIuX2xvYWRD
b25maWcoTW9ja1JlbW90ZUFQSSwgY29uZmlnKTsKKyAgICAgICAgICAgICAgICBCdWlsZGJvdFN5
bmNlci5fbG9hZENvbmZpZyhNb2NrUmVtb3RlQVBJLCBjb25maWcsIGJ1aWxkZXJOYW1lVG9JRE1h
cCgpKTsKICAgICAgICAgICAgIH0sIC9SZXBvc2l0b3J5IGdyb3VwICJzb21lLWdyb3VwIiBhY2Nl
cHRzIHJvb3RzIGJ1dCBkb2VzIG5vdCBzcGVjaWZ5IHJvb3RzIGluIHRlc3RQcm9wZXJ0aWVzLyk7
CiAgICAgICAgIH0pOwogICAgIH0pOwogCiAgICAgZGVzY3JpYmUoJ19wcm9wZXJ0aWVzRm9yQnVp
bGRSZXF1ZXN0JywgKCkgPT4gewogICAgICAgICBpdCgnc2hvdWxkIGluY2x1ZGUgYWxsIHByb3Bl
cnRpZXMgc3BlY2lmaWVkIGluIGEgZ2l2ZW4gY29uZmlndXJhdGlvbicsICgpID0+IHsKLSAgICAg
ICAgICAgIGNvbnN0IHN5bmNlcnMgPSBCdWlsZGJvdFN5bmNlci5fbG9hZENvbmZpZyhSZW1vdGVB
UEksIHNhbXBsZWlPU0NvbmZpZygpKTsKKyAgICAgICAgICAgIGNvbnN0IHN5bmNlcnMgPSBCdWls
ZGJvdFN5bmNlci5fbG9hZENvbmZpZyhSZW1vdGVBUEksIHNhbXBsZWlPU0NvbmZpZygpLCBidWls
ZGVyTmFtZVRvSURNYXAoKSk7CiAgICAgICAgICAgICBjb25zdCByZXF1ZXN0ID0gY3JlYXRlU2Ft
cGxlQnVpbGRSZXF1ZXN0KE1vY2tNb2RlbHMuaXBob25lLCBNb2NrTW9kZWxzLnNwZWVkb21ldGVy
KTsKICAgICAgICAgICAgIGNvbnN0IHByb3BlcnRpZXMgPSBzeW5jZXJzWzBdLl9wcm9wZXJ0aWVz
Rm9yQnVpbGRSZXF1ZXN0KHJlcXVlc3QsIFtyZXF1ZXN0XSk7CiAgICAgICAgICAgICBhc3NlcnQu
ZGVlcEVxdWFsKE9iamVjdC5rZXlzKHByb3BlcnRpZXMpLnNvcnQoKSwgWydidWlsZF9yZXF1ZXN0
X2lkJywgJ2Rlc2lyZWRfaW1hZ2UnLCAnZm9yY2VzY2hlZHVsZXInLCAnb3BlbnNvdXJjZScsICd0
ZXN0X25hbWUnXSk7CiAgICAgICAgIH0pOwogCiAgICAgICAgIGl0KCdzaG91bGQgcHJlc2VydmUg
bm9uLXBhcmFtZXRyaWMgcHJvcGVydHkgdmFsdWVzJywgKCkgPT4gewotICAgICAgICAgICAgY29u
c3Qgc3luY2VycyA9IEJ1aWxkYm90U3luY2VyLl9sb2FkQ29uZmlnKFJlbW90ZUFQSSwgc2FtcGxl
aU9TQ29uZmlnKCkpOworICAgICAgICAgICAgY29uc3Qgc3luY2VycyA9IEJ1aWxkYm90U3luY2Vy
Ll9sb2FkQ29uZmlnKFJlbW90ZUFQSSwgc2FtcGxlaU9TQ29uZmlnKCksIGJ1aWxkZXJOYW1lVG9J
RE1hcCgpKTsKICAgICAgICAgICAgIGxldCByZXF1ZXN0ID0gY3JlYXRlU2FtcGxlQnVpbGRSZXF1
ZXN0KE1vY2tNb2RlbHMuaXBob25lLCBNb2NrTW9kZWxzLnNwZWVkb21ldGVyKTsKICAgICAgICAg
ICAgIGxldCBwcm9wZXJ0aWVzID0gc3luY2Vyc1swXS5fcHJvcGVydGllc0ZvckJ1aWxkUmVxdWVz
dChyZXF1ZXN0LCBbcmVxdWVzdF0pOwogICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHByb3BlcnRp
ZXNbJ3Rlc3RfbmFtZSddLCAnc3BlZWRvbWV0ZXInKTsKQEAgLTk3OCwxNCArOTkxLDE0IEBAIGRl
c2NyaWJlKCdCdWlsZGJvdFN5bmNlcicsICgpID0+IHsKICAgICAgICAgfSk7CiAKICAgICAgICAg
aXQoJ3Nob3VsZCByZXNvbHZlICJyb290IicsICgpID0+IHsKLSAgICAgICAgICAgIGNvbnN0IHN5
bmNlcnMgPSBCdWlsZGJvdFN5bmNlci5fbG9hZENvbmZpZyhSZW1vdGVBUEksIHNhbXBsZWlPU0Nv
bmZpZygpKTsKKyAgICAgICAgICAgIGNvbnN0IHN5bmNlcnMgPSBCdWlsZGJvdFN5bmNlci5fbG9h
ZENvbmZpZyhSZW1vdGVBUEksIHNhbXBsZWlPU0NvbmZpZygpLCBidWlsZGVyTmFtZVRvSURNYXAo
KSk7CiAgICAgICAgICAgICBjb25zdCByZXF1ZXN0ID0gY3JlYXRlU2FtcGxlQnVpbGRSZXF1ZXN0
KE1vY2tNb2RlbHMuaXBob25lLCBNb2NrTW9kZWxzLnNwZWVkb21ldGVyKTsKICAgICAgICAgICAg
IGNvbnN0IHByb3BlcnRpZXMgPSBzeW5jZXJzWzBdLl9wcm9wZXJ0aWVzRm9yQnVpbGRSZXF1ZXN0
KHJlcXVlc3QsIFtyZXF1ZXN0XSk7CiAgICAgICAgICAgICBhc3NlcnQuZXF1YWwocHJvcGVydGll
c1snZGVzaXJlZF9pbWFnZSddLCAnMTNBNDUyJyk7CiAgICAgICAgIH0pOwogCiAgICAgICAgIGl0
KCdzaG91bGQgcmVzb2x2ZSAicmV2aXNpb24iJywgKCkgPT4gewotICAgICAgICAgICAgY29uc3Qg
c3luY2VycyA9IEJ1aWxkYm90U3luY2VyLl9sb2FkQ29uZmlnKFJlbW90ZUFQSSwgc2FtcGxlaU9T
Q29uZmlnKCkpOworICAgICAgICAgICAgY29uc3Qgc3luY2VycyA9IEJ1aWxkYm90U3luY2VyLl9s
b2FkQ29uZmlnKFJlbW90ZUFQSSwgc2FtcGxlaU9TQ29uZmlnKCksIGJ1aWxkZXJOYW1lVG9JRE1h
cCgpKTsKICAgICAgICAgICAgIGNvbnN0IHJlcXVlc3QgPSBjcmVhdGVTYW1wbGVCdWlsZFJlcXVl
c3QoTW9ja01vZGVscy5pcGhvbmUsIE1vY2tNb2RlbHMuc3BlZWRvbWV0ZXIpOwogICAgICAgICAg
ICAgY29uc3QgcHJvcGVydGllcyA9IHN5bmNlcnNbMF0uX3Byb3BlcnRpZXNGb3JCdWlsZFJlcXVl
c3QocmVxdWVzdCwgW3JlcXVlc3RdKTsKICAgICAgICAgICAgIGFzc2VydC5lcXVhbChwcm9wZXJ0
aWVzWydvcGVuc291cmNlJ10sICcxOTc0NjMnKTsKQEAgLTEwMDksNyArMTAyMiw3IEBAIGRlc2Ny
aWJlKCdCdWlsZGJvdFN5bmNlcicsICgpID0+IHsKICAgICAgICAgICAgICAgICB9LAogICAgICAg
ICAgICAgICAgICdhY2NlcHRzUm9vdHMnOiB0cnVlLAogICAgICAgICAgICAgfTsKLSAgICAgICAg
ICAgIGNvbnN0IHN5bmNlcnMgPSBCdWlsZGJvdFN5bmNlci5fbG9hZENvbmZpZyhSZW1vdGVBUEks
IGNvbmZpZyk7CisgICAgICAgICAgICBjb25zdCBzeW5jZXJzID0gQnVpbGRib3RTeW5jZXIuX2xv
YWRDb25maWcoUmVtb3RlQVBJLCBjb25maWcsIGJ1aWxkZXJOYW1lVG9JRE1hcCgpKTsKICAgICAg
ICAgICAgIGNvbnN0IHJlcXVlc3QgPSBjcmVhdGVTYW1wbGVCdWlsZFJlcXVlc3RXaXRoUGF0Y2go
TW9ja01vZGVscy5pcGhvbmUsIG51bGwsIC0xKTsKICAgICAgICAgICAgIGNvbnN0IHByb3BlcnRp
ZXMgPSBzeW5jZXJzWzJdLl9wcm9wZXJ0aWVzRm9yQnVpbGRSZXF1ZXN0KHJlcXVlc3QsIFtyZXF1
ZXN0XSk7CiAgICAgICAgICAgICBhc3NlcnQuZXF1YWwocHJvcGVydGllc1snd2Via2l0J10sICcx
OTc0NjMnKTsKQEAgLTEwMzEsNyArMTA0NCw3IEBAIGRlc2NyaWJlKCdCdWlsZGJvdFN5bmNlcics
ICgpID0+IHsKICAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgICAgICdhY2NlcHRzUm9v
dHMnOiB0cnVlLAogICAgICAgICAgICAgfTsKLSAgICAgICAgICAgIGNvbnN0IHN5bmNlcnMgPSBC
dWlsZGJvdFN5bmNlci5fbG9hZENvbmZpZyhSZW1vdGVBUEksIGNvbmZpZyk7CisgICAgICAgICAg
ICBjb25zdCBzeW5jZXJzID0gQnVpbGRib3RTeW5jZXIuX2xvYWRDb25maWcoUmVtb3RlQVBJLCBj
b25maWcsIGJ1aWxkZXJOYW1lVG9JRE1hcCgpKTsKICAgICAgICAgICAgIGNvbnN0IHJlcXVlc3RU
b0J1aWxkID0gY3JlYXRlU2FtcGxlQnVpbGRSZXF1ZXN0V2l0aFBhdGNoKE1vY2tNb2RlbHMuaXBo
b25lLCBudWxsLCAtMSk7CiAgICAgICAgICAgICBjb25zdCByZXF1ZXN0VG9UZXN0ID0gY3JlYXRl
U2FtcGxlQnVpbGRSZXF1ZXN0V2l0aFBhdGNoKE1vY2tNb2RlbHMuaXBob25lLCBNb2NrTW9kZWxz
LnNwZWVkb21ldGVyLCAwKTsKICAgICAgICAgICAgIGNvbnN0IG90aGVyUmVxdWVzdFRvVGVzdCA9
IGNyZWF0ZVNhbXBsZUJ1aWxkUmVxdWVzdChNb2NrTW9kZWxzLmlwaG9uZSwgTW9ja01vZGVscy5z
cGVlZG9tZXRlcik7CkBAIC0xMDc1LDcgKzEwODgsNyBAQCBkZXNjcmliZSgnQnVpbGRib3RTeW5j
ZXInLCAoKSA9PiB7CiAgICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICAgICAnYWNjZXB0
c1Jvb3RzJzogdHJ1ZSwKICAgICAgICAgICAgIH07Ci0gICAgICAgICAgICBjb25zdCBzeW5jZXJz
ID0gQnVpbGRib3RTeW5jZXIuX2xvYWRDb25maWcoUmVtb3RlQVBJLCBjb25maWcpOworICAgICAg
ICAgICAgY29uc3Qgc3luY2VycyA9IEJ1aWxkYm90U3luY2VyLl9sb2FkQ29uZmlnKFJlbW90ZUFQ
SSwgY29uZmlnLCBidWlsZGVyTmFtZVRvSURNYXAoKSk7CiAgICAgICAgICAgICBjb25zdCByZXF1
ZXN0ID0gY3JlYXRlU2FtcGxlQnVpbGRSZXF1ZXN0V2l0aE93bmVkQ29tbWl0KE1vY2tNb2RlbHMu
aXBob25lLCBudWxsLCAtMSk7CiAgICAgICAgICAgICBjb25zdCBwcm9wZXJ0aWVzID0gc3luY2Vy
c1syXS5fcHJvcGVydGllc0ZvckJ1aWxkUmVxdWVzdChyZXF1ZXN0LCBbcmVxdWVzdF0pOwogICAg
ICAgICAgICAgYXNzZXJ0LmVxdWFsKHByb3BlcnRpZXNbJ3dlYmtpdCddLCAnMTk3NDYzJyk7CkBA
IC0xMTA0LDcgKzExMTcsNyBAQCBkZXNjcmliZSgnQnVpbGRib3RTeW5jZXInLCAoKSA9PiB7CiAg
ICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICAgICAnYWNjZXB0c1Jvb3RzJzogdHJ1ZSwK
ICAgICAgICAgICAgIH07Ci0gICAgICAgICAgICBjb25zdCBzeW5jZXJzID0gQnVpbGRib3RTeW5j
ZXIuX2xvYWRDb25maWcoUmVtb3RlQVBJLCBjb25maWcpOworICAgICAgICAgICAgY29uc3Qgc3lu
Y2VycyA9IEJ1aWxkYm90U3luY2VyLl9sb2FkQ29uZmlnKFJlbW90ZUFQSSwgY29uZmlnLCBidWls
ZGVyTmFtZVRvSURNYXAoKSk7CiAgICAgICAgICAgICBjb25zdCByZXF1ZXN0ID0gY3JlYXRlU2Ft
cGxlQnVpbGRSZXF1ZXN0V2l0aE93bmVkQ29tbWl0QW5kUGF0Y2goTW9ja01vZGVscy5pcGhvbmUs
IG51bGwsIC0xKTsKICAgICAgICAgICAgIGNvbnN0IHByb3BlcnRpZXMgPSBzeW5jZXJzWzJdLl9w
cm9wZXJ0aWVzRm9yQnVpbGRSZXF1ZXN0KHJlcXVlc3QsIFtyZXF1ZXN0XSk7CiAgICAgICAgICAg
ICBhc3NlcnQuZXF1YWwocHJvcGVydGllc1snd2Via2l0J10sICcxOTc0NjMnKTsKQEAgLTExMTUs
NyArMTEyOCw3IEBAIGRlc2NyaWJlKCdCdWlsZGJvdFN5bmNlcicsICgpID0+IHsKICAgICAgICAg
fSk7CiAKICAgICAgICAgaXQoJ3Nob3VsZCBzZXQgdGhlIHByb3BlcnR5IGZvciB0aGUgYnVpbGQg
cmVxdWVzdCBpZCcsICgpID0+IHsKLSAgICAgICAgICAgIGNvbnN0IHN5bmNlcnMgPSBCdWlsZGJv
dFN5bmNlci5fbG9hZENvbmZpZyhSZW1vdGVBUEksIHNhbXBsZWlPU0NvbmZpZygpKTsKKyAgICAg
ICAgICAgIGNvbnN0IHN5bmNlcnMgPSBCdWlsZGJvdFN5bmNlci5fbG9hZENvbmZpZyhSZW1vdGVB
UEksIHNhbXBsZWlPU0NvbmZpZygpLCBidWlsZGVyTmFtZVRvSURNYXAoKSk7CiAgICAgICAgICAg
ICBjb25zdCByZXF1ZXN0ID0gY3JlYXRlU2FtcGxlQnVpbGRSZXF1ZXN0KE1vY2tNb2RlbHMuaXBo
b25lLCBNb2NrTW9kZWxzLnNwZWVkb21ldGVyKTsKICAgICAgICAgICAgIGNvbnN0IHByb3BlcnRp
ZXMgPSBzeW5jZXJzWzBdLl9wcm9wZXJ0aWVzRm9yQnVpbGRSZXF1ZXN0KHJlcXVlc3QsIFtyZXF1
ZXN0XSk7CiAgICAgICAgICAgICBhc3NlcnQuZXF1YWwocHJvcGVydGllc1snYnVpbGRfcmVxdWVz
dF9pZCddLCByZXF1ZXN0LmlkKCkpOwpAQCAtMTEyNCw3ICsxMTM3LDcgQEAgZGVzY3JpYmUoJ0J1
aWxkYm90U3luY2VyJywgKCkgPT4gewogCiAgICAgZGVzY3JpYmUoJ3B1bGxCdWlsZGJvdCcsICgp
ID0+IHsKICAgICAgICAgaXQoJ3Nob3VsZCBmZXRjaCBwZW5kaW5nIGJ1aWxkcyBmcm9tIHRoZSBy
aWdodCBVUkwnLCAoKSA9PiB7Ci0gICAgICAgICAgICBsZXQgc3luY2VyID0gQnVpbGRib3RTeW5j
ZXIuX2xvYWRDb25maWcoTW9ja1JlbW90ZUFQSSwgc2FtcGxlaU9TQ29uZmlnKCkpWzFdOworICAg
ICAgICAgICAgbGV0IHN5bmNlciA9IEJ1aWxkYm90U3luY2VyLl9sb2FkQ29uZmlnKE1vY2tSZW1v
dGVBUEksIHNhbXBsZWlPU0NvbmZpZygpLCBidWlsZGVyTmFtZVRvSURNYXAoKSlbMV07CiAgICAg
ICAgICAgICBhc3NlcnQuZXF1YWwoc3luY2VyLmJ1aWxkZXJOYW1lKCksICdBQlRlc3QtaVBhZC1S
dW5CZW5jaG1hcmstVGVzdHMnKTsKICAgICAgICAgICAgIGxldCBleHBlY3RlZFVSTCA9ICcvanNv
bi9idWlsZGVycy9BQlRlc3QtaVBhZC1SdW5CZW5jaG1hcmstVGVzdHMvcGVuZGluZ0J1aWxkcyc7
CiAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoc3luY2VyLnBhdGhGb3JQZW5kaW5nQnVpbGRzSlNP
TigpLCBleHBlY3RlZFVSTCk7CkBAIC0xMTM0LDcgKzExNDcsNyBAQCBkZXNjcmliZSgnQnVpbGRi
b3RTeW5jZXInLCAoKSA9PiB7CiAgICAgICAgIH0pOwogCiAgICAgICAgIGl0KCdzaG91bGQgZmV0
Y2ggcmVjZW50IGJ1aWxkcyBvbmNlIHBlbmRpbmcgYnVpbGRzIGhhdmUgYmVlbiBmZXRjaGVkJywg
KCkgPT4gewotICAgICAgICAgICAgbGV0IHN5bmNlciA9IEJ1aWxkYm90U3luY2VyLl9sb2FkQ29u
ZmlnKE1vY2tSZW1vdGVBUEksIHNhbXBsZWlPU0NvbmZpZygpKVsxXTsKKyAgICAgICAgICAgIGxl
dCBzeW5jZXIgPSBCdWlsZGJvdFN5bmNlci5fbG9hZENvbmZpZyhNb2NrUmVtb3RlQVBJLCBzYW1w
bGVpT1NDb25maWcoKSwgYnVpbGRlck5hbWVUb0lETWFwKCkpWzFdOwogICAgICAgICAgICAgYXNz
ZXJ0LmVxdWFsKHN5bmNlci5idWlsZGVyTmFtZSgpLCAnQUJUZXN0LWlQYWQtUnVuQmVuY2htYXJr
LVRlc3RzJyk7CiAKICAgICAgICAgICAgIHN5bmNlci5wdWxsQnVpbGRib3QoMSk7CkBAIC0xMTQ4
LDcgKzExNjEsNyBAQCBkZXNjcmliZSgnQnVpbGRib3RTeW5jZXInLCAoKSA9PiB7CiAgICAgICAg
IH0pOwogCiAgICAgICAgIGl0KCdzaG91bGQgZmV0Y2ggdGhlIHJpZ2h0IG51bWJlciBvZiByZWNl
bnQgYnVpbGRzJywgKCkgPT4gewotICAgICAgICAgICAgbGV0IHN5bmNlciA9IEJ1aWxkYm90U3lu
Y2VyLl9sb2FkQ29uZmlnKE1vY2tSZW1vdGVBUEksIHNhbXBsZWlPU0NvbmZpZygpKVsxXTsKKyAg
ICAgICAgICAgIGxldCBzeW5jZXIgPSBCdWlsZGJvdFN5bmNlci5fbG9hZENvbmZpZyhNb2NrUmVt
b3RlQVBJLCBzYW1wbGVpT1NDb25maWcoKSwgYnVpbGRlck5hbWVUb0lETWFwKCkpWzFdOwogCiAg
ICAgICAgICAgICBzeW5jZXIucHVsbEJ1aWxkYm90KDMpOwogICAgICAgICAgICAgYXNzZXJ0LmVx
dWFsKHJlcXVlc3RzLmxlbmd0aCwgMSk7CkBAIC0xMTYxLDcgKzExNzQsNyBAQCBkZXNjcmliZSgn
QnVpbGRib3RTeW5jZXInLCAoKSA9PiB7CiAgICAgICAgIH0pOwogCiAgICAgICAgIGl0KCdzaG91
bGQgY3JlYXRlIEJ1aWxkYm90QnVpbGRFbnRyeSBmb3IgcGVuZGluZyBidWlsZHMnLCAoKSA9PiB7
Ci0gICAgICAgICAgICBsZXQgc3luY2VyID0gQnVpbGRib3RTeW5jZXIuX2xvYWRDb25maWcoTW9j
a1JlbW90ZUFQSSwgc2FtcGxlaU9TQ29uZmlnKCkpWzFdOworICAgICAgICAgICAgbGV0IHN5bmNl
ciA9IEJ1aWxkYm90U3luY2VyLl9sb2FkQ29uZmlnKE1vY2tSZW1vdGVBUEksIHNhbXBsZWlPU0Nv
bmZpZygpLCBidWlsZGVyTmFtZVRvSURNYXAoKSlbMV07CiAgICAgICAgICAgICBsZXQgcHJvbWlz
ZSA9IHN5bmNlci5wdWxsQnVpbGRib3QoKTsKICAgICAgICAgICAgIHJlcXVlc3RzWzBdLnJlc29s
dmUoW3NhbXBsZVBlbmRpbmdCdWlsZCgpXSk7CiAgICAgICAgICAgICByZXR1cm4gcHJvbWlzZS50
aGVuKChlbnRyaWVzKSA9PiB7CkBAIC0xMTc5LDcgKzExOTIsNyBAQCBkZXNjcmliZSgnQnVpbGRi
b3RTeW5jZXInLCAoKSA9PiB7CiAgICAgICAgIH0pOwogCiAgICAgICAgIGl0KCdzaG91bGQgY3Jl
YXRlIEJ1aWxkYm90QnVpbGRFbnRyeSBmb3IgaW4tcHJvZ3Jlc3MgYnVpbGRzJywgKCkgPT4gewot
ICAgICAgICAgICAgbGV0IHN5bmNlciA9IEJ1aWxkYm90U3luY2VyLl9sb2FkQ29uZmlnKE1vY2tS
ZW1vdGVBUEksIHNhbXBsZWlPU0NvbmZpZygpKVsxXTsKKyAgICAgICAgICAgIGxldCBzeW5jZXIg
PSBCdWlsZGJvdFN5bmNlci5fbG9hZENvbmZpZyhNb2NrUmVtb3RlQVBJLCBzYW1wbGVpT1NDb25m
aWcoKSwgYnVpbGRlck5hbWVUb0lETWFwKCkpWzFdOwogCiAgICAgICAgICAgICBsZXQgcHJvbWlz
ZSA9IHN5bmNlci5wdWxsQnVpbGRib3QoMSk7CiAgICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVx
dWVzdHMubGVuZ3RoLCAxKTsKQEAgLTEyMDMsNyArMTIxNiw3IEBAIGRlc2NyaWJlKCdCdWlsZGJv
dFN5bmNlcicsICgpID0+IHsKICAgICAgICAgfSk7CiAKICAgICAgICAgaXQoJ3Nob3VsZCBjcmVh
dGUgQnVpbGRib3RCdWlsZEVudHJ5IGZvciBmaW5pc2hlZCBidWlsZHMnLCAoKSA9PiB7Ci0gICAg
ICAgICAgICBsZXQgc3luY2VyID0gQnVpbGRib3RTeW5jZXIuX2xvYWRDb25maWcoTW9ja1JlbW90
ZUFQSSwgc2FtcGxlaU9TQ29uZmlnKCkpWzFdOworICAgICAgICAgICAgbGV0IHN5bmNlciA9IEJ1
aWxkYm90U3luY2VyLl9sb2FkQ29uZmlnKE1vY2tSZW1vdGVBUEksIHNhbXBsZWlPU0NvbmZpZygp
LCBidWlsZGVyTmFtZVRvSURNYXAoKSlbMV07CiAKICAgICAgICAgICAgIGxldCBwcm9taXNlID0g
c3luY2VyLnB1bGxCdWlsZGJvdCgxKTsKICAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXF1ZXN0
cy5sZW5ndGgsIDEpOwpAQCAtMTIyNyw3ICsxMjQwLDcgQEAgZGVzY3JpYmUoJ0J1aWxkYm90U3lu
Y2VyJywgKCkgPT4gewogICAgICAgICB9KTsKIAogICAgICAgICBpdCgnc2hvdWxkIGNyZWF0ZSBC
dWlsZGJvdEJ1aWxkRW50cnkgZm9yIG1peGVkIHBlbmRpbmcsIGluLXByb2dyZXNzLCBmaW5pc2hl
ZCwgYW5kIG1pc3NpbmcgYnVpbGRzJywgKCkgPT4gewotICAgICAgICAgICAgbGV0IHN5bmNlciA9
IEJ1aWxkYm90U3luY2VyLl9sb2FkQ29uZmlnKE1vY2tSZW1vdGVBUEksIHNhbXBsZWlPU0NvbmZp
ZygpKVsxXTsKKyAgICAgICAgICAgIGxldCBzeW5jZXIgPSBCdWlsZGJvdFN5bmNlci5fbG9hZENv
bmZpZyhNb2NrUmVtb3RlQVBJLCBzYW1wbGVpT1NDb25maWcoKSwgYnVpbGRlck5hbWVUb0lETWFw
KCkpWzFdOwogCiAgICAgICAgICAgICBsZXQgcHJvbWlzZSA9IHN5bmNlci5wdWxsQnVpbGRib3Qo
NSk7CiAgICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVxdWVzdHMubGVuZ3RoLCAxKTsKQEAgLTEy
NzQsNyArMTI4Nyw3IEBAIGRlc2NyaWJlKCdCdWlsZGJvdFN5bmNlcicsICgpID0+IHsKICAgICAg
ICAgfSk7CiAKICAgICAgICAgaXQoJ3Nob3VsZCBzb3J0IEJ1aWxkYm90QnVpbGRFbnRyeSBieSBv
cmRlcicsICgpID0+IHsKLSAgICAgICAgICAgIGxldCBzeW5jZXIgPSBCdWlsZGJvdFN5bmNlci5f
bG9hZENvbmZpZyhNb2NrUmVtb3RlQVBJLCBzYW1wbGVpT1NDb25maWcoKSlbMV07CisgICAgICAg
ICAgICBsZXQgc3luY2VyID0gQnVpbGRib3RTeW5jZXIuX2xvYWRDb25maWcoTW9ja1JlbW90ZUFQ
SSwgc2FtcGxlaU9TQ29uZmlnKCksIGJ1aWxkZXJOYW1lVG9JRE1hcCgpKVsxXTsKIAogICAgICAg
ICAgICAgbGV0IHByb21pc2UgPSBzeW5jZXIucHVsbEJ1aWxkYm90KDUpOwogICAgICAgICAgICAg
YXNzZXJ0LmVxdWFsKHJlcXVlc3RzLmxlbmd0aCwgMSk7CkBAIC0xMzMxLDcgKzEzNDQsNyBAQCBk
ZXNjcmliZSgnQnVpbGRib3RTeW5jZXInLCAoKSA9PiB7CiAgICAgICAgIH0pOwogCiAgICAgICAg
IGl0KCdzaG91bGQgb3ZlcnJpZGUgQnVpbGRib3RCdWlsZEVudHJ5IGZvciBwZW5kaW5nIGJ1aWxk
cyBieSBpbi1wcm9ncmVzcyBidWlsZHMnLCAoKSA9PiB7Ci0gICAgICAgICAgICBsZXQgc3luY2Vy
ID0gQnVpbGRib3RTeW5jZXIuX2xvYWRDb25maWcoTW9ja1JlbW90ZUFQSSwgc2FtcGxlaU9TQ29u
ZmlnKCkpWzFdOworICAgICAgICAgICAgbGV0IHN5bmNlciA9IEJ1aWxkYm90U3luY2VyLl9sb2Fk
Q29uZmlnKE1vY2tSZW1vdGVBUEksIHNhbXBsZWlPU0NvbmZpZygpLCBidWlsZGVyTmFtZVRvSURN
YXAoKSlbMV07CiAKICAgICAgICAgICAgIGxldCBwcm9taXNlID0gc3luY2VyLnB1bGxCdWlsZGJv
dCg1KTsKICAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXF1ZXN0cy5sZW5ndGgsIDEpOwpAQCAt
MTM1OCw3ICsxMzcxLDcgQEAgZGVzY3JpYmUoJ0J1aWxkYm90U3luY2VyJywgKCkgPT4gewogICAg
ICAgICB9KTsKIAogICAgICAgICBpdCgnc2hvdWxkIG92ZXJyaWRlIEJ1aWxkYm90QnVpbGRFbnRy
eSBmb3IgcGVuZGluZyBidWlsZHMgYnkgZmluaXNoZWQgYnVpbGRzJywgKCkgPT4gewotICAgICAg
ICAgICAgbGV0IHN5bmNlciA9IEJ1aWxkYm90U3luY2VyLl9sb2FkQ29uZmlnKE1vY2tSZW1vdGVB
UEksIHNhbXBsZWlPU0NvbmZpZygpKVsxXTsKKyAgICAgICAgICAgIGxldCBzeW5jZXIgPSBCdWls
ZGJvdFN5bmNlci5fbG9hZENvbmZpZyhNb2NrUmVtb3RlQVBJLCBzYW1wbGVpT1NDb25maWcoKSwg
YnVpbGRlck5hbWVUb0lETWFwKCkpWzFdOwogCiAgICAgICAgICAgICBsZXQgcHJvbWlzZSA9IHN5
bmNlci5wdWxsQnVpbGRib3QoNSk7CiAgICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVxdWVzdHMu
bGVuZ3RoLCAxKTsKQEAgLTEzODcsNyArMTQwMCw3IEBAIGRlc2NyaWJlKCdCdWlsZGJvdFN5bmNl
cicsICgpID0+IHsKIAogICAgIGRlc2NyaWJlKCdzY2hlZHVsZVJlcXVlc3QnLCAoKSA9PiB7CiAg
ICAgICAgIGl0KCdzaG91bGQgc2NoZWR1bGUgYSBidWlsZCByZXF1ZXN0IG9uIGEgc3BlY2lmaWVk
IHNsYXZlJywgKCkgPT4gewotICAgICAgICAgICAgbGV0IHN5bmNlciA9IEJ1aWxkYm90U3luY2Vy
Ll9sb2FkQ29uZmlnKE1vY2tSZW1vdGVBUEksIHNhbXBsZWlPU0NvbmZpZygpKVswXTsKKyAgICAg
ICAgICAgIGxldCBzeW5jZXIgPSBCdWlsZGJvdFN5bmNlci5fbG9hZENvbmZpZyhNb2NrUmVtb3Rl
QVBJLCBzYW1wbGVpT1NDb25maWcoKSwgYnVpbGRlck5hbWVUb0lETWFwKCkpWzBdOwogCiAgICAg
ICAgICAgICBjb25zdCB3YWl0Rm9yUmVxdWVzdCA9IE1vY2tSZW1vdGVBUEkud2FpdEZvclJlcXVl
c3QoKTsKICAgICAgICAgICAgIGNvbnN0IHJlcXVlc3QgPSBjcmVhdGVTYW1wbGVCdWlsZFJlcXVl
c3QoTW9ja01vZGVscy5pcGhvbmUsIE1vY2tNb2RlbHMuc3BlZWRvbWV0ZXIpOwpAQCAtMTQyNCw3
ICsxNDM3LDcgQEAgZGVzY3JpYmUoJ0J1aWxkYm90U3luY2VyJywgKCkgPT4gewogICAgICAgICB9
CiAKICAgICAgICAgaXQoJ3Nob3VsZCBzY2hlZHVsZSBhIGJ1aWxkIGlmIGJ1aWxkZXIgaGFzIG5v
IGJ1aWxkcyBpZiBzbGF2ZUxpc3QgaXMgbm90IHNwZWNpZmllZCcsICgpID0+IHsKLSAgICAgICAg
ICAgIGxldCBzeW5jZXIgPSBCdWlsZGJvdFN5bmNlci5fbG9hZENvbmZpZyhNb2NrUmVtb3RlQVBJ
LCBzbWFsbENvbmZpZ3VyYXRpb24oKSlbMF07CisgICAgICAgICAgICBsZXQgc3luY2VyID0gQnVp
bGRib3RTeW5jZXIuX2xvYWRDb25maWcoTW9ja1JlbW90ZUFQSSwgc21hbGxDb25maWd1cmF0aW9u
KCksIGJ1aWxkZXJOYW1lVG9JRE1hcCgpKVswXTsKIAogICAgICAgICAgICAgcmV0dXJuIHB1bGxC
dWlsZGJvdFdpdGhBc3NlcnRpb24oc3luY2VyLCBbXSwge30pLnRoZW4oKCkgPT4gewogICAgICAg
ICAgICAgICAgIGNvbnN0IHJlcXVlc3QgPSBjcmVhdGVTYW1wbGVCdWlsZFJlcXVlc3QoTW9ja01v
ZGVscy5zb21lUGxhdGZvcm0sIE1vY2tNb2RlbHMuc29tZVRlc3QpOwpAQCAtMTQzNyw3ICsxNDUw
LDcgQEAgZGVzY3JpYmUoJ0J1aWxkYm90U3luY2VyJywgKCkgPT4gewogICAgICAgICB9KTsKIAog
ICAgICAgICBpdCgnc2hvdWxkIHNjaGVkdWxlIGEgYnVpbGQgaWYgYnVpbGRlciBvbmx5IGhhcyBm
aW5pc2hlZCBidWlsZHMgaWYgc2xhdmVMaXN0IGlzIG5vdCBzcGVjaWZpZWQnLCAoKSA9PiB7Ci0g
ICAgICAgICAgICBsZXQgc3luY2VyID0gQnVpbGRib3RTeW5jZXIuX2xvYWRDb25maWcoTW9ja1Jl
bW90ZUFQSSwgc21hbGxDb25maWd1cmF0aW9uKCkpWzBdOworICAgICAgICAgICAgbGV0IHN5bmNl
ciA9IEJ1aWxkYm90U3luY2VyLl9sb2FkQ29uZmlnKE1vY2tSZW1vdGVBUEksIHNtYWxsQ29uZmln
dXJhdGlvbigpLCBidWlsZGVyTmFtZVRvSURNYXAoKSlbMF07CiAKICAgICAgICAgICAgIHJldHVy
biBwdWxsQnVpbGRib3RXaXRoQXNzZXJ0aW9uKHN5bmNlciwgW10sIHtbLTFdOiBzbWFsbEZpbmlz
aGVkQnVpbGQoKX0pLnRoZW4oKCkgPT4gewogICAgICAgICAgICAgICAgIGNvbnN0IHJlcXVlc3Qg
PSBjcmVhdGVTYW1wbGVCdWlsZFJlcXVlc3QoTW9ja01vZGVscy5zb21lUGxhdGZvcm0sIE1vY2tN
b2RlbHMuc29tZVRlc3QpOwpAQCAtMTQ1MCw3ICsxNDYzLDcgQEAgZGVzY3JpYmUoJ0J1aWxkYm90
U3luY2VyJywgKCkgPT4gewogICAgICAgICB9KTsKIAogICAgICAgICBpdCgnc2hvdWxkIG5vdCBz
Y2hlZHVsZSBhIGJ1aWxkIGlmIGJ1aWxkZXIgaGFzIGEgcGVuZGluZyBidWlsZCBpZiBzbGF2ZUxp
c3QgaXMgbm90IHNwZWNpZmllZCcsICgpID0+IHsKLSAgICAgICAgICAgIGxldCBzeW5jZXIgPSBC
dWlsZGJvdFN5bmNlci5fbG9hZENvbmZpZyhNb2NrUmVtb3RlQVBJLCBzbWFsbENvbmZpZ3VyYXRp
b24oKSlbMF07CisgICAgICAgICAgICBsZXQgc3luY2VyID0gQnVpbGRib3RTeW5jZXIuX2xvYWRD
b25maWcoTW9ja1JlbW90ZUFQSSwgc21hbGxDb25maWd1cmF0aW9uKCksIGJ1aWxkZXJOYW1lVG9J
RE1hcCgpKVswXTsKIAogICAgICAgICAgICAgcmV0dXJuIHB1bGxCdWlsZGJvdFdpdGhBc3NlcnRp
b24oc3luY2VyLCBbc21hbGxQZW5kaW5nQnVpbGQoKV0sIHt9KS50aGVuKCgpID0+IHsKICAgICAg
ICAgICAgICAgICBzeW5jZXIuc2NoZWR1bGVSZXF1ZXN0SW5Hcm91cElmQXZhaWxhYmxlKGNyZWF0
ZVNhbXBsZUJ1aWxkUmVxdWVzdChNb2NrTW9kZWxzLnNvbWVQbGF0Zm9ybSwgTW9ja01vZGVscy5z
b21lVGVzdCkpOwpAQCAtMTQ1OSw3ICsxNDcyLDcgQEAgZGVzY3JpYmUoJ0J1aWxkYm90U3luY2Vy
JywgKCkgPT4gewogICAgICAgICB9KTsKIAogICAgICAgICBpdCgnc2hvdWxkIHNjaGVkdWxlIGEg
YnVpbGQgaWYgYnVpbGRlciBkb2VzIG5vdCBoYXZlIHBlbmRpbmcgb3IgY29tcGxldGVkIGJ1aWxk
cyBvbiB0aGUgbWF0Y2hpbmcgc2xhdmUnLCAoKSA9PiB7Ci0gICAgICAgICAgICBsZXQgc3luY2Vy
ID0gQnVpbGRib3RTeW5jZXIuX2xvYWRDb25maWcoTW9ja1JlbW90ZUFQSSwgc2FtcGxlaU9TQ29u
ZmlnKCkpWzBdOworICAgICAgICAgICAgbGV0IHN5bmNlciA9IEJ1aWxkYm90U3luY2VyLl9sb2Fk
Q29uZmlnKE1vY2tSZW1vdGVBUEksIHNhbXBsZWlPU0NvbmZpZygpLCBidWlsZGVyTmFtZVRvSURN
YXAoKSlbMF07CiAKICAgICAgICAgICAgIHJldHVybiBwdWxsQnVpbGRib3RXaXRoQXNzZXJ0aW9u
KHN5bmNlciwgW10sIHt9KS50aGVuKCgpID0+IHsKICAgICAgICAgICAgICAgICBjb25zdCByZXF1
ZXN0ID0gY3JlYXRlU2FtcGxlQnVpbGRSZXF1ZXN0KE1vY2tNb2RlbHMuaXBob25lLCBNb2NrTW9k
ZWxzLnNwZWVkb21ldGVyKTsKQEAgLTE0NzEsNyArMTQ4NCw3IEBAIGRlc2NyaWJlKCdCdWlsZGJv
dFN5bmNlcicsICgpID0+IHsKICAgICAgICAgfSk7CiAKICAgICAgICAgaXQoJ3Nob3VsZCBzY2hl
ZHVsZSBhIGJ1aWxkIGlmIGJ1aWxkZXIgb25seSBoYXMgZmluaXNoZWQgYnVpbGRzIG9uIHRoZSBt
YXRjaGluZyBzbGF2ZScsICgpID0+IHsKLSAgICAgICAgICAgIGxldCBzeW5jZXIgPSBCdWlsZGJv
dFN5bmNlci5fbG9hZENvbmZpZyhNb2NrUmVtb3RlQVBJLCBzYW1wbGVpT1NDb25maWcoKSlbMV07
CisgICAgICAgICAgICBsZXQgc3luY2VyID0gQnVpbGRib3RTeW5jZXIuX2xvYWRDb25maWcoTW9j
a1JlbW90ZUFQSSwgc2FtcGxlaU9TQ29uZmlnKCksIGJ1aWxkZXJOYW1lVG9JRE1hcCgpKVsxXTsK
IAogICAgICAgICAgICAgcHVsbEJ1aWxkYm90V2l0aEFzc2VydGlvbihzeW5jZXIsIFtdLCB7Wy0x
XTogc2FtcGxlRmluaXNoZWRCdWlsZCgpfSkudGhlbigoKSA9PiB7CiAgICAgICAgICAgICAgICAg
Y29uc3QgcmVxdWVzdCA9IGNyZWF0ZVNhbXBsZUJ1aWxkUmVxdWVzdChNb2NrTW9kZWxzLmlwYWQs
IE1vY2tNb2RlbHMuc3BlZWRvbWV0ZXIpOwpAQCAtMTQ4Myw3ICsxNDk2LDcgQEAgZGVzY3JpYmUo
J0J1aWxkYm90U3luY2VyJywgKCkgPT4gewogICAgICAgICB9KTsKIAogICAgICAgICBpdCgnc2hv
dWxkIG5vdCBzY2hlZHVsZSBhIGJ1aWxkIGlmIGJ1aWxkZXIgaGFzIGEgcGVuZGluZyBidWlsZCBv
biB0aGUgbWFjaGluZyBzbGF2ZScsICgpID0+IHsKLSAgICAgICAgICAgIGxldCBzeW5jZXIgPSBC
dWlsZGJvdFN5bmNlci5fbG9hZENvbmZpZyhNb2NrUmVtb3RlQVBJLCBzYW1wbGVpT1NDb25maWco
KSlbMV07CisgICAgICAgICAgICBsZXQgc3luY2VyID0gQnVpbGRib3RTeW5jZXIuX2xvYWRDb25m
aWcoTW9ja1JlbW90ZUFQSSwgc2FtcGxlaU9TQ29uZmlnKCksIGJ1aWxkZXJOYW1lVG9JRE1hcCgp
KVsxXTsKIAogICAgICAgICAgICAgcHVsbEJ1aWxkYm90V2l0aEFzc2VydGlvbihzeW5jZXIsIFtz
YW1wbGVQZW5kaW5nQnVpbGQoKV0sIHt9KS50aGVuKCgpID0+IHsKICAgICAgICAgICAgICAgICBj
b25zdCByZXF1ZXN0ID0gY3JlYXRlU2FtcGxlQnVpbGRSZXF1ZXN0KE1vY2tNb2RlbHMuaXBhZCwg
TW9ja01vZGVscy5zcGVlZG9tZXRlcik7CkBAIC0xNDkzLDcgKzE1MDYsNyBAQCBkZXNjcmliZSgn
QnVpbGRib3RTeW5jZXInLCAoKSA9PiB7CiAgICAgICAgIH0pOwogCiAgICAgICAgIGl0KCdzaG91
bGQgc2NoZWR1bGUgYSBidWlsZCBpZiBidWlsZGVyIG9ubHkgaGFzIGEgcGVuZGluZyBidWlsZCBv
biBhIG5vbi1tYWNoaW5nIHNsYXZlJywgKCkgPT4gewotICAgICAgICAgICAgbGV0IHN5bmNlciA9
IEJ1aWxkYm90U3luY2VyLl9sb2FkQ29uZmlnKE1vY2tSZW1vdGVBUEksIHNhbXBsZWlPU0NvbmZp
ZygpKVsxXTsKKyAgICAgICAgICAgIGxldCBzeW5jZXIgPSBCdWlsZGJvdFN5bmNlci5fbG9hZENv
bmZpZyhNb2NrUmVtb3RlQVBJLCBzYW1wbGVpT1NDb25maWcoKSwgYnVpbGRlck5hbWVUb0lETWFw
KCkpWzFdOwogCiAgICAgICAgICAgICByZXR1cm4gcHVsbEJ1aWxkYm90V2l0aEFzc2VydGlvbihz
eW5jZXIsIFtzYW1wbGVQZW5kaW5nQnVpbGQoMSwgMSwgJ2Fub3RoZXItc2xhdmUnKV0sIHt9KS50
aGVuKCgpID0+IHsKICAgICAgICAgICAgICAgICBjb25zdCByZXF1ZXN0ID0gY3JlYXRlU2FtcGxl
QnVpbGRSZXF1ZXN0KE1vY2tNb2RlbHMuaXBhZCwgTW9ja01vZGVscy5zcGVlZG9tZXRlcik7CkBA
IC0xNTAzLDcgKzE1MTYsNyBAQCBkZXNjcmliZSgnQnVpbGRib3RTeW5jZXInLCAoKSA9PiB7CiAg
ICAgICAgIH0pOwogCiAgICAgICAgIGl0KCdzaG91bGQgc2NoZWR1bGUgYSBidWlsZCBpZiBidWls
ZGVyIG9ubHkgaGFzIGFuIGluLXByb2dyZXNzIGJ1aWxkIG9uIHRoZSBtYXRjaGluZyBzbGF2ZScs
ICgpID0+IHsKLSAgICAgICAgICAgIGxldCBzeW5jZXIgPSBCdWlsZGJvdFN5bmNlci5fbG9hZENv
bmZpZyhNb2NrUmVtb3RlQVBJLCBzYW1wbGVpT1NDb25maWcoKSlbMV07CisgICAgICAgICAgICBs
ZXQgc3luY2VyID0gQnVpbGRib3RTeW5jZXIuX2xvYWRDb25maWcoTW9ja1JlbW90ZUFQSSwgc2Ft
cGxlaU9TQ29uZmlnKCksIGJ1aWxkZXJOYW1lVG9JRE1hcCgpKVsxXTsKIAogICAgICAgICAgICAg
cmV0dXJuIHB1bGxCdWlsZGJvdFdpdGhBc3NlcnRpb24oc3luY2VyLCBbXSwge1stMV06IHNhbXBs
ZUluUHJvZ3Jlc3NCdWlsZCgpfSkudGhlbigoKSA9PiB7CiAgICAgICAgICAgICAgICAgY29uc3Qg
cmVxdWVzdCA9IGNyZWF0ZVNhbXBsZUJ1aWxkUmVxdWVzdChNb2NrTW9kZWxzLmlwYWQsIE1vY2tN
b2RlbHMuc3BlZWRvbWV0ZXIpOwpAQCAtMTUxMyw3ICsxNTI2LDcgQEAgZGVzY3JpYmUoJ0J1aWxk
Ym90U3luY2VyJywgKCkgPT4gewogICAgICAgICB9KTsKIAogICAgICAgICBpdCgnc2hvdWxkIHNj
aGVkdWxlIGEgYnVpbGQgaWYgYnVpbGRlciBoYXMgYW4gaW4tcHJvZ3Jlc3MgYnVpbGQgb24gYW5v
dGhlciBzbGF2ZScsICgpID0+IHsKLSAgICAgICAgICAgIGxldCBzeW5jZXIgPSBCdWlsZGJvdFN5
bmNlci5fbG9hZENvbmZpZyhNb2NrUmVtb3RlQVBJLCBzYW1wbGVpT1NDb25maWcoKSlbMV07Cisg
ICAgICAgICAgICBsZXQgc3luY2VyID0gQnVpbGRib3RTeW5jZXIuX2xvYWRDb25maWcoTW9ja1Jl
bW90ZUFQSSwgc2FtcGxlaU9TQ29uZmlnKCksIGJ1aWxkZXJOYW1lVG9JRE1hcCgpKVsxXTsKIAog
ICAgICAgICAgICAgcmV0dXJuIHB1bGxCdWlsZGJvdFdpdGhBc3NlcnRpb24oc3luY2VyLCBbXSwg
e1stMV06IHNhbXBsZUluUHJvZ3Jlc3NCdWlsZCgnb3RoZXItc2xhdmUnKX0pLnRoZW4oKCkgPT4g
ewogICAgICAgICAgICAgICAgIGNvbnN0IHJlcXVlc3QgPSBjcmVhdGVTYW1wbGVCdWlsZFJlcXVl
c3QoTW9ja01vZGVscy5pcGFkLCBNb2NrTW9kZWxzLnNwZWVkb21ldGVyKTsKQEAgLTE1MjMsNyAr
MTUzNiw3IEBAIGRlc2NyaWJlKCdCdWlsZGJvdFN5bmNlcicsICgpID0+IHsKICAgICAgICAgfSk7
CiAKICAgICAgICAgaXQoJ3Nob3VsZCBub3Qgc2NoZWR1bGUgYSBidWlsZCBpZiB0aGUgcmVxdWVz
dCBkb2VzIG5vdCBtYXRjaCBhbnkgY29uZmlndXJhdGlvbicsICgpID0+IHsKLSAgICAgICAgICAg
IGxldCBzeW5jZXIgPSBCdWlsZGJvdFN5bmNlci5fbG9hZENvbmZpZyhNb2NrUmVtb3RlQVBJLCBz
YW1wbGVpT1NDb25maWcoKSlbMF07CisgICAgICAgICAgICBsZXQgc3luY2VyID0gQnVpbGRib3RT
eW5jZXIuX2xvYWRDb25maWcoTW9ja1JlbW90ZUFQSSwgc2FtcGxlaU9TQ29uZmlnKCksIGJ1aWxk
ZXJOYW1lVG9JRE1hcCgpKVswXTsKIAogICAgICAgICAgICAgcmV0dXJuIHB1bGxCdWlsZGJvdFdp
dGhBc3NlcnRpb24oc3luY2VyLCBbXSwge30pLnRoZW4oKCkgPT4gewogICAgICAgICAgICAgICAg
IGNvbnN0IHJlcXVlc3QgPSBjcmVhdGVTYW1wbGVCdWlsZFJlcXVlc3QoTW9ja01vZGVscy5pcGFk
LCBNb2NrTW9kZWxzLnNwZWVkb21ldGVyKTsKQEAgLTE1MzMsNyArMTU0Niw3IEBAIGRlc2NyaWJl
KCdCdWlsZGJvdFN5bmNlcicsICgpID0+IHsKICAgICAgICAgfSk7CiAKICAgICAgICAgaXQoJ3No
b3VsZCBub3Qgc2NoZWR1bGUgYSBidWlsZCBpZiBhIG5ldyByZXF1ZXN0IGhhZCBiZWVuIHN1Ym1p
dHRlZCB0byB0aGUgc2FtZSBzbGF2ZScsIChkb25lKSA9PiB7Ci0gICAgICAgICAgICBsZXQgc3lu
Y2VyID0gQnVpbGRib3RTeW5jZXIuX2xvYWRDb25maWcoTW9ja1JlbW90ZUFQSSwgc2FtcGxlaU9T
Q29uZmlnKCkpWzFdOworICAgICAgICAgICAgbGV0IHN5bmNlciA9IEJ1aWxkYm90U3luY2VyLl9s
b2FkQ29uZmlnKE1vY2tSZW1vdGVBUEksIHNhbXBsZWlPU0NvbmZpZygpLCBidWlsZGVyTmFtZVRv
SURNYXAoKSlbMV07CiAKICAgICAgICAgICAgIHB1bGxCdWlsZGJvdFdpdGhBc3NlcnRpb24oc3lu
Y2VyLCBbXSwge30pLnRoZW4oKCkgPT4gewogICAgICAgICAgICAgICAgIGxldCByZXF1ZXN0ID0g
Y3JlYXRlU2FtcGxlQnVpbGRSZXF1ZXN0KE1vY2tNb2RlbHMuaXBhZCwgTW9ja01vZGVscy5zcGVl
ZG9tZXRlcik7CkBAIC0xNTUxLDcgKzE1NjQsNyBAQCBkZXNjcmliZSgnQnVpbGRib3RTeW5jZXIn
LCAoKSA9PiB7CiAgICAgICAgIH0pOwogCiAgICAgICAgIGl0KCdzaG91bGQgc2NoZWR1bGUgYSBi
dWlsZCBpZiBhIG5ldyByZXF1ZXN0IGhhZCBiZWVuIHN1Ym1pdHRlZCB0byBhbm90aGVyIHNsYXZl
JywgKCkgPT4gewotICAgICAgICAgICAgbGV0IHN5bmNlciA9IEJ1aWxkYm90U3luY2VyLl9sb2Fk
Q29uZmlnKE1vY2tSZW1vdGVBUEksIHNhbXBsZWlPU0NvbmZpZygpKVsxXTsKKyAgICAgICAgICAg
IGxldCBzeW5jZXIgPSBCdWlsZGJvdFN5bmNlci5fbG9hZENvbmZpZyhNb2NrUmVtb3RlQVBJLCBz
YW1wbGVpT1NDb25maWcoKSwgYnVpbGRlck5hbWVUb0lETWFwKCkpWzFdOwogCiAgICAgICAgICAg
ICByZXR1cm4gcHVsbEJ1aWxkYm90V2l0aEFzc2VydGlvbihzeW5jZXIsIFtdLCB7fSkudGhlbigo
KSA9PiB7CiAgICAgICAgICAgICAgICAgbGV0IHJlcXVlc3QgPSBjcmVhdGVTYW1wbGVCdWlsZFJl
cXVlc3QoTW9ja01vZGVscy5pcGFkLCBNb2NrTW9kZWxzLnNwZWVkb21ldGVyKTsKQEAgLTE1NjQs
NyArMTU3Nyw3IEBAIGRlc2NyaWJlKCdCdWlsZGJvdFN5bmNlcicsICgpID0+IHsKICAgICAgICAg
fSk7CiAKICAgICAgICAgaXQoJ3Nob3VsZCBub3Qgc2NoZWR1bGUgYSBidWlsZCBpZiBhIG5ldyBy
ZXF1ZXN0IGhhZCBiZWVuIHN1Ym1pdHRlZCB0byB0aGUgc2FtZSBidWlsZGVyIHdpdGhvdXQgc2xh
dmVMaXN0JywgKCkgPT4gewotICAgICAgICAgICAgbGV0IHN5bmNlciA9IEJ1aWxkYm90U3luY2Vy
Ll9sb2FkQ29uZmlnKE1vY2tSZW1vdGVBUEksIHNtYWxsQ29uZmlndXJhdGlvbigpKVswXTsKKyAg
ICAgICAgICAgIGxldCBzeW5jZXIgPSBCdWlsZGJvdFN5bmNlci5fbG9hZENvbmZpZyhNb2NrUmVt
b3RlQVBJLCBzbWFsbENvbmZpZ3VyYXRpb24oKSwgYnVpbGRlck5hbWVUb0lETWFwKCkpWzBdOwog
CiAgICAgICAgICAgICByZXR1cm4gcHVsbEJ1aWxkYm90V2l0aEFzc2VydGlvbihzeW5jZXIsIFtd
LCB7fSkudGhlbigoKSA9PiB7CiAgICAgICAgICAgICAgICAgbGV0IHJlcXVlc3QgPSBjcmVhdGVT
YW1wbGVCdWlsZFJlcXVlc3QoTW9ja01vZGVscy5zb21lUGxhdGZvcm0sIE1vY2tNb2RlbHMuc29t
ZVRlc3QpOwo=
</data>
<flag name="review"
          id="347791"
          type_id="1"
          status="+"
          setter="rniwa"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>331700</attachid>
            <date>2018-01-18 19:36:37 -0800</date>
            <delta_ts>2018-01-18 21:47:36 -0800</delta_ts>
            <desc>Updated Patch</desc>
            <filename>patch_buildbot_perf_builderNameToIDMap_v6</filename>
            <type>text/plain</type>
            <size>79581</size>
            <attacher name="Aakash Jain">aakash_jain</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
V2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL0NoYW5nZUxvZwkocmV2aXNpb24gMjI3MTc2KQorKysg
V2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwz
ICsxLDI4IEBACisyMDE4LTAxLTE4ICBBYWthc2ggSmFpbiAgPGFha2FzaF9qYWluQGFwcGxlLmNv
bT4KKworICAgICAgICBBZGQgc3VwcG9ydCBmb3IgYnVpbGRlck5hbWVUb0lETWFwIGluIEJ1aWxk
Ym90U3luY2VyCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD0xNzY1MjYKKworICAgICAgICBSZXZpZXdlZCBieSBSeW9zdWtlIE5pd2EuCisKKyAgICAgICAg
KiB0b29scy9qcy9idWlsZGJvdC1zeW5jZXIuanM6CisgICAgICAgIChCdWlsZGJvdFN5bmNlci5f
bG9hZENvbmZpZyk6IEFkZGVkIGJ1aWxkZXJOYW1lVG9JRE1hcCBwYXJhbWV0ZXIuIEl0IHdvdWxk
IGJlIHVzZWQgbGF0ZXIgb24uCisgICAgICAgIChCdWlsZGJvdFN5bmNlci5fcmVzb2x2ZUJ1aWxk
ZXJzV2l0aFBsYXRmb3Jtcyk6IERpdHRvLgorICAgICAgICAoQnVpbGRib3RTeW5jZXIuX3ZhbGlk
YXRlQW5kTWVyZ2VDb25maWcpOiBBZGRlZCBidWlsZGVySUQgYXMgYSB2YWxpZCBjb25maWcgcGFy
YW1ldGVyLgorICAgICAgICAqIHRvb2xzL2pzL2J1aWxkYm90LXRyaWdnZXJhYmxlLmpzOgorICAg
ICAgICAoQnVpbGRib3RUcmlnZ2VyYWJsZS5wcm90b3R5cGUuZ2V0QnVpbGRlck5hbWVUb0lETWFw
KTogTWV0aG9kIHRvIGZldGNoIEJ1aWxkZXJOYW1lVG9JRE1hcCBmcm9tIEJ1aWxkYm90IDAuOS4K
KyAgICAgICAgKEJ1aWxkYm90VHJpZ2dlcmFibGUucHJvdG90eXBlLmdldEJ1aWxkZXJOYW1lVG9J
RE1hcERlcHJlY2F0ZWQpOiBNZXRob2QgdG8gZmV0Y2ggQnVpbGRlck5hbWVUb0lETWFwIGZyb20g
QnVpbGRib3QgMC44LgorICAgICAgICAoQnVpbGRib3RUcmlnZ2VyYWJsZS5wcm90b3R5cGUuaW5p
dFN5bmNlcnMpOiBVcGRhdGVkIHRvIHVzZSBnZXRCdWlsZGVyTmFtZVRvSURNYXAuCisgICAgICAg
ICogdW5pdC10ZXN0cy9idWlsZGJvdC1zeW5jZXItdGVzdHMuanM6IFVwZGF0ZWQgdW5pdC10ZXN0
cy4KKyAgICAgICAgKiBzZXJ2ZXItdGVzdHMvcmVzb3VyY2VzL21vY2stZGF0YS5qczoKKyAgICAg
ICAgKE1vY2tEYXRhLmJ1aWxkYm90QnVpbGRlcnNVUkwpOiBVUkwgZm9yIGZldGNoaW5nIEJ1aWxk
ZXJzIGxpc3QuCisgICAgICAgIChNb2NrRGF0YS5idWlsZGJvdDA5QnVpbGRlcnNVUkwpOiBEaXR0
byBmb3IgQnVpbGRib3QgMC45CisgICAgICAgIChNb2NrRGF0YS5tb2NrQnVpbGRib3RCdWlsZGVy
cyk6IFNhbXBsZSBidWlsZGVycyBkYXRhIGZvciBCdWlsZGJvdCAwLjgKKyAgICAgICAgKE1vY2tE
YXRhLm1vY2tCdWlsZGJvdDA5QnVpbGRlcnMpOiBEaXR0byBmb3IgQnVpbGRib3QgMC45CisgICAg
ICAgICogc2VydmVyLXRlc3RzL3Rvb2xzLWJ1aWxkYm90LXRyaWdnZXJhYmxlLXRlc3RzLmpzOiBB
ZGRlZCB0ZXN0IGZvciBnZXRCdWlsZGVyTmFtZVRvSURNYXAuIFVwZGF0ZWQgdGVzdHMgdG8gaGFu
ZGxlCisgICAgICAgIG5ld2x5IGFkZGVkIHByb21pc2UgZm9yIGZldGNoaW5nIGJ1aWxkZXJzIGxp
c3QgZnJvbSBCdWlsZGJvdC4KKyAgICAgICAgKiBzZXJ2ZXItdGVzdHMvdG9vbHMtc3luYy1idWls
ZGJvdC1pbnRlZ3JhdGlvbi10ZXN0cy5qczogRGl0dG8uCisKIDIwMTgtMDEtMTggIFJ5b3N1a2Ug
Tml3YSAgPHJuaXdhQHdlYmtpdC5vcmc+CiAKICAgICAgICAgRG9uJ3QgZmV0Y2ggbW9yZSB0aGFu
IHR3byBidWlsZHMgdG8gY2hlY2sgZHVwbGljaXR5IG9mIGJ1aWxkcyBpbiBSZXBvcnRQcm9jZXNz
b3IKSW5kZXg6IFdlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy9zZXJ2ZXItdGVzdHMvdG9vbHMtYnVp
bGRib3QtdHJpZ2dlcmFibGUtdGVzdHMuanMKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2Vic2l0ZXMvcGVyZi53
ZWJraXQub3JnL3NlcnZlci10ZXN0cy90b29scy1idWlsZGJvdC10cmlnZ2VyYWJsZS10ZXN0cy5q
cwkocmV2aXNpb24gMjI3MTc2KQorKysgV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL3NlcnZlci10
ZXN0cy90b29scy1idWlsZGJvdC10cmlnZ2VyYWJsZS10ZXN0cy5qcwkod29ya2luZyBjb3B5KQpA
QCAtMzYsNiArMzYsOCBAQCBkZXNjcmliZSgnQnVpbGRib3RUcmlnZ2VyYWJsZScsIGZ1bmN0aW9u
CiAgICAgICAgICAgICAgICAgY29uc3Qgc2xhdmVJbmZvID0ge25hbWU6ICdzeW5jLXNsYXZlJywg
cGFzc3dvcmQ6ICdwYXNzd29yZCd9OwogICAgICAgICAgICAgICAgIGNvbnN0IHRyaWdnZXJhYmxl
ID0gbmV3IEJ1aWxkYm90VHJpZ2dlcmFibGUoY29uZmlnLCBUZXN0U2VydmVyLnJlbW90ZUFQSSgp
LCBNb2NrUmVtb3RlQVBJLCBzbGF2ZUluZm8sIGxvZ2dlcik7CiAgICAgICAgICAgICAgICAgc3lu
Y1Byb21pc2UgPSB0cmlnZ2VyYWJsZS5pbml0U3luY2VycygpLnRoZW4oKCkgPT4gdHJpZ2dlcmFi
bGUuc3luY09uY2UoKSk7CisgICAgICAgICAgICAgICAgYXNzZXJ0UmVxdWVzdEFuZFJlc29sdmUo
TW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1swXSwgJ0dFVCcsIE1vY2tEYXRhLmJ1aWxkYm90QnVpbGRl
cnNVUkwoKSwgTW9ja0RhdGEubW9ja0J1aWxkYm90QnVpbGRlcnMoKSk7CisgICAgICAgICAgICAg
ICAgTW9ja1JlbW90ZUFQSS5yZXNldCgpOwogICAgICAgICAgICAgICAgIHJldHVybiBNb2NrUmVt
b3RlQVBJLndhaXRGb3JSZXF1ZXN0KCk7CiAgICAgICAgICAgICB9KS50aGVuKCgpID0+IHsKICAg
ICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoQnVpbGRSZXF1ZXN0LmFsbCgpLmxlbmd0aCwgNCk7
CkBAIC05MCw2ICs5Miw4IEBAIGRlc2NyaWJlKCdCdWlsZGJvdFRyaWdnZXJhYmxlJywgZnVuY3Rp
b24KICAgICAgICAgICAgICAgICBsZXQgc2xhdmVJbmZvID0ge25hbWU6ICdzeW5jLXNsYXZlJywg
cGFzc3dvcmQ6ICdwYXNzd29yZCd9OwogICAgICAgICAgICAgICAgIGxldCB0cmlnZ2VyYWJsZSA9
IG5ldyBCdWlsZGJvdFRyaWdnZXJhYmxlKGNvbmZpZywgVGVzdFNlcnZlci5yZW1vdGVBUEkoKSwg
TW9ja1JlbW90ZUFQSSwgc2xhdmVJbmZvLCBsb2dnZXIpOwogICAgICAgICAgICAgICAgIHN5bmNQ
cm9taXNlID0gdHJpZ2dlcmFibGUuaW5pdFN5bmNlcnMoKS50aGVuKCgpID0+IHRyaWdnZXJhYmxl
LnN5bmNPbmNlKCkpOworICAgICAgICAgICAgICAgIGFzc2VydFJlcXVlc3RBbmRSZXNvbHZlKE1v
Y2tSZW1vdGVBUEkucmVxdWVzdHNbMF0sICdHRVQnLCBNb2NrRGF0YS5idWlsZGJvdEJ1aWxkZXJz
VVJMKCksIE1vY2tEYXRhLm1vY2tCdWlsZGJvdEJ1aWxkZXJzKCkpOworICAgICAgICAgICAgICAg
IE1vY2tSZW1vdGVBUEkucmVzZXQoKTsKICAgICAgICAgICAgICAgICByZXR1cm4gTW9ja1JlbW90
ZUFQSS53YWl0Rm9yUmVxdWVzdCgpOwogICAgICAgICAgICAgfSkudGhlbigoKSA9PiB7CiAgICAg
ICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMF0ubWV0aG9k
LCAnR0VUJyk7CkBAIC0xMzgsNiArMTQyLDggQEAgZGVzY3JpYmUoJ0J1aWxkYm90VHJpZ2dlcmFi
bGUnLCBmdW5jdGlvbgogICAgICAgICAgICAgICAgIGNvbnN0IHNsYXZlSW5mbyA9IHtuYW1lOiAn
c3luYy1zbGF2ZScsIHBhc3N3b3JkOiAncGFzc3dvcmQnfTsKICAgICAgICAgICAgICAgICBjb25z
dCB0cmlnZ2VyYWJsZSA9IG5ldyBCdWlsZGJvdFRyaWdnZXJhYmxlKGNvbmZpZywgVGVzdFNlcnZl
ci5yZW1vdGVBUEkoKSwgTW9ja1JlbW90ZUFQSSwgc2xhdmVJbmZvLCBsb2dnZXIpOwogICAgICAg
ICAgICAgICAgIHN5bmNQcm9taXNlID0gdHJpZ2dlcmFibGUuaW5pdFN5bmNlcnMoKS50aGVuKCgp
ID0+IHRyaWdnZXJhYmxlLnN5bmNPbmNlKCkpOworICAgICAgICAgICAgICAgIGFzc2VydFJlcXVl
c3RBbmRSZXNvbHZlKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMF0sICdHRVQnLCBNb2NrRGF0YS5i
dWlsZGJvdEJ1aWxkZXJzVVJMKCksIE1vY2tEYXRhLm1vY2tCdWlsZGJvdEJ1aWxkZXJzKCkpOwor
ICAgICAgICAgICAgICAgIE1vY2tSZW1vdGVBUEkucmVzZXQoKTsKICAgICAgICAgICAgICAgICBy
ZXR1cm4gTW9ja1JlbW90ZUFQSS53YWl0Rm9yUmVxdWVzdCgpOwogICAgICAgICAgICAgfSkudGhl
bigoKSA9PiB7CiAgICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVx
dWVzdHMubGVuZ3RoLCAyKTsKQEAgLTIxNyw2ICsyMjMsOCBAQCBkZXNjcmliZSgnQnVpbGRib3RU
cmlnZ2VyYWJsZScsIGZ1bmN0aW9uCiAgICAgICAgICAgICAgICAgbGV0IHNsYXZlSW5mbyA9IHtu
YW1lOiAnc3luYy1zbGF2ZScsIHBhc3N3b3JkOiAncGFzc3dvcmQnfTsKICAgICAgICAgICAgICAg
ICBsZXQgdHJpZ2dlcmFibGUgPSBuZXcgQnVpbGRib3RUcmlnZ2VyYWJsZShjb25maWcsIFRlc3RT
ZXJ2ZXIucmVtb3RlQVBJKCksIE1vY2tSZW1vdGVBUEksIHNsYXZlSW5mbywgbG9nZ2VyKTsKICAg
ICAgICAgICAgICAgICBzeW5jUHJvbWlzZSA9IHRyaWdnZXJhYmxlLmluaXRTeW5jZXJzKCkudGhl
bigoKSA9PiB0cmlnZ2VyYWJsZS5zeW5jT25jZSgpKTsKKyAgICAgICAgICAgICAgICBhc3NlcnRS
ZXF1ZXN0QW5kUmVzb2x2ZShNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzBdLCAnR0VUJywgTW9ja0Rh
dGEuYnVpbGRib3RCdWlsZGVyc1VSTCgpLCBNb2NrRGF0YS5tb2NrQnVpbGRib3RCdWlsZGVycygp
KTsKKyAgICAgICAgICAgICAgICBNb2NrUmVtb3RlQVBJLnJlc2V0KCk7CiAgICAgICAgICAgICAg
ICAgcmV0dXJuIE1vY2tSZW1vdGVBUEkud2FpdEZvclJlcXVlc3QoKTsKICAgICAgICAgICAgIH0p
LnRoZW4oKCkgPT4gewogICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJ
LnJlcXVlc3RzLmxlbmd0aCwgMik7CkBAIC0yODksNiArMjk3LDggQEAgZGVzY3JpYmUoJ0J1aWxk
Ym90VHJpZ2dlcmFibGUnLCBmdW5jdGlvbgogICAgICAgICAgICAgICAgIGNvbnN0IHNsYXZlSW5m
byA9IHtuYW1lOiAnc3luYy1zbGF2ZScsIHBhc3N3b3JkOiAncGFzc3dvcmQnfTsKICAgICAgICAg
ICAgICAgICBjb25zdCB0cmlnZ2VyYWJsZSA9IG5ldyBCdWlsZGJvdFRyaWdnZXJhYmxlKGNvbmZp
ZywgVGVzdFNlcnZlci5yZW1vdGVBUEkoKSwgTW9ja1JlbW90ZUFQSSwgc2xhdmVJbmZvLCBsb2dn
ZXIpOwogICAgICAgICAgICAgICAgIHN5bmNQcm9taXNlID0gdHJpZ2dlcmFibGUuaW5pdFN5bmNl
cnMoKS50aGVuKCgpID0+IHRyaWdnZXJhYmxlLnN5bmNPbmNlKCkpOworICAgICAgICAgICAgICAg
IGFzc2VydFJlcXVlc3RBbmRSZXNvbHZlKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMF0sICdHRVQn
LCBNb2NrRGF0YS5idWlsZGJvdEJ1aWxkZXJzVVJMKCksIE1vY2tEYXRhLm1vY2tCdWlsZGJvdEJ1
aWxkZXJzKCkpOworICAgICAgICAgICAgICAgIE1vY2tSZW1vdGVBUEkucmVzZXQoKTsKICAgICAg
ICAgICAgICAgICByZXR1cm4gTW9ja1JlbW90ZUFQSS53YWl0Rm9yUmVxdWVzdCgpOwogICAgICAg
ICAgICAgfSkudGhlbigoKSA9PiB7CiAgICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tS
ZW1vdGVBUEkucmVxdWVzdHMubGVuZ3RoLCAyKTsKQEAgLTM2OCw2ICszNzgsOCBAQCBkZXNjcmli
ZSgnQnVpbGRib3RUcmlnZ2VyYWJsZScsIGZ1bmN0aW9uCiAgICAgICAgICAgICAgICAgbGV0IHNs
YXZlSW5mbyA9IHtuYW1lOiAnc3luYy1zbGF2ZScsIHBhc3N3b3JkOiAncGFzc3dvcmQnfTsKICAg
ICAgICAgICAgICAgICBsZXQgdHJpZ2dlcmFibGUgPSBuZXcgQnVpbGRib3RUcmlnZ2VyYWJsZShj
b25maWcsIFRlc3RTZXJ2ZXIucmVtb3RlQVBJKCksIE1vY2tSZW1vdGVBUEksIHNsYXZlSW5mbywg
bG9nZ2VyKTsKICAgICAgICAgICAgICAgICBzeW5jUHJvbWlzZSA9IHRyaWdnZXJhYmxlLmluaXRT
eW5jZXJzKCkudGhlbigoKSA9PiB0cmlnZ2VyYWJsZS5zeW5jT25jZSgpKTsKKyAgICAgICAgICAg
ICAgICBhc3NlcnRSZXF1ZXN0QW5kUmVzb2x2ZShNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzBdLCAn
R0VUJywgTW9ja0RhdGEuYnVpbGRib3RCdWlsZGVyc1VSTCgpLCBNb2NrRGF0YS5tb2NrQnVpbGRi
b3RCdWlsZGVycygpKTsKKyAgICAgICAgICAgICAgICBNb2NrUmVtb3RlQVBJLnJlc2V0KCk7CiAg
ICAgICAgICAgICAgICAgcmV0dXJuIE1vY2tSZW1vdGVBUEkud2FpdEZvclJlcXVlc3QoKTsKICAg
ICAgICAgICAgIH0pLnRoZW4oKCkgPT4gewogICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChN
b2NrUmVtb3RlQVBJLnJlcXVlc3RzLmxlbmd0aCwgMSk7CkBAIC00MzEsNiArNDQzLDggQEAgZGVz
Y3JpYmUoJ0J1aWxkYm90VHJpZ2dlcmFibGUnLCBmdW5jdGlvbgogICAgICAgICAgICAgICAgIGNv
bnN0IHNsYXZlSW5mbyA9IHtuYW1lOiAnc3luYy1zbGF2ZScsIHBhc3N3b3JkOiAncGFzc3dvcmQn
fTsKICAgICAgICAgICAgICAgICBjb25zdCB0cmlnZ2VyYWJsZSA9IG5ldyBCdWlsZGJvdFRyaWdn
ZXJhYmxlKGNvbmZpZywgVGVzdFNlcnZlci5yZW1vdGVBUEkoKSwgTW9ja1JlbW90ZUFQSSwgc2xh
dmVJbmZvLCBsb2dnZXIpOwogICAgICAgICAgICAgICAgIHN5bmNQcm9taXNlID0gdHJpZ2dlcmFi
bGUuaW5pdFN5bmNlcnMoKS50aGVuKCgpID0+IHRyaWdnZXJhYmxlLnN5bmNPbmNlKCkpOworICAg
ICAgICAgICAgICAgIGFzc2VydFJlcXVlc3RBbmRSZXNvbHZlKE1vY2tSZW1vdGVBUEkucmVxdWVz
dHNbMF0sICdHRVQnLCBNb2NrRGF0YS5idWlsZGJvdEJ1aWxkZXJzVVJMKCksIE1vY2tEYXRhLm1v
Y2tCdWlsZGJvdEJ1aWxkZXJzKCkpOworICAgICAgICAgICAgICAgIE1vY2tSZW1vdGVBUEkucmVz
ZXQoKTsKICAgICAgICAgICAgICAgICByZXR1cm4gTW9ja1JlbW90ZUFQSS53YWl0Rm9yUmVxdWVz
dCgpOwogICAgICAgICAgICAgfSkudGhlbigoKSA9PiB7CiAgICAgICAgICAgICAgICAgYXNzZXJ0
LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHMubGVuZ3RoLCAyKTsKQEAgLTUyOSw2ICs1NDMs
OCBAQCBkZXNjcmliZSgnQnVpbGRib3RUcmlnZ2VyYWJsZScsIGZ1bmN0aW9uCiAgICAgICAgICAg
ICAgICAgY29uc3Qgc2xhdmVJbmZvID0ge25hbWU6ICdzeW5jLXNsYXZlJywgcGFzc3dvcmQ6ICdw
YXNzd29yZCd9OwogICAgICAgICAgICAgICAgIGNvbnN0IHRyaWdnZXJhYmxlID0gbmV3IEJ1aWxk
Ym90VHJpZ2dlcmFibGUoY29uZmlnLCBUZXN0U2VydmVyLnJlbW90ZUFQSSgpLCBNb2NrUmVtb3Rl
QVBJLCBzbGF2ZUluZm8sIGxvZ2dlcik7CiAgICAgICAgICAgICAgICAgc3luY1Byb21pc2UgPSB0
cmlnZ2VyYWJsZS5pbml0U3luY2VycygpLnRoZW4oKCkgPT4gdHJpZ2dlcmFibGUuc3luY09uY2Uo
KSk7CisgICAgICAgICAgICAgICAgYXNzZXJ0UmVxdWVzdEFuZFJlc29sdmUoTW9ja1JlbW90ZUFQ
SS5yZXF1ZXN0c1swXSwgJ0dFVCcsIE1vY2tEYXRhLmJ1aWxkYm90QnVpbGRlcnNVUkwoKSwgTW9j
a0RhdGEubW9ja0J1aWxkYm90QnVpbGRlcnMoKSk7CisgICAgICAgICAgICAgICAgTW9ja1JlbW90
ZUFQSS5yZXNldCgpOwogICAgICAgICAgICAgICAgIHJldHVybiBNb2NrUmVtb3RlQVBJLndhaXRG
b3JSZXF1ZXN0KCk7CiAgICAgICAgICAgICB9KS50aGVuKCgpID0+IHsKICAgICAgICAgICAgICAg
ICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0cy5sZW5ndGgsIDIpOwpAQCAtNjMw
LDYgKzY0Niw4IEBAIGRlc2NyaWJlKCdCdWlsZGJvdFRyaWdnZXJhYmxlJywgZnVuY3Rpb24KICAg
ICAgICAgICAgICAgICBjb25zdCBzbGF2ZUluZm8gPSB7bmFtZTogJ3N5bmMtc2xhdmUnLCBwYXNz
d29yZDogJ3Bhc3N3b3JkJ307CiAgICAgICAgICAgICAgICAgY29uc3QgdHJpZ2dlcmFibGUgPSBu
ZXcgQnVpbGRib3RUcmlnZ2VyYWJsZShjb25maWcsIFRlc3RTZXJ2ZXIucmVtb3RlQVBJKCksIE1v
Y2tSZW1vdGVBUEksIHNsYXZlSW5mbywgbG9nZ2VyKTsKICAgICAgICAgICAgICAgICBzeW5jUHJv
bWlzZSA9IHRyaWdnZXJhYmxlLmluaXRTeW5jZXJzKCkudGhlbigoKSA9PiB0cmlnZ2VyYWJsZS5z
eW5jT25jZSgpKTsKKyAgICAgICAgICAgICAgICBhc3NlcnRSZXF1ZXN0QW5kUmVzb2x2ZShyZXF1
ZXN0c1swXSwgJ0dFVCcsIE1vY2tEYXRhLmJ1aWxkYm90QnVpbGRlcnNVUkwoKSwgTW9ja0RhdGEu
bW9ja0J1aWxkYm90QnVpbGRlcnMoKSk7CisgICAgICAgICAgICAgICAgTW9ja1JlbW90ZUFQSS5y
ZXNldCgpOwogICAgICAgICAgICAgICAgIHJldHVybiBNb2NrUmVtb3RlQVBJLndhaXRGb3JSZXF1
ZXN0KCk7CiAgICAgICAgICAgICB9KS50aGVuKCgpID0+IHsKICAgICAgICAgICAgICAgICBhc3Nl
cnQuZXF1YWwocmVxdWVzdHMubGVuZ3RoLCAxKTsKQEAgLTcwNSw2ICs3MjMsOCBAQCBkZXNjcmli
ZSgnQnVpbGRib3RUcmlnZ2VyYWJsZScsIGZ1bmN0aW9uCiAgICAgICAgICAgICAgICAgY29uc3Qg
c2xhdmVJbmZvID0ge25hbWU6ICdzeW5jLXNsYXZlJywgcGFzc3dvcmQ6ICdwYXNzd29yZCd9Owog
ICAgICAgICAgICAgICAgIHRyaWdnZXJhYmxlID0gbmV3IEJ1aWxkYm90VHJpZ2dlcmFibGUoY29u
ZmlnLCBUZXN0U2VydmVyLnJlbW90ZUFQSSgpLCBNb2NrUmVtb3RlQVBJLCBzbGF2ZUluZm8sIGxv
Z2dlcik7CiAgICAgICAgICAgICAgICAgc3luY1Byb21pc2UgPSB0cmlnZ2VyYWJsZS5pbml0U3lu
Y2VycygpLnRoZW4oKCkgPT4gdHJpZ2dlcmFibGUuc3luY09uY2UoKSk7CisgICAgICAgICAgICAg
ICAgYXNzZXJ0UmVxdWVzdEFuZFJlc29sdmUocmVxdWVzdHNbMF0sICdHRVQnLCBNb2NrRGF0YS5i
dWlsZGJvdEJ1aWxkZXJzVVJMKCksIE1vY2tEYXRhLm1vY2tCdWlsZGJvdEJ1aWxkZXJzKCkpOwor
ICAgICAgICAgICAgICAgIE1vY2tSZW1vdGVBUEkucmVzZXQoKTsKICAgICAgICAgICAgICAgICBy
ZXR1cm4gTW9ja1JlbW90ZUFQSS53YWl0Rm9yUmVxdWVzdCgpOwogICAgICAgICAgICAgfSkudGhl
bigoKSA9PiB7CiAgICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlcXVlc3RzLmxlbmd0aCwg
MSk7CkBAIC03MzIsMjMgKzc1MiwyNCBAQCBkZXNjcmliZSgnQnVpbGRib3RUcmlnZ2VyYWJsZScs
IGZ1bmN0aW9uCiAgICAgICAgICAgICAgICAgcmV0dXJuIHN5bmNQcm9taXNlOwogICAgICAgICAg
ICAgfSkudGhlbigoKSA9PiB7CiAgICAgICAgICAgICAgICAgc3luY1Byb21pc2UgPSB0cmlnZ2Vy
YWJsZS5pbml0U3luY2VycygpLnRoZW4oKCkgPT4gdHJpZ2dlcmFibGUuc3luY09uY2UoKSk7Ci0g
ICAgICAgICAgICAgICAgcmV0dXJuIE1vY2tSZW1vdGVBUEkud2FpdEZvclJlcXVlc3QoKTsKLSAg
ICAgICAgICAgIH0pLnRoZW4oKCkgPT4gewotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChy
ZXF1ZXN0cy5sZW5ndGgsIDYpOwotICAgICAgICAgICAgICAgIGFzc2VydFJlcXVlc3RBbmRSZXNv
bHZlKHJlcXVlc3RzWzVdLCAnR0VUJywgJy9qc29uL2J1aWxkZXJzL3NvbWUtYnVpbGRlci0xL3Bl
bmRpbmdCdWlsZHMnLCBbXSk7CisgICAgICAgICAgICAgICAgYXNzZXJ0UmVxdWVzdEFuZFJlc29s
dmUocmVxdWVzdHNbNV0sICdHRVQnLCBNb2NrRGF0YS5idWlsZGJvdEJ1aWxkZXJzVVJMKCksIE1v
Y2tEYXRhLm1vY2tCdWlsZGJvdEJ1aWxkZXJzKCkpOwogICAgICAgICAgICAgICAgIHJldHVybiBN
b2NrUmVtb3RlQVBJLndhaXRGb3JSZXF1ZXN0KCk7CiAgICAgICAgICAgICB9KS50aGVuKCgpID0+
IHsKICAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVxdWVzdHMubGVuZ3RoLCA3KTsKLSAg
ICAgICAgICAgICAgICBhc3NlcnRSZXF1ZXN0QW5kUmVzb2x2ZShyZXF1ZXN0c1s2XSwgJ0dFVCcs
ICcvanNvbi9idWlsZGVycy9zb21lLWJ1aWxkZXItMS9idWlsZHMvP3NlbGVjdD0tMSZzZWxlY3Q9
LTInLAotICAgICAgICAgICAgICAgICAgICB7Wy0xXTogTW9ja0RhdGEucnVubmluZ0J1aWxkKHti
dWlsZFJlcXVlc3RJZDogNzAxfSksIFstMl06IE1vY2tEYXRhLnJ1bm5pbmdCdWlsZCh7YnVpbGRS
ZXF1ZXN0SWQ6IDcwMH0pfSk7CisgICAgICAgICAgICAgICAgYXNzZXJ0UmVxdWVzdEFuZFJlc29s
dmUocmVxdWVzdHNbNl0sICdHRVQnLCAnL2pzb24vYnVpbGRlcnMvc29tZS1idWlsZGVyLTEvcGVu
ZGluZ0J1aWxkcycsIFtdKTsKICAgICAgICAgICAgICAgICByZXR1cm4gTW9ja1JlbW90ZUFQSS53
YWl0Rm9yUmVxdWVzdCgpOwogICAgICAgICAgICAgfSkudGhlbigoKSA9PiB7CiAgICAgICAgICAg
ICAgICAgYXNzZXJ0LmVxdWFsKHJlcXVlc3RzLmxlbmd0aCwgOCk7Ci0gICAgICAgICAgICAgICAg
YXNzZXJ0UmVxdWVzdEFuZFJlc29sdmUocmVxdWVzdHNbN10sICdHRVQnLCAnL2pzb24vYnVpbGRl
cnMvc29tZS1idWlsZGVyLTEvcGVuZGluZ0J1aWxkcycsIFtdKTsKKyAgICAgICAgICAgICAgICBh
c3NlcnRSZXF1ZXN0QW5kUmVzb2x2ZShyZXF1ZXN0c1s3XSwgJ0dFVCcsICcvanNvbi9idWlsZGVy
cy9zb21lLWJ1aWxkZXItMS9idWlsZHMvP3NlbGVjdD0tMSZzZWxlY3Q9LTInLAorICAgICAgICAg
ICAgICAgICAgICB7Wy0xXTogTW9ja0RhdGEucnVubmluZ0J1aWxkKHtidWlsZFJlcXVlc3RJZDog
NzAxfSksIFstMl06IE1vY2tEYXRhLnJ1bm5pbmdCdWlsZCh7YnVpbGRSZXF1ZXN0SWQ6IDcwMH0p
fSk7CiAgICAgICAgICAgICAgICAgcmV0dXJuIE1vY2tSZW1vdGVBUEkud2FpdEZvclJlcXVlc3Qo
KTsKICAgICAgICAgICAgIH0pLnRoZW4oKCkgPT4gewogICAgICAgICAgICAgICAgIGFzc2VydC5l
cXVhbChyZXF1ZXN0cy5sZW5ndGgsIDkpOwotICAgICAgICAgICAgICAgIGFzc2VydFJlcXVlc3RB
bmRSZXNvbHZlKHJlcXVlc3RzWzhdLCAnR0VUJywgJy9qc29uL2J1aWxkZXJzL3NvbWUtYnVpbGRl
ci0xL2J1aWxkcy8/c2VsZWN0PS0xJnNlbGVjdD0tMicsCisgICAgICAgICAgICAgICAgYXNzZXJ0
UmVxdWVzdEFuZFJlc29sdmUocmVxdWVzdHNbOF0sICdHRVQnLCAnL2pzb24vYnVpbGRlcnMvc29t
ZS1idWlsZGVyLTEvcGVuZGluZ0J1aWxkcycsIFtdKTsKKyAgICAgICAgICAgICAgICByZXR1cm4g
TW9ja1JlbW90ZUFQSS53YWl0Rm9yUmVxdWVzdCgpOworICAgICAgICAgICAgfSkudGhlbigoKSA9
PiB7CisgICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlcXVlc3RzLmxlbmd0aCwgMTApOwor
ICAgICAgICAgICAgICAgIGFzc2VydFJlcXVlc3RBbmRSZXNvbHZlKHJlcXVlc3RzWzldLCAnR0VU
JywgJy9qc29uL2J1aWxkZXJzL3NvbWUtYnVpbGRlci0xL2J1aWxkcy8/c2VsZWN0PS0xJnNlbGVj
dD0tMicsCiAgICAgICAgICAgICAgICAgICAgIHtbLTFdOiBNb2NrRGF0YS5ydW5uaW5nQnVpbGQo
e2J1aWxkUmVxdWVzdElkOiA3MDF9KSwgWy0yXTogTW9ja0RhdGEucnVubmluZ0J1aWxkKHtidWls
ZFJlcXVlc3RJZDogNzAwfSl9KTsKICAgICAgICAgICAgICAgICByZXR1cm4gc3luY1Byb21pc2U7
CiAgICAgICAgICAgICB9KTsKQEAgLTc2NSw2ICs3ODYsOCBAQCBkZXNjcmliZSgnQnVpbGRib3RU
cmlnZ2VyYWJsZScsIGZ1bmN0aW9uCiAgICAgICAgICAgICAgICAgY29uc3Qgc2xhdmVJbmZvID0g
e25hbWU6ICdzeW5jLXNsYXZlJywgcGFzc3dvcmQ6ICdwYXNzd29yZCd9OwogICAgICAgICAgICAg
ICAgIGNvbnN0IHRyaWdnZXJhYmxlID0gbmV3IEJ1aWxkYm90VHJpZ2dlcmFibGUoY29uZmlnLCBU
ZXN0U2VydmVyLnJlbW90ZUFQSSgpLCBNb2NrUmVtb3RlQVBJLCBzbGF2ZUluZm8sIGxvZ2dlcik7
CiAgICAgICAgICAgICAgICAgc3luY1Byb21pc2UgPSB0cmlnZ2VyYWJsZS5pbml0U3luY2Vycygp
LnRoZW4oKCkgPT4gdHJpZ2dlcmFibGUuc3luY09uY2UoKSk7CisgICAgICAgICAgICAgICAgYXNz
ZXJ0UmVxdWVzdEFuZFJlc29sdmUoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1swXSwgJ0dFVCcsIE1v
Y2tEYXRhLmJ1aWxkYm90QnVpbGRlcnNVUkwoKSwgTW9ja0RhdGEubW9ja0J1aWxkYm90QnVpbGRl
cnMoKSk7CisgICAgICAgICAgICAgICAgTW9ja1JlbW90ZUFQSS5yZXNldCgpOwogICAgICAgICAg
ICAgICAgIHJldHVybiBNb2NrUmVtb3RlQVBJLndhaXRGb3JSZXF1ZXN0KCk7CiAgICAgICAgICAg
ICB9KS50aGVuKCgpID0+IHsKICAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90
ZUFQSS5yZXF1ZXN0cy5sZW5ndGgsIDEpOwpAQCAtODMyLDYgKzg1NSw4IEBAIGRlc2NyaWJlKCdC
dWlsZGJvdFRyaWdnZXJhYmxlJywgZnVuY3Rpb24KICAgICAgICAgICAgICAgICBjb25zdCBzbGF2
ZUluZm8gPSB7bmFtZTogJ3N5bmMtc2xhdmUnLCBwYXNzd29yZDogJ3Bhc3N3b3JkJ307CiAgICAg
ICAgICAgICAgICAgY29uc3QgdHJpZ2dlcmFibGUgPSBuZXcgQnVpbGRib3RUcmlnZ2VyYWJsZShj
b25maWcsIFRlc3RTZXJ2ZXIucmVtb3RlQVBJKCksIE1vY2tSZW1vdGVBUEksIHNsYXZlSW5mbywg
bG9nZ2VyKTsKICAgICAgICAgICAgICAgICBzeW5jUHJvbWlzZSA9IHRyaWdnZXJhYmxlLmluaXRT
eW5jZXJzKCkudGhlbigoKSA9PiB0cmlnZ2VyYWJsZS5zeW5jT25jZSgpKTsKKyAgICAgICAgICAg
ICAgICBhc3NlcnRSZXF1ZXN0QW5kUmVzb2x2ZShNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzBdLCAn
R0VUJywgTW9ja0RhdGEuYnVpbGRib3RCdWlsZGVyc1VSTCgpLCBNb2NrRGF0YS5tb2NrQnVpbGRi
b3RCdWlsZGVycygpKTsKKyAgICAgICAgICAgICAgICBNb2NrUmVtb3RlQVBJLnJlc2V0KCk7CiAg
ICAgICAgICAgICAgICAgcmV0dXJuIE1vY2tSZW1vdGVBUEkud2FpdEZvclJlcXVlc3QoKTsKICAg
ICAgICAgICAgIH0pLnRoZW4oKCkgPT4gewogICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChN
b2NrUmVtb3RlQVBJLnJlcXVlc3RzLmxlbmd0aCwgMSk7CkBAIC04ODcsNiArOTEyLDggQEAgZGVz
Y3JpYmUoJ0J1aWxkYm90VHJpZ2dlcmFibGUnLCBmdW5jdGlvbgogICAgICAgICAgICAgICAgIGNv
bnN0IHNsYXZlSW5mbyA9IHtuYW1lOiAnc3luYy1zbGF2ZScsIHBhc3N3b3JkOiAncGFzc3dvcmQn
fTsKICAgICAgICAgICAgICAgICBjb25zdCB0cmlnZ2VyYWJsZSA9IG5ldyBCdWlsZGJvdFRyaWdn
ZXJhYmxlKGNvbmZpZywgVGVzdFNlcnZlci5yZW1vdGVBUEkoKSwgTW9ja1JlbW90ZUFQSSwgc2xh
dmVJbmZvLCBsb2dnZXIpOwogICAgICAgICAgICAgICAgIHN5bmNQcm9taXNlID0gdHJpZ2dlcmFi
bGUuaW5pdFN5bmNlcnMoKS50aGVuKCgpID0+IHRyaWdnZXJhYmxlLnN5bmNPbmNlKCkpOworICAg
ICAgICAgICAgICAgIGFzc2VydFJlcXVlc3RBbmRSZXNvbHZlKE1vY2tSZW1vdGVBUEkucmVxdWVz
dHNbMF0sICdHRVQnLCBNb2NrRGF0YS5idWlsZGJvdEJ1aWxkZXJzVVJMKCksIE1vY2tEYXRhLm1v
Y2tCdWlsZGJvdEJ1aWxkZXJzKCkpOworICAgICAgICAgICAgICAgIE1vY2tSZW1vdGVBUEkucmVz
ZXQoKTsKICAgICAgICAgICAgICAgICByZXR1cm4gTW9ja1JlbW90ZUFQSS53YWl0Rm9yUmVxdWVz
dCgpOwogICAgICAgICAgICAgfSkudGhlbigoKSA9PiB7CiAgICAgICAgICAgICAgICAgYXNzZXJ0
LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHMubGVuZ3RoLCAxKTsKQEAgLTk3Miw3ICs5OTks
OSBAQCBkZXNjcmliZSgnQnVpbGRib3RUcmlnZ2VyYWJsZScsIGZ1bmN0aW9uCiAgICAgICAgICAg
ICAgICAgY29uc3QgbG9nZ2VyID0gbmV3IE1vY2tMb2dnZXI7CiAgICAgICAgICAgICAgICAgY29u
c3Qgc2xhdmVJbmZvID0ge25hbWU6ICdzeW5jLXNsYXZlJywgcGFzc3dvcmQ6ICdwYXNzd29yZCd9
OwogICAgICAgICAgICAgICAgIGNvbnN0IGJ1aWxkYm90VHJpZ2dlcmFibGUgPSBuZXcgQnVpbGRi
b3RUcmlnZ2VyYWJsZShjb25maWcsIFRlc3RTZXJ2ZXIucmVtb3RlQVBJKCksIE1vY2tSZW1vdGVB
UEksIHNsYXZlSW5mbywgbG9nZ2VyKTsKLSAgICAgICAgICAgICAgICByZXR1cm4gYnVpbGRib3RU
cmlnZ2VyYWJsZS5pbml0U3luY2VycygpLnRoZW4oKCkgPT4gYnVpbGRib3RUcmlnZ2VyYWJsZS51
cGRhdGVUcmlnZ2VyYWJsZSgpKTsKKyAgICAgICAgICAgICAgICBjb25zdCB0cmlnZ2VyYWJsZVBy
b21pc2UgPSBidWlsZGJvdFRyaWdnZXJhYmxlLmluaXRTeW5jZXJzKCkudGhlbigoKSA9PiBidWls
ZGJvdFRyaWdnZXJhYmxlLnVwZGF0ZVRyaWdnZXJhYmxlKCkpOworICAgICAgICAgICAgICAgIGFz
c2VydFJlcXVlc3RBbmRSZXNvbHZlKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMF0sICdHRVQnLCBN
b2NrRGF0YS5idWlsZGJvdEJ1aWxkZXJzVVJMKCksIE1vY2tEYXRhLm1vY2tCdWlsZGJvdEJ1aWxk
ZXJzKCkpOworICAgICAgICAgICAgICAgIHJldHVybiB0cmlnZ2VyYWJsZVByb21pc2U7CiAgICAg
ICAgICAgICB9KS50aGVuKCgpID0+IHJlZmV0Y2hNYW5pZmVzdCgpKS50aGVuKCgpID0+IHsKICAg
ICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoVHJpZ2dlcmFibGUuYWxsKCkubGVuZ3RoLCAxKTsK
IApAQCAtOTk3LDcgKzEwMjYsOSBAQCBkZXNjcmliZSgnQnVpbGRib3RUcmlnZ2VyYWJsZScsIGZ1
bmN0aW9uCiAgICAgICAgICAgICAgICAgY29uc3QgbG9nZ2VyID0gbmV3IE1vY2tMb2dnZXI7CiAg
ICAgICAgICAgICAgICAgY29uc3Qgc2xhdmVJbmZvID0ge25hbWU6ICdzeW5jLXNsYXZlJywgcGFz
c3dvcmQ6ICdwYXNzd29yZCd9OwogICAgICAgICAgICAgICAgIGNvbnN0IGJ1aWxkYm90VHJpZ2dl
cmFibGUgPSBuZXcgQnVpbGRib3RUcmlnZ2VyYWJsZShjb25maWcsIFRlc3RTZXJ2ZXIucmVtb3Rl
QVBJKCksIE1vY2tSZW1vdGVBUEksIHNsYXZlSW5mbywgbG9nZ2VyKTsKLSAgICAgICAgICAgICAg
ICByZXR1cm4gYnVpbGRib3RUcmlnZ2VyYWJsZS5pbml0U3luY2VycygpLnRoZW4oKCkgPT4gYnVp
bGRib3RUcmlnZ2VyYWJsZS51cGRhdGVUcmlnZ2VyYWJsZSgpKTsKKyAgICAgICAgICAgICAgICBj
b25zdCB0cmlnZ2VyYWJsZVByb21pc2UgPSBidWlsZGJvdFRyaWdnZXJhYmxlLmluaXRTeW5jZXJz
KCkudGhlbigoKSA9PiBidWlsZGJvdFRyaWdnZXJhYmxlLnVwZGF0ZVRyaWdnZXJhYmxlKCkpOwor
ICAgICAgICAgICAgICAgIGFzc2VydFJlcXVlc3RBbmRSZXNvbHZlKE1vY2tSZW1vdGVBUEkucmVx
dWVzdHNbMV0sICdHRVQnLCBNb2NrRGF0YS5idWlsZGJvdEJ1aWxkZXJzVVJMKCksIE1vY2tEYXRh
Lm1vY2tCdWlsZGJvdEJ1aWxkZXJzKCkpOworICAgICAgICAgICAgICAgIHJldHVybiB0cmlnZ2Vy
YWJsZVByb21pc2U7CiAgICAgICAgICAgICB9KS50aGVuKCgpID0+IHJlZmV0Y2hNYW5pZmVzdCgp
KS50aGVuKCgpID0+IHsKICAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoVHJpZ2dlcmFibGUu
YWxsKCkubGVuZ3RoLCAxKTsKICAgICAgICAgICAgICAgICBjb25zdCBncm91cHMgPSBUcmlnZ2Vy
YWJsZVJlcG9zaXRvcnlHcm91cC5zb3J0QnlOYW1lKFRyaWdnZXJhYmxlLmFsbCgpWzBdLnJlcG9z
aXRvcnlHcm91cHMoKSk7CkBAIC0xMDEwLDQgKzEwNDEsMjMgQEAgZGVzY3JpYmUoJ0J1aWxkYm90
VHJpZ2dlcmFibGUnLCBmdW5jdGlvbgogICAgICAgICB9KTsKICAgICB9KTsKIAorICAgIGRlc2Ny
aWJlKCdnZXRCdWlsZGVyTmFtZVRvSURNYXAnLCAoKSA9PiB7CisKKyAgICAgICAgaXQoJ3Nob3Vs
ZCBnZXQgQnVpbGRlciBOYW1lIHRvIElEIE1hcCcsICgpID0+IHsKKyAgICAgICAgICAgIGNvbnN0
IGNvbmZpZyA9IE1vY2tEYXRhLm1vY2tUZXN0U3luY0NvbmZpZ1dpdGhTaW5nbGVCdWlsZGVyKCk7
CisgICAgICAgICAgICBjb25zdCBsb2dnZXIgPSBuZXcgTW9ja0xvZ2dlcjsKKyAgICAgICAgICAg
IGNvbnN0IHNsYXZlSW5mbyA9IHtuYW1lOiAnc3luYy1zbGF2ZScsIHBhc3N3b3JkOiAncGFzc3dv
cmQnfTsKKyAgICAgICAgICAgIGNvbnN0IGJ1aWxkYm90VHJpZ2dlcmFibGUgPSBuZXcgQnVpbGRi
b3RUcmlnZ2VyYWJsZShjb25maWcsIFRlc3RTZXJ2ZXIucmVtb3RlQVBJKCksIE1vY2tSZW1vdGVB
UEksIHNsYXZlSW5mbywgbG9nZ2VyKTsKKyAgICAgICAgICAgIGNvbnN0IGdldEJ1aWxkZXJOYW1l
VG9JRE1hcFByb21pc2UgPSBidWlsZGJvdFRyaWdnZXJhYmxlLmdldEJ1aWxkZXJOYW1lVG9JRE1h
cCgpOworICAgICAgICAgICAgYXNzZXJ0UmVxdWVzdEFuZFJlc29sdmUoTW9ja1JlbW90ZUFQSS5y
ZXF1ZXN0c1swXSwgJ0dFVCcsIE1vY2tEYXRhLmJ1aWxkYm90MDlCdWlsZGVyc1VSTCgpLCBNb2Nr
RGF0YS5tb2NrQnVpbGRib3QwOUJ1aWxkZXJzKCkpOworICAgICAgICAgICAgZ2V0QnVpbGRlck5h
bWVUb0lETWFwUHJvbWlzZS50aGVuKChidWlsZGVyTmFtZVRvSURNYXApID0+IHsKKyAgICAgICAg
ICAgICAgICBhc3NlcnQuZXF1YWwoYnVpbGRlck5hbWVUb0lETWFwWyJzb21lIGJ1aWxkZXIiXSwg
MSkKKyAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoYnVpbGRlck5hbWVUb0lETWFwWyJzb21l
LWJ1aWxkZXItMSJdLCAyKQorICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChidWlsZGVyTmFt
ZVRvSURNYXBbInNvbWUgYnVpbGRlciAyIl0sIDMpCisgICAgICAgICAgICAgICAgYXNzZXJ0LmVx
dWFsKGJ1aWxkZXJOYW1lVG9JRE1hcFsib3RoZXIgYnVpbGRlciJdLCA0KQorICAgICAgICAgICAg
ICAgIGFzc2VydC5lcXVhbChidWlsZGVyTmFtZVRvSURNYXBbInNvbWUgdGVzdGVyIl0sIDUpCisg
ICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGJ1aWxkZXJOYW1lVG9JRE1hcFsiYW5vdGhlciB0
ZXN0ZXIiXSwgNikKKyAgICAgICAgICAgIH0pOworICAgICAgICB9KTsKKyAgICB9KTsKIH0pOwpJ
bmRleDogV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL3NlcnZlci10ZXN0cy90b29scy1zeW5jLWJ1
aWxkYm90LWludGVncmF0aW9uLXRlc3RzLmpzCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYnNpdGVzL3BlcmYu
d2Via2l0Lm9yZy9zZXJ2ZXItdGVzdHMvdG9vbHMtc3luYy1idWlsZGJvdC1pbnRlZ3JhdGlvbi10
ZXN0cy5qcwkocmV2aXNpb24gMjI3MTc2KQorKysgV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL3Nl
cnZlci10ZXN0cy90b29scy1zeW5jLWJ1aWxkYm90LWludGVncmF0aW9uLXRlc3RzLmpzCSh3b3Jr
aW5nIGNvcHkpCkBAIC0xMzksNiArMTM5LDEzIEBAIGNvbnN0IGNvbmZpZ1dpdGhUd29UZXN0ZXJz
ID0gewogICAgIF0KIH07CiAKK2Z1bmN0aW9uIGFzc2VydEFuZFJlc29sdmVSZXF1ZXN0KHJlcXVl
c3QsIG1ldGhvZCwgdXJsLCBjb250ZW50VG9SZXNvbHZlKQoreworICAgIGFzc2VydC5lcXVhbChy
ZXF1ZXN0Lm1ldGhvZCwgbWV0aG9kKTsKKyAgICBhc3NlcnQuZXF1YWwocmVxdWVzdC51cmwsIHVy
bCk7CisgICAgcmVxdWVzdC5yZXNvbHZlKGNvbnRlbnRUb1Jlc29sdmUpOworfQorCiBmdW5jdGlv
biBjcmVhdGVUcmlnZ2VyYWJsZShjb25maWcgPSBjb25maWdXaXRoT25lVGVzdGVyVHdvQnVpbGRl
cnMpCiB7CiAgICAgbGV0IHRyaWdnZXJhYmxlOwpAQCAtMTQ2LDcgKzE1MywxMCBAQCBmdW5jdGlv
biBjcmVhdGVUcmlnZ2VyYWJsZShjb25maWcgPSBjb25mCiAgICAgICAgIHJldHVybiBNYW5pZmVz
dC5mZXRjaCgpOwogICAgIH0pLnRoZW4oKCkgPT4gewogICAgICAgICB0cmlnZ2VyYWJsZSA9IG5l
dyBCdWlsZGJvdFRyaWdnZXJhYmxlKGNvbmZpZywgVGVzdFNlcnZlci5yZW1vdGVBUEkoKSwgTW9j
a1JlbW90ZUFQSSwge25hbWU6ICdzeW5jLXNsYXZlJywgcGFzc3dvcmQ6ICdwYXNzd29yZCd9LCBu
ZXcgTW9ja0xvZ2dlcik7Ci0gICAgICAgIHJldHVybiB0cmlnZ2VyYWJsZS5pbml0U3luY2Vycygp
LnRoZW4oKCkgPT4gdHJpZ2dlcmFibGUudXBkYXRlVHJpZ2dlcmFibGUoKSk7CisgICAgICAgIGNv
bnN0IHN5bmNQcm9taXNlID0gdHJpZ2dlcmFibGUuaW5pdFN5bmNlcnMoKS50aGVuKCgpID0+IHRy
aWdnZXJhYmxlLnVwZGF0ZVRyaWdnZXJhYmxlKCkpOworICAgICAgICBhc3NlcnRBbmRSZXNvbHZl
UmVxdWVzdChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzBdLCAnR0VUJywgTW9ja0RhdGEuYnVpbGRi
b3RCdWlsZGVyc1VSTCgpLCBNb2NrRGF0YS5tb2NrQnVpbGRib3RCdWlsZGVycygpKTsKKyAgICAg
ICAgTW9ja1JlbW90ZUFQSS5yZXNldCgpOworICAgICAgICByZXR1cm4gc3luY1Byb21pc2U7CiAg
ICAgfSkudGhlbigoKSA9PiBNYW5pZmVzdC5mZXRjaCgpKS50aGVuKCgpID0+IHsKICAgICAgICAg
cmV0dXJuIG5ldyBCdWlsZGJvdFRyaWdnZXJhYmxlKGNvbmZpZywgVGVzdFNlcnZlci5yZW1vdGVB
UEkoKSwgTW9ja1JlbW90ZUFQSSwge25hbWU6ICdzeW5jLXNsYXZlJywgcGFzc3dvcmQ6ICdwYXNz
d29yZCd9LCBuZXcgTW9ja0xvZ2dlcik7CiAgICAgfSk7CkBAIC0yMjEsMTIgKzIzMSw2IEBAIGRl
c2NyaWJlKCdzeW5jLWJ1aWxkYm90JywgZnVuY3Rpb24gKCkgewogICAgICAgICBNb2NrUmVtb3Rl
QVBJLnJlc2V0KCdodHRwOi8vYnVpbGQud2Via2l0Lm9yZycpOwogICAgIH0pOwogCi0gICAgZnVu
Y3Rpb24gYXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVzdCwgbWV0aG9kLCB1cmwsIGNvbnRl
bnRUb1Jlc29sdmUpCi0gICAgewotICAgICAgICBhc3NlcnQuZXF1YWwocmVxdWVzdC5tZXRob2Qs
IG1ldGhvZCk7Ci0gICAgICAgIGFzc2VydC5lcXVhbChyZXF1ZXN0LnVybCwgdXJsKTsKLSAgICAg
ICAgcmVxdWVzdC5yZXNvbHZlKGNvbnRlbnRUb1Jlc29sdmUpOwotICAgIH0KIAogICAgIGl0KCdz
aG91bGQgbm90IHNjaGVkdWxlIG9uIGFub3RoZXIgYnVpbGRlciBpZiB0aGUgYnVpbGQgd2FzIHNj
aGVkdWxlZCBvbiBvbmUgYnVpbGRlciBiZWZvcmUnLCAoKSA9PiB7CiAgICAgICAgIGNvbnN0IHJl
cXVlc3RzID0gTW9ja1JlbW90ZUFQSS5yZXF1ZXN0czsKQEAgLTI0NSw2ICsyNDksOCBAQCBkZXNj
cmliZSgnc3luYy1idWlsZGJvdCcsIGZ1bmN0aW9uICgpIHsKICAgICAgICAgICAgIHRhc2tJZCA9
IGZpcnN0VGVzdEdyb3VwLnRhc2soKS5pZCgpOwogICAgICAgICAgICAgYW5vdGhlclRhc2tJZCA9
IHNlY29uZFRlc3RHcm91cC50YXNrKCkuaWQoKTsKICAgICAgICAgICAgIHN5bmNQcm9taXNlID0g
dHJpZ2dlcmFibGUuaW5pdFN5bmNlcnMoKS50aGVuKCgpID0+IHRyaWdnZXJhYmxlLnN5bmNPbmNl
KCkpOworICAgICAgICAgICAgYXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNbMF0sICdH
RVQnLCBNb2NrRGF0YS5idWlsZGJvdEJ1aWxkZXJzVVJMKCksIE1vY2tEYXRhLm1vY2tCdWlsZGJv
dEJ1aWxkZXJzKCkpOworICAgICAgICAgICAgTW9ja1JlbW90ZUFQSS5yZXNldCgpOwogICAgICAg
ICAgICAgcmV0dXJuIE1vY2tSZW1vdGVBUEkud2FpdEZvclJlcXVlc3QoKTsKICAgICAgICAgfSku
dGhlbigoKSA9PiB7CiAgICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVxdWVzdHMubGVuZ3RoLCAy
KTsKQEAgLTM1Nyw2ICszNjMsOCBAQCBkZXNjcmliZSgnc3luYy1idWlsZGJvdCcsIGZ1bmN0aW9u
ICgpIHsKICAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwob3RoZXJDb21taXRTZXQuYWxsUm9v
dEZpbGVzKCksIFtdKTsKIAogICAgICAgICAgICAgc3luY1Byb21pc2UgPSB0cmlnZ2VyYWJsZS5p
bml0U3luY2VycygpLnRoZW4oKCkgPT4gdHJpZ2dlcmFibGUuc3luY09uY2UoKSk7CisgICAgICAg
ICAgICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1swXSwgJ0dFVCcsIE1vY2tEYXRh
LmJ1aWxkYm90QnVpbGRlcnNVUkwoKSwgTW9ja0RhdGEubW9ja0J1aWxkYm90QnVpbGRlcnMoKSk7
CisgICAgICAgICAgICBNb2NrUmVtb3RlQVBJLnJlc2V0KCk7CiAgICAgICAgICAgICByZXR1cm4g
TW9ja1JlbW90ZUFQSS53YWl0Rm9yUmVxdWVzdCgpOwogICAgICAgICB9KS50aGVuKCgpID0+IHsK
ICAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXF1ZXN0cy5sZW5ndGgsIDMpOwpAQCAtNDY4LDYg
KzQ3Niw4IEBAIGRlc2NyaWJlKCdzeW5jLWJ1aWxkYm90JywgZnVuY3Rpb24gKCkgewogCiAgICAg
ICAgICAgICBNb2NrUmVtb3RlQVBJLnJlc2V0KCk7CiAgICAgICAgICAgICBzeW5jUHJvbWlzZSA9
IHRyaWdnZXJhYmxlLmluaXRTeW5jZXJzKCkudGhlbigoKSA9PiB0cmlnZ2VyYWJsZS5zeW5jT25j
ZSgpKTsKKyAgICAgICAgICAgIGFzc2VydEFuZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3RzWzBdLCAn
R0VUJywgTW9ja0RhdGEuYnVpbGRib3RCdWlsZGVyc1VSTCgpLCBNb2NrRGF0YS5tb2NrQnVpbGRi
b3RCdWlsZGVycygpKTsKKyAgICAgICAgICAgIE1vY2tSZW1vdGVBUEkucmVzZXQoKTsKICAgICAg
ICAgICAgIHJldHVybiBNb2NrUmVtb3RlQVBJLndhaXRGb3JSZXF1ZXN0KCk7CiAgICAgICAgIH0p
LnRoZW4oKCkgPT4gewogICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlcXVlc3RzLmxlbmd0aCwg
Myk7CkBAIC02MjYsNiArNjM2LDggQEAgZGVzY3JpYmUoJ3N5bmMtYnVpbGRib3QnLCBmdW5jdGlv
biAoKSB7CiAgICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKG90aGVyQ29tbWl0U2V0LmFsbFJv
b3RGaWxlcygpLCBbXSk7CiAKICAgICAgICAgICAgIHN5bmNQcm9taXNlID0gdHJpZ2dlcmFibGUu
aW5pdFN5bmNlcnMoKS50aGVuKCgpID0+IHRyaWdnZXJhYmxlLnN5bmNPbmNlKCkpOworICAgICAg
ICAgICAgYXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNbMF0sICdHRVQnLCBNb2NrRGF0
YS5idWlsZGJvdEJ1aWxkZXJzVVJMKCksIE1vY2tEYXRhLm1vY2tCdWlsZGJvdEJ1aWxkZXJzKCkp
OworICAgICAgICAgICAgTW9ja1JlbW90ZUFQSS5yZXNldCgpOwogICAgICAgICAgICAgcmV0dXJu
IE1vY2tSZW1vdGVBUEkud2FpdEZvclJlcXVlc3QoKTsKICAgICAgICAgfSkudGhlbigoKSA9PiB7
CiAgICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVxdWVzdHMubGVuZ3RoLCAzKTsKQEAgLTczNyw2
ICs3NDksOCBAQCBkZXNjcmliZSgnc3luYy1idWlsZGJvdCcsIGZ1bmN0aW9uICgpIHsKIAogICAg
ICAgICAgICAgTW9ja1JlbW90ZUFQSS5yZXNldCgpOwogICAgICAgICAgICAgc3luY1Byb21pc2Ug
PSB0cmlnZ2VyYWJsZS5pbml0U3luY2VycygpLnRoZW4oKCkgPT4gdHJpZ2dlcmFibGUuc3luY09u
Y2UoKSk7CisgICAgICAgICAgICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1swXSwg
J0dFVCcsIE1vY2tEYXRhLmJ1aWxkYm90QnVpbGRlcnNVUkwoKSwgTW9ja0RhdGEubW9ja0J1aWxk
Ym90QnVpbGRlcnMoKSk7CisgICAgICAgICAgICBNb2NrUmVtb3RlQVBJLnJlc2V0KCk7CiAgICAg
ICAgICAgICByZXR1cm4gTW9ja1JlbW90ZUFQSS53YWl0Rm9yUmVxdWVzdCgpOwogICAgICAgICB9
KS50aGVuKCgpID0+IHsKICAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXF1ZXN0cy5sZW5ndGgs
IDMpOwpAQCAtOTExLDYgKzkyNSw4IEBAIGRlc2NyaWJlKCdzeW5jLWJ1aWxkYm90JywgZnVuY3Rp
b24gKCkgewogICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKG90aGVyUm9vdHMubGVuZ3RoLCAxKTsK
ICAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwob3RoZXJSb290c1swXS5maWxlbmFtZSgpLCAn
cm9vdDQ2LmRhdCcpOwogICAgICAgICAgICAgc3luY1Byb21pc2UgPSB0cmlnZ2VyYWJsZS5pbml0
U3luY2VycygpLnRoZW4oKCkgPT4gdHJpZ2dlcmFibGUuc3luY09uY2UoKSk7CisgICAgICAgICAg
ICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1swXSwgJ0dFVCcsIE1vY2tEYXRhLmJ1
aWxkYm90QnVpbGRlcnNVUkwoKSwgTW9ja0RhdGEubW9ja0J1aWxkYm90QnVpbGRlcnMoKSk7Cisg
ICAgICAgICAgICBNb2NrUmVtb3RlQVBJLnJlc2V0KCk7CiAgICAgICAgICAgICByZXR1cm4gTW9j
a1JlbW90ZUFQSS53YWl0Rm9yUmVxdWVzdCgpOwogICAgICAgICB9KS50aGVuKCgpID0+IHsKICAg
ICAgICAgICAgIGFzc2VydC5lcXVhbChyZXF1ZXN0cy5sZW5ndGgsIDMpOwpAQCAtOTgyLDYgKzk5
OCw4IEBAIGRlc2NyaWJlKCdzeW5jLWJ1aWxkYm90JywgZnVuY3Rpb24gKCkgewogICAgICAgICAg
ICAgYXNzZXJ0LmVxdWFsKG90aGVyQnVpbGRSZXF1ZXN0LmJ1aWxkSWQoKSwgbnVsbCk7CiAKICAg
ICAgICAgICAgIHN5bmNQcm9taXNlID0gdHJpZ2dlcmFibGUuaW5pdFN5bmNlcnMoKS50aGVuKCgp
ID0+IHRyaWdnZXJhYmxlLnN5bmNPbmNlKCkpOworICAgICAgICAgICAgYXNzZXJ0QW5kUmVzb2x2
ZVJlcXVlc3QocmVxdWVzdHNbMF0sICdHRVQnLCBNb2NrRGF0YS5idWlsZGJvdEJ1aWxkZXJzVVJM
KCksIE1vY2tEYXRhLm1vY2tCdWlsZGJvdEJ1aWxkZXJzKCkpOworICAgICAgICAgICAgTW9ja1Jl
bW90ZUFQSS5yZXNldCgpOwogICAgICAgICAgICAgcmV0dXJuIFByb21pc2UuYWxsKFtNb2NrUmVt
b3RlQVBJLndhaXRGb3JSZXF1ZXN0KCksIHVwbG9hZFJvb3QoMSwgMTIzKV0pOwogICAgICAgICB9
KS50aGVuKCgpID0+IHsKICAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXF1ZXN0cy5sZW5ndGgs
IDMpOwpAQCAtMTA2Niw2ICsxMDg0LDggQEAgZGVzY3JpYmUoJ3N5bmMtYnVpbGRib3QnLCBmdW5j
dGlvbiAoKSB7CiAgICAgICAgICAgICBhc3NlcnQuZXF1YWwob3RoZXJCdWlsZFJlcXVlc3QuYnVp
bGRJZCgpLCBudWxsKTsKIAogICAgICAgICAgICAgc3luY1Byb21pc2UgPSB0cmlnZ2VyYWJsZS5p
bml0U3luY2VycygpLnRoZW4oKCkgPT4gdHJpZ2dlcmFibGUuc3luY09uY2UoKSk7CisgICAgICAg
ICAgICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1swXSwgJ0dFVCcsIE1vY2tEYXRh
LmJ1aWxkYm90QnVpbGRlcnNVUkwoKSwgTW9ja0RhdGEubW9ja0J1aWxkYm90QnVpbGRlcnMoKSk7
CisgICAgICAgICAgICBNb2NrUmVtb3RlQVBJLnJlc2V0KCk7CiAgICAgICAgICAgICByZXR1cm4g
TW9ja1JlbW90ZUFQSS53YWl0Rm9yUmVxdWVzdCgpOwogICAgICAgICB9KS50aGVuKCgpID0+IHsK
ICAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXF1ZXN0cy5sZW5ndGgsIDMpOwpAQCAtMTE3Miw2
ICsxMTkyLDggQEAgZGVzY3JpYmUoJ3N5bmMtYnVpbGRib3QnLCBmdW5jdGlvbiAoKSB7CiAgICAg
ICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKG90aGVyQ29tbWl0U2V0LmFsbFJvb3RGaWxlcygpLCBb
XSk7CiAKICAgICAgICAgICAgIHN5bmNQcm9taXNlID0gdHJpZ2dlcmFibGUuaW5pdFN5bmNlcnMo
KS50aGVuKCgpID0+IHRyaWdnZXJhYmxlLnN5bmNPbmNlKCkpOworICAgICAgICAgICAgYXNzZXJ0
QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNbMF0sICdHRVQnLCBNb2NrRGF0YS5idWlsZGJvdEJ1
aWxkZXJzVVJMKCksIE1vY2tEYXRhLm1vY2tCdWlsZGJvdEJ1aWxkZXJzKCkpOworICAgICAgICAg
ICAgTW9ja1JlbW90ZUFQSS5yZXNldCgpOwogICAgICAgICAgICAgcmV0dXJuIE1vY2tSZW1vdGVB
UEkud2FpdEZvclJlcXVlc3QoKTsKICAgICAgICAgfSkudGhlbigoKSA9PiB7CiAgICAgICAgICAg
ICBhc3NlcnQuZXF1YWwocmVxdWVzdHMubGVuZ3RoLCAzKTsKQEAgLTEyOTEsNiArMTMxMyw4IEBA
IGRlc2NyaWJlKCdzeW5jLWJ1aWxkYm90JywgZnVuY3Rpb24gKCkgewogCiAgICAgICAgICAgICBN
b2NrUmVtb3RlQVBJLnJlc2V0KCk7CiAgICAgICAgICAgICBzeW5jUHJvbWlzZSA9IHRyaWdnZXJh
YmxlLmluaXRTeW5jZXJzKCkudGhlbigoKSA9PiB0cmlnZ2VyYWJsZS5zeW5jT25jZSgpKTsKKyAg
ICAgICAgICAgIGFzc2VydEFuZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3RzWzBdLCAnR0VUJywgTW9j
a0RhdGEuYnVpbGRib3RCdWlsZGVyc1VSTCgpLCBNb2NrRGF0YS5tb2NrQnVpbGRib3RCdWlsZGVy
cygpKTsKKyAgICAgICAgICAgIE1vY2tSZW1vdGVBUEkucmVzZXQoKTsKICAgICAgICAgICAgIHJl
dHVybiBNb2NrUmVtb3RlQVBJLndhaXRGb3JSZXF1ZXN0KCk7CiAgICAgICAgIH0pLnRoZW4oKCkg
PT4gewogICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlcXVlc3RzLmxlbmd0aCwgMyk7CkBAIC0x
NDY3LDYgKzE0OTEsOCBAQCBkZXNjcmliZSgnc3luYy1idWlsZGJvdCcsIGZ1bmN0aW9uICgpIHsK
ICAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwob3RoZXJDb21taXRTZXQuYWxsUm9vdEZpbGVz
KCksIFtdKTsKIAogICAgICAgICAgICAgc3luY1Byb21pc2UgPSB0cmlnZ2VyYWJsZS5pbml0U3lu
Y2VycygpLnRoZW4oKCkgPT4gdHJpZ2dlcmFibGUuc3luY09uY2UoKSk7CisgICAgICAgICAgICBh
c3NlcnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1swXSwgJ0dFVCcsIE1vY2tEYXRhLmJ1aWxk
Ym90QnVpbGRlcnNVUkwoKSwgTW9ja0RhdGEubW9ja0J1aWxkYm90QnVpbGRlcnMoKSk7CisgICAg
ICAgICAgICBNb2NrUmVtb3RlQVBJLnJlc2V0KCk7CiAgICAgICAgICAgICByZXR1cm4gTW9ja1Jl
bW90ZUFQSS53YWl0Rm9yUmVxdWVzdCgpOwogICAgICAgICB9KS50aGVuKCgpID0+IHsKICAgICAg
ICAgICAgIGFzc2VydC5lcXVhbChyZXF1ZXN0cy5sZW5ndGgsIDMpOwpAQCAtMTYyNyw2ICsxNjUz
LDggQEAgZGVzY3JpYmUoJ3N5bmMtYnVpbGRib3QnLCBmdW5jdGlvbiAoKSB7CiAKICAgICAgICAg
ICAgIE1vY2tSZW1vdGVBUEkucmVzZXQoKTsKICAgICAgICAgICAgIHN5bmNQcm9taXNlID0gdHJp
Z2dlcmFibGUuaW5pdFN5bmNlcnMoKS50aGVuKCgpID0+IHRyaWdnZXJhYmxlLnN5bmNPbmNlKCkp
OworICAgICAgICAgICAgYXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNbMF0sICdHRVQn
LCBNb2NrRGF0YS5idWlsZGJvdEJ1aWxkZXJzVVJMKCksIE1vY2tEYXRhLm1vY2tCdWlsZGJvdEJ1
aWxkZXJzKCkpOworICAgICAgICAgICAgTW9ja1JlbW90ZUFQSS5yZXNldCgpOwogICAgICAgICAg
ICAgcmV0dXJuIE1vY2tSZW1vdGVBUEkud2FpdEZvclJlcXVlc3QoKTsKICAgICAgICAgfSkudGhl
bigoKSA9PiB7CiAgICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVxdWVzdHMubGVuZ3RoLCAzKTsK
SW5kZXg6IFdlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy9zZXJ2ZXItdGVzdHMvcmVzb3VyY2VzL21v
Y2stZGF0YS5qcwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvc2VydmVy
LXRlc3RzL3Jlc291cmNlcy9tb2NrLWRhdGEuanMJKHJldmlzaW9uIDIyNzE3NikKKysrIFdlYnNp
dGVzL3BlcmYud2Via2l0Lm9yZy9zZXJ2ZXItdGVzdHMvcmVzb3VyY2VzL21vY2stZGF0YS5qcwko
d29ya2luZyBjb3B5KQpAQCAtMTcsNiArMTcsOCBAQCBNb2NrRGF0YSA9IHsKICAgICBqc2NSZXBv
c2l0b3J5SWQoKSB7IHJldHVybiAyMjI7IH0sCiAgICAgZ2l0V2Via2l0UmVwb3NpdG9yeUlkKCkg
eyByZXR1cm4gMTExOyB9LAogICAgIHNoYXJlZFJlcG9zaXRvcnlJZCgpIHsgcmV0dXJuIDE0OyB9
LAorICAgIGJ1aWxkYm90QnVpbGRlcnNVUkwoKSB7cmV0dXJuICcvanNvbi9idWlsZGVycyd9LAor
ICAgIGJ1aWxkYm90MDlCdWlsZGVyc1VSTCgpIHtyZXR1cm4gJy9hcGkvdjIvYnVpbGRlcnMnfSwK
ICAgICBhZGRNb2NrQ29uZmlndXJhdGlvbjogZnVuY3Rpb24gKGRiKQogICAgIHsKICAgICAgICAg
cmV0dXJuIFByb21pc2UuYWxsKFsKQEAgLTIyMCw2ICsyMjIsNjAgQEAgTW9ja0RhdGEgPSB7CiAg
ICAgICAgICAgICBdCiAgICAgICAgIH0KICAgICB9LAorICAgIG1vY2tCdWlsZGJvdEJ1aWxkZXJz
OiBmdW5jdGlvbiAoKQorICAgIHsKKyAgICAgICAgcmV0dXJuIHsKKyAgICAgICAgICAgICJzb21l
IGJ1aWxkZXIiOiB7CisgICAgICAgICAgICAgICAgInNsYXZlcyI6IFsgInNvbWUtc2xhdmUtMSIg
XQorICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICJzb21lLWJ1aWxkZXItMSI6IHsKKyAgICAg
ICAgICAgICAgICAic2xhdmVzIjogWyAic29tZS1zbGF2ZS0yIiBdCisgICAgICAgICAgICB9LAor
ICAgICAgICAgICAgInNvbWUgYnVpbGRlciAyIjogeworICAgICAgICAgICAgICAgICJzbGF2ZXMi
OiBbICJzb21lLXNsYXZlLTMiIF0KKyAgICAgICAgICAgIH0sCisgICAgICAgICAgICAib3RoZXIg
YnVpbGRlciI6IHsKKyAgICAgICAgICAgICAgICAic2xhdmVzIjogWyAic29tZS1zbGF2ZS00IiBd
CisgICAgICAgICAgICB9LAorICAgICAgICAgICAgInNvbWUgdGVzdGVyIjogeworICAgICAgICAg
ICAgICAgICJzbGF2ZXMiOiBbICJzb21lLXNsYXZlLTUiIF0KKyAgICAgICAgICAgIH0sCisgICAg
ICAgICAgICAiYW5vdGhlciB0ZXN0ZXIiOiB7CisgICAgICAgICAgICAgICAgInNsYXZlcyI6IFsg
InNvbWUtc2xhdmUtNiIgXQorICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgfSwKKyAgICBt
b2NrQnVpbGRib3QwOUJ1aWxkZXJzOiBmdW5jdGlvbiAoKQorICAgIHsKKyAgICAgICAgcmV0dXJu
IHsKKyAgICAgICAgICAgICJidWlsZGVycyI6IFsKKyAgICAgICAgICAgICAgICB7CisgICAgICAg
ICAgICAgICAgICAgICJidWlsZGVyaWQiOiAxLAorICAgICAgICAgICAgICAgICAgICAibmFtZSI6
ICJzb21lIGJ1aWxkZXIiLAorICAgICAgICAgICAgICAgIH0sCisgICAgICAgICAgICAgICAgewor
ICAgICAgICAgICAgICAgICAgICAiYnVpbGRlcmlkIjogMiwKKyAgICAgICAgICAgICAgICAgICAg
Im5hbWUiOiAic29tZS1idWlsZGVyLTEiLAorICAgICAgICAgICAgICAgIH0sCisgICAgICAgICAg
ICAgICAgeworICAgICAgICAgICAgICAgICAgICAiYnVpbGRlcmlkIjogMywKKyAgICAgICAgICAg
ICAgICAgICAgIm5hbWUiOiAic29tZSBidWlsZGVyIDIiLAorICAgICAgICAgICAgICAgIH0sCisg
ICAgICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICAgICAiYnVpbGRlcmlkIjogNCwKKyAg
ICAgICAgICAgICAgICAgICAgIm5hbWUiOiAib3RoZXIgYnVpbGRlciIsCisgICAgICAgICAgICAg
ICAgfSwKKyAgICAgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgICAgICJidWlsZGVyaWQi
OiA1LAorICAgICAgICAgICAgICAgICAgICAibmFtZSI6ICJzb21lIHRlc3RlciIsCisgICAgICAg
ICAgICAgICAgfSwKKyAgICAgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgICAgICJidWls
ZGVyaWQiOiA2LAorICAgICAgICAgICAgICAgICAgICAibmFtZSI6ICJhbm90aGVyIHRlc3RlciIs
CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgXQorICAgICAgICB9CisgICAgfSwKICAg
ICBwZW5kaW5nQnVpbGQob3B0aW9ucykKICAgICB7CiAgICAgICAgIG9wdGlvbnMgPSBvcHRpb25z
IHx8IHt9OwpJbmRleDogV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL3Rvb2xzL2pzL2J1aWxkYm90
LXN5bmNlci5qcwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvdG9vbHMv
anMvYnVpbGRib3Qtc3luY2VyLmpzCShyZXZpc2lvbiAyMjcxNzYpCisrKyBXZWJzaXRlcy9wZXJm
LndlYmtpdC5vcmcvdG9vbHMvanMvYnVpbGRib3Qtc3luY2VyLmpzCSh3b3JraW5nIGNvcHkpCkBA
IC02Nyw2ICs2Nyw3IEBAIGNsYXNzIEJ1aWxkYm90U3luY2VyIHsKICAgICAgICAgdGhpcy5fcGxh
dGZvcm1Qcm9wZXJ0eU5hbWUgPSBjb21tb25Db25maWd1cmF0aW9ucy5wbGF0Zm9ybUFyZ3VtZW50
OwogICAgICAgICB0aGlzLl9idWlsZFJlcXVlc3RQcm9wZXJ0eU5hbWUgPSBjb21tb25Db25maWd1
cmF0aW9ucy5idWlsZFJlcXVlc3RBcmd1bWVudDsKICAgICAgICAgdGhpcy5fYnVpbGRlck5hbWUg
PSBvYmplY3QuYnVpbGRlcjsKKyAgICAgICAgdGhpcy5fYnVpbGRlcklEID0gb2JqZWN0LmJ1aWxk
ZXJJRDsKICAgICAgICAgdGhpcy5fc2xhdmVMaXN0ID0gb2JqZWN0LnNsYXZlTGlzdDsKICAgICAg
ICAgdGhpcy5fZW50cnlMaXN0ID0gbnVsbDsKICAgICAgICAgdGhpcy5fc2xhdmVzV2l0aE5ld1Jl
cXVlc3RzID0gbmV3IFNldDsKQEAgLTMxNyw4ICszMTgsOSBAQCBjbGFzcyBCdWlsZGJvdFN5bmNl
ciB7CiAgICAgICAgIHJldHVybiByZXZpc2lvblNldDsKICAgICB9CiAKLSAgICBzdGF0aWMgX2xv
YWRDb25maWcocmVtb3RlLCBjb25maWcpCisgICAgc3RhdGljIF9sb2FkQ29uZmlnKHJlbW90ZSwg
Y29uZmlnLCBidWlsZGVyTmFtZVRvSURNYXApCiAgICAgeworICAgICAgICBhc3NlcnQoYnVpbGRl
ck5hbWVUb0lETWFwKTsKICAgICAgICAgY29uc3QgdHlwZXMgPSBjb25maWdbJ3R5cGVzJ10gfHwg
e307CiAgICAgICAgIGNvbnN0IGJ1aWxkZXJzID0gY29uZmlnWydidWlsZGVycyddIHx8IHt9Owog
CkBAIC0zNDgsNyArMzUwLDcgQEAgY2xhc3MgQnVpbGRib3RTeW5jZXIgewogICAgICAgICB9CiAK
ICAgICAgICAgYXNzZXJ0KEFycmF5LmlzQXJyYXkoY29uZmlnWyd0ZXN0Q29uZmlndXJhdGlvbnMn
XSksIGBUaGUgdGVzdCBjb25maWd1cmF0aW9uIG11c3QgYmUgYW4gYXJyYXlgKTsKLSAgICAgICAg
dGhpcy5fcmVzb2x2ZUJ1aWxkZXJzV2l0aFBsYXRmb3JtcygndGVzdCcsIGNvbmZpZ1sndGVzdENv
bmZpZ3VyYXRpb25zJ10sIGJ1aWxkZXJzKS5mb3JFYWNoKChlbnRyeSwgY29uZmlndXJhdGlvbklu
ZGV4KSA9PiB7CisgICAgICAgIHRoaXMuX3Jlc29sdmVCdWlsZGVyc1dpdGhQbGF0Zm9ybXMoJ3Rl
c3QnLCBjb25maWdbJ3Rlc3RDb25maWd1cmF0aW9ucyddLCBidWlsZGVycywgYnVpbGRlck5hbWVU
b0lETWFwKS5mb3JFYWNoKChlbnRyeSwgY29uZmlndXJhdGlvbkluZGV4KSA9PiB7CiAgICAgICAg
ICAgICBhc3NlcnQoQXJyYXkuaXNBcnJheShlbnRyeVsndHlwZXMnXSksIGBUaGUgdGVzdCBjb25m
aWd1cmF0aW9uICR7Y29uZmlndXJhdGlvbkluZGV4fSBkb2VzIG5vdCBzcGVjaWZ5ICJ0eXBlcyIg
YXMgYW4gYXJyYXlgKTsKICAgICAgICAgICAgIGZvciAoY29uc3QgdHlwZSBvZiBlbnRyeVsndHlw
ZXMnXSkgewogICAgICAgICAgICAgICAgIGNvbnN0IHR5cGVDb25maWcgPSB0aGlzLl92YWxpZGF0
ZUFuZE1lcmdlQ29uZmlnKHt9LCBlbnRyeS5idWlsZGVyQ29uZmlnKTsKQEAgLTM2Niw3ICszNjgs
NyBAQCBjbGFzcyBCdWlsZGJvdFN5bmNlciB7CiAgICAgICAgIGNvbnN0IGJ1aWxkQ29uZmlndXJh
dGlvbnMgPSBjb25maWdbJ2J1aWxkQ29uZmlndXJhdGlvbnMnXTsKICAgICAgICAgaWYgKGJ1aWxk
Q29uZmlndXJhdGlvbnMpIHsKICAgICAgICAgICAgIGFzc2VydChBcnJheS5pc0FycmF5KGJ1aWxk
Q29uZmlndXJhdGlvbnMpLCBgVGhlIHRlc3QgY29uZmlndXJhdGlvbiBtdXN0IGJlIGFuIGFycmF5
YCk7Ci0gICAgICAgICAgICB0aGlzLl9yZXNvbHZlQnVpbGRlcnNXaXRoUGxhdGZvcm1zKCd0ZXN0
JywgYnVpbGRDb25maWd1cmF0aW9ucywgYnVpbGRlcnMpLmZvckVhY2goKGVudHJ5LCBjb25maWd1
cmF0aW9uSW5kZXgpID0+IHsKKyAgICAgICAgICAgIHRoaXMuX3Jlc29sdmVCdWlsZGVyc1dpdGhQ
bGF0Zm9ybXMoJ3Rlc3QnLCBidWlsZENvbmZpZ3VyYXRpb25zLCBidWlsZGVycywgYnVpbGRlck5h
bWVUb0lETWFwKS5mb3JFYWNoKChlbnRyeSwgY29uZmlndXJhdGlvbkluZGV4KSA9PiB7CiAgICAg
ICAgICAgICAgICAgY29uc3Qgc3luY2VyID0gZW5zdXJlQnVpbGRib3RTeW5jZXIoZW50cnkuYnVp
bGRlckNvbmZpZyk7CiAgICAgICAgICAgICAgICAgYXNzZXJ0KCFzeW5jZXIuaXNUZXN0ZXIoKSwg
YFRoZSBidWlsZCBjb25maWd1cmF0aW9uICR7Y29uZmlndXJhdGlvbkluZGV4fSB1c2VzIGEgdGVz
dGVyOiAke3N5bmNlci5idWlsZGVyTmFtZSgpfWApOwogICAgICAgICAgICAgICAgIHN5bmNlci5h
ZGRCdWlsZENvbmZpZ3VyYXRpb24oZW50cnkucGxhdGZvcm0sIGVudHJ5LmJ1aWxkZXJDb25maWcu
cHJvcGVydGllcyk7CkBAIC0zNzYsNyArMzc4LDcgQEAgY2xhc3MgQnVpbGRib3RTeW5jZXIgewog
ICAgICAgICByZXR1cm4gQXJyYXkuZnJvbShzeW5jZXJCeUJ1aWxkZXIudmFsdWVzKCkpOwogICAg
IH0KIAotICAgIHN0YXRpYyBfcmVzb2x2ZUJ1aWxkZXJzV2l0aFBsYXRmb3Jtcyhjb25maWd1cmF0
aW9uVHlwZSwgY29uZmlndXJhdGlvbkxpc3QsIGJ1aWxkZXJzKQorICAgIHN0YXRpYyBfcmVzb2x2
ZUJ1aWxkZXJzV2l0aFBsYXRmb3Jtcyhjb25maWd1cmF0aW9uVHlwZSwgY29uZmlndXJhdGlvbkxp
c3QsIGJ1aWxkZXJzLCBidWlsZGVyTmFtZVRvSURNYXApCiAgICAgewogICAgICAgICBjb25zdCBy
ZXNvbHZlZENvbmZpZ3VyYXRpb25zID0gW107CiAgICAgICAgIGxldCBjb25maWd1cmF0aW9uSW5k
ZXggPSAwOwpAQCAtMzg4LDYgKzM5MCw4IEBAIGNsYXNzIEJ1aWxkYm90U3luY2VyIHsKICAgICAg
ICAgICAgICAgICBjb25zdCBtYXRjaGluZ0J1aWxkZXIgPSBidWlsZGVyc1tidWlsZGVyS2V5XTsK
ICAgICAgICAgICAgICAgICBhc3NlcnQobWF0Y2hpbmdCdWlsZGVyLCBgIiR7YnVpbGRlcktleX0i
IGlzIG5vdCBhIHZhbGlkIGJ1aWxkZXIgaW4gdGhlIGNvbmZpZ3VyYXRpb25gKTsKICAgICAgICAg
ICAgICAgICBhc3NlcnQoJ2J1aWxkZXInIGluIG1hdGNoaW5nQnVpbGRlciwgYEJ1aWxkZXIgJHti
dWlsZGVyS2V5fSBkb2VzIG5vdCBzcGVjaWZ5IGEgYnVpbGRib3QgYnVpbGRlciBuYW1lYCk7Cisg
ICAgICAgICAgICAgICAgYXNzZXJ0KG1hdGNoaW5nQnVpbGRlci5idWlsZGVyIGluIGJ1aWxkZXJO
YW1lVG9JRE1hcCwgYEJ1aWxkZXIgJHttYXRjaGluZ0J1aWxkZXIuYnVpbGRlcn0gbm90IGZvdW5k
IGluIEJ1aWxkYm90IGNvbmZpZ3VyYXRpb24uYCk7CisgICAgICAgICAgICAgICAgbWF0Y2hpbmdC
dWlsZGVyWydidWlsZGVySUQnXSA9IGJ1aWxkZXJOYW1lVG9JRE1hcFttYXRjaGluZ0J1aWxkZXIu
YnVpbGRlcl07CiAgICAgICAgICAgICAgICAgY29uc3QgYnVpbGRlckNvbmZpZyA9IHRoaXMuX3Zh
bGlkYXRlQW5kTWVyZ2VDb25maWcoe30sIG1hdGNoaW5nQnVpbGRlcik7CiAgICAgICAgICAgICAg
ICAgZm9yIChjb25zdCBwbGF0Zm9ybU5hbWUgb2YgZW50cnlbJ3BsYXRmb3JtcyddKSB7CiAgICAg
ICAgICAgICAgICAgICAgIGNvbnN0IHBsYXRmb3JtID0gUGxhdGZvcm0uZmluZEJ5TmFtZShwbGF0
Zm9ybU5hbWUpOwpAQCAtNTY1LDYgKzU2OSwxMCBAQCBjbGFzcyBCdWlsZGJvdFN5bmNlciB7CiAg
ICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHR5cGVvZih2YWx1ZSksICdzdHJpbmcnLCBgJHtu
YW1lfSBzaG91bGQgYmUgb2Ygc3RyaW5nIHR5cGVgKTsKICAgICAgICAgICAgICAgICBjb25maWdb
bmFtZV0gPSB2YWx1ZTsKICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIGNhc2Ug
J2J1aWxkZXJJRCc6CisgICAgICAgICAgICAgICAgYXNzZXJ0KHZhbHVlLCAnYnVpbGRlcklEIHNo
b3VsZCBub3QgYmUgdW5kZWZpbmVkLicpOworICAgICAgICAgICAgICAgIGNvbmZpZ1tuYW1lXSA9
IHZhbHVlOworICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgZGVmYXVsdDoKICAg
ICAgICAgICAgICAgICBhc3NlcnQoZmFsc2UsIGBVbnJlY29nbml6ZWQgcGFyYW1ldGVyICIke25h
bWV9ImApOwogICAgICAgICAgICAgfQpJbmRleDogV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL3Rv
b2xzL2pzL2J1aWxkYm90LXRyaWdnZXJhYmxlLmpzCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYnNpdGVzL3Bl
cmYud2Via2l0Lm9yZy90b29scy9qcy9idWlsZGJvdC10cmlnZ2VyYWJsZS5qcwkocmV2aXNpb24g
MjI3MTc2KQorKysgV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL3Rvb2xzL2pzL2J1aWxkYm90LXRy
aWdnZXJhYmxlLmpzCSh3b3JraW5nIGNvcHkpCkBAIC0yNywxMSArMjcsMzYgQEAgY2xhc3MgQnVp
bGRib3RUcmlnZ2VyYWJsZSB7CiAgICAgICAgIHRoaXMuX2xvZ2dlciA9IGxvZ2dlciB8fCB7bG9n
OiAoKSA9PiB7IH0sIGVycm9yOiAoKSA9PiB7IH19OwogICAgIH0KIAorICAgIC8vIFRoaXMgbWV0
aG9kIGhhbmRsZXMgQnVpbGRib3QgMC45IGRhdGEgZm9ybWF0CisgICAgZ2V0QnVpbGRlck5hbWVU
b0lETWFwKCkKKyAgICB7CisgICAgICAgIHJldHVybiB0aGlzLl9idWlsZGJvdFJlbW90ZS5nZXRK
U09OKCIvYXBpL3YyL2J1aWxkZXJzIikudGhlbigoY29udGVudCkgPT4geworICAgICAgICAgICAg
YXNzZXJ0KGNvbnRlbnQuYnVpbGRlcnMgaW5zdGFuY2VvZiBBcnJheSk7CisKKyAgICAgICAgICAg
IGNvbnN0IGJ1aWxkZXJOYW1lVG9JRE1hcCA9IHt9OworICAgICAgICAgICAgZm9yIChjb25zdCBi
dWlsZGVyIG9mIGNvbnRlbnQuYnVpbGRlcnMpCisgICAgICAgICAgICAgICAgYnVpbGRlck5hbWVU
b0lETWFwW2J1aWxkZXIubmFtZV0gPSBidWlsZGVyLmJ1aWxkZXJpZDsKKworICAgICAgICAgICAg
cmV0dXJuIGJ1aWxkZXJOYW1lVG9JRE1hcDsKKyAgICAgICAgfSk7CisgICAgfQorCisgICAgLy8g
VGhpcyBtZXRob2QgaGFuZGxlcyBCdWlsZGJvdCAwLjggZGF0YSBmb3JtYXQKKyAgICBnZXRCdWls
ZGVyTmFtZVRvSURNYXBEZXByZWNhdGVkKCkKKyAgICB7CisgICAgICAgIHJldHVybiB0aGlzLl9i
dWlsZGJvdFJlbW90ZS5nZXRKU09OKCIvanNvbi9idWlsZGVycyIpLnRoZW4oKGNvbnRlbnQpID0+
IHsKKyAgICAgICAgICAgIGNvbnN0IGJ1aWxkZXJOYW1lVG9JRE1hcCA9IHt9OworICAgICAgICAg
ICAgZm9yIChsZXQgYnVpbGRlciBpbiBjb250ZW50KQorICAgICAgICAgICAgICAgIGJ1aWxkZXJO
YW1lVG9JRE1hcFtidWlsZGVyXSA9IGJ1aWxkZXI7CisKKyAgICAgICAgICAgIHJldHVybiBidWls
ZGVyTmFtZVRvSURNYXA7CisgICAgICAgIH0pOworICAgIH0KKwogICAgIGluaXRTeW5jZXJzKCkK
ICAgICB7Ci0gICAgICAgIHJldHVybiBuZXcgUHJvbWlzZSgocmVzb2x2ZSwgcmVqZWN0KSA9PiB7
Ci0gICAgICAgICAgICB0aGlzLl9zeW5jZXJzID0gQnVpbGRib3RTeW5jZXIuX2xvYWRDb25maWco
dGhpcy5fYnVpbGRib3RSZW1vdGUsIHRoaXMuX2NvbmZpZyk7Ci0gICAgICAgICAgICBzZXRUaW1l
b3V0KHJlc29sdmUsIDApOworICAgICAgICByZXR1cm4gdGhpcy5nZXRCdWlsZGVyTmFtZVRvSURN
YXBEZXByZWNhdGVkKCkudGhlbigoYnVpbGRlck5hbWVUb0lETWFwKSA9PiB7CisgICAgICAgICAg
ICB0aGlzLl9zeW5jZXJzID0gQnVpbGRib3RTeW5jZXIuX2xvYWRDb25maWcodGhpcy5fYnVpbGRi
b3RSZW1vdGUsIHRoaXMuX2NvbmZpZywgYnVpbGRlck5hbWVUb0lETWFwKTsKICAgICAgICAgfSk7
CiAgICAgfQogCkluZGV4OiBXZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvdW5pdC10ZXN0cy9idWls
ZGJvdC1zeW5jZXItdGVzdHMuanMKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2Vic2l0ZXMvcGVyZi53ZWJraXQu
b3JnL3VuaXQtdGVzdHMvYnVpbGRib3Qtc3luY2VyLXRlc3RzLmpzCShyZXZpc2lvbiAyMjcxNzYp
CisrKyBXZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvdW5pdC10ZXN0cy9idWlsZGJvdC1zeW5jZXIt
dGVzdHMuanMJKHdvcmtpbmcgY29weSkKQEAgLTE0Myw2ICsxNDMsMTkgQEAgZnVuY3Rpb24gc21h
bGxDb25maWd1cmF0aW9uKCkKICAgICB9OwogfQogCitmdW5jdGlvbiBidWlsZGVyTmFtZVRvSURN
YXAoKQoreworICAgIHJldHVybiB7CisgICAgICAgICdzb21lIGJ1aWxkZXInIDogJzEwMCcsCisg
ICAgICAgICdBQlRlc3QtaVBob25lLVJ1bkJlbmNobWFyay1UZXN0cyc6ICcxMDEnLAorICAgICAg
ICAnQUJUZXN0LWlQYWQtUnVuQmVuY2htYXJrLVRlc3RzJzogJzEwMicsCisgICAgICAgICdBQlRl
c3QtaU9TLUJ1aWxkZXInOiAnMTAzJywKKyAgICAgICAgJ2lQaG9uZSBBQiBUZXN0cycgOiAnMTA0
JywKKyAgICAgICAgJ2lQaG9uZSAyIEFCIFRlc3RzJzogJzEwNScsCisgICAgICAgICdpUGFkIEFC
IFRlc3RzJzogJzEwNicKKyAgICB9ICAgIAorfQorCiBmdW5jdGlvbiBzbWFsbFBlbmRpbmdCdWls
ZCgpCiB7CiAgICAgcmV0dXJuIHsKQEAgLTQ3NywzOSArNDkwLDM5IEBAIGRlc2NyaWJlKCdCdWls
ZGJvdFN5bmNlcicsICgpID0+IHsKICAgICBkZXNjcmliZSgnX2xvYWRDb25maWcnLCAoKSA9PiB7
CiAKICAgICAgICAgaXQoJ3Nob3VsZCBjcmVhdGUgQnVpbGRib3RTeW5jZXIgb2JqZWN0cyBmb3Ig
YSBjb25maWd1cmF0aW9uIHRoYXQgc3BlY2lmeSBhbGwgcmVxdWlyZWQgb3B0aW9ucycsICgpID0+
IHsKLSAgICAgICAgICAgIGFzc2VydC5lcXVhbChCdWlsZGJvdFN5bmNlci5fbG9hZENvbmZpZyhN
b2NrUmVtb3RlQVBJLCBzbWFsbENvbmZpZ3VyYXRpb24oKSkubGVuZ3RoLCAxKTsKKyAgICAgICAg
ICAgIGFzc2VydC5lcXVhbChCdWlsZGJvdFN5bmNlci5fbG9hZENvbmZpZyhNb2NrUmVtb3RlQVBJ
LCBzbWFsbENvbmZpZ3VyYXRpb24oKSwgYnVpbGRlck5hbWVUb0lETWFwKCkpLmxlbmd0aCwgMSk7
CiAgICAgICAgIH0pOwogCiAgICAgICAgIGl0KCdzaG91bGQgdGhyb3cgd2hlbiBzb21lIHJlcXVp
cmVkIG9wdGlvbnMgYXJlIG1pc3NpbmcnLCAoKSA9PiB7CiAgICAgICAgICAgICBhc3NlcnQudGhy
b3dzKCgpID0+IHsKICAgICAgICAgICAgICAgICBjb25zdCBjb25maWcgPSBzbWFsbENvbmZpZ3Vy
YXRpb24oKTsKICAgICAgICAgICAgICAgICBkZWxldGUgY29uZmlnLmJ1aWxkZXJzOwotICAgICAg
ICAgICAgICAgIEJ1aWxkYm90U3luY2VyLl9sb2FkQ29uZmlnKE1vY2tSZW1vdGVBUEksIGNvbmZp
Zyk7CisgICAgICAgICAgICAgICAgQnVpbGRib3RTeW5jZXIuX2xvYWRDb25maWcoTW9ja1JlbW90
ZUFQSSwgY29uZmlnLCBidWlsZGVyTmFtZVRvSURNYXAoKSk7CiAgICAgICAgICAgICB9LCAvInNv
bWUtYnVpbGRlciIgaXMgbm90IGEgdmFsaWQgYnVpbGRlciBpbiB0aGUgY29uZmlndXJhdGlvbi8p
OwogICAgICAgICAgICAgYXNzZXJ0LnRocm93cygoKSA9PiB7CiAgICAgICAgICAgICAgICAgY29u
c3QgY29uZmlnID0gc21hbGxDb25maWd1cmF0aW9uKCk7CiAgICAgICAgICAgICAgICAgZGVsZXRl
IGNvbmZpZy50eXBlczsKLSAgICAgICAgICAgICAgICBCdWlsZGJvdFN5bmNlci5fbG9hZENvbmZp
ZyhNb2NrUmVtb3RlQVBJLCBjb25maWcpOworICAgICAgICAgICAgICAgIEJ1aWxkYm90U3luY2Vy
Ll9sb2FkQ29uZmlnKE1vY2tSZW1vdGVBUEksIGNvbmZpZywgYnVpbGRlck5hbWVUb0lETWFwKCkp
OwogICAgICAgICAgICAgfSwgLyJzb21lLXRlc3QiIGlzIG5vdCBhIHZhbGlkIHR5cGUgaW4gdGhl
IGNvbmZpZ3VyYXRpb24vKTsKICAgICAgICAgICAgIGFzc2VydC50aHJvd3MoKCkgPT4gewogICAg
ICAgICAgICAgICAgIGNvbnN0IGNvbmZpZyA9IHNtYWxsQ29uZmlndXJhdGlvbigpOwogICAgICAg
ICAgICAgICAgIGRlbGV0ZSBjb25maWcudGVzdENvbmZpZ3VyYXRpb25zWzBdLmJ1aWxkZXJzOwot
ICAgICAgICAgICAgICAgIEJ1aWxkYm90U3luY2VyLl9sb2FkQ29uZmlnKE1vY2tSZW1vdGVBUEks
IGNvbmZpZyk7CisgICAgICAgICAgICAgICAgQnVpbGRib3RTeW5jZXIuX2xvYWRDb25maWcoTW9j
a1JlbW90ZUFQSSwgY29uZmlnLCBidWlsZGVyTmFtZVRvSURNYXAoKSk7CiAgICAgICAgICAgICB9
LCAvVGhlIHRlc3QgY29uZmlndXJhdGlvbiAxIGRvZXMgbm90IHNwZWNpZnkgImJ1aWxkZXJzIiBh
cyBhbiBhcnJheS8pOwogICAgICAgICAgICAgYXNzZXJ0LnRocm93cygoKSA9PiB7CiAgICAgICAg
ICAgICAgICAgY29uc3QgY29uZmlnID0gc21hbGxDb25maWd1cmF0aW9uKCk7CiAgICAgICAgICAg
ICAgICAgZGVsZXRlIGNvbmZpZy50ZXN0Q29uZmlndXJhdGlvbnNbMF0ucGxhdGZvcm1zOwotICAg
ICAgICAgICAgICAgIEJ1aWxkYm90U3luY2VyLl9sb2FkQ29uZmlnKE1vY2tSZW1vdGVBUEksIGNv
bmZpZyk7CisgICAgICAgICAgICAgICAgQnVpbGRib3RTeW5jZXIuX2xvYWRDb25maWcoTW9ja1Jl
bW90ZUFQSSwgY29uZmlnLCBidWlsZGVyTmFtZVRvSURNYXAoKSk7CiAgICAgICAgICAgICB9LCAv
VGhlIHRlc3QgY29uZmlndXJhdGlvbiAxIGRvZXMgbm90IHNwZWNpZnkgInBsYXRmb3JtcyIgYXMg
YW4gYXJyYXkvKTsKICAgICAgICAgICAgIGFzc2VydC50aHJvd3MoKCkgPT4gewogICAgICAgICAg
ICAgICAgIGNvbnN0IGNvbmZpZyA9IHNtYWxsQ29uZmlndXJhdGlvbigpOwogICAgICAgICAgICAg
ICAgIGRlbGV0ZSBjb25maWcudGVzdENvbmZpZ3VyYXRpb25zWzBdLnR5cGVzOwotICAgICAgICAg
ICAgICAgIEJ1aWxkYm90U3luY2VyLl9sb2FkQ29uZmlnKE1vY2tSZW1vdGVBUEksIGNvbmZpZyk7
CisgICAgICAgICAgICAgICAgQnVpbGRib3RTeW5jZXIuX2xvYWRDb25maWcoTW9ja1JlbW90ZUFQ
SSwgY29uZmlnLCBidWlsZGVyTmFtZVRvSURNYXAoKSk7CiAgICAgICAgICAgICB9LCAvVGhlIHRl
c3QgY29uZmlndXJhdGlvbiAwIGRvZXMgbm90IHNwZWNpZnkgInR5cGVzIiBhcyBhbiBhcnJheS8p
OwogICAgICAgICAgICAgYXNzZXJ0LnRocm93cygoKSA9PiB7CiAgICAgICAgICAgICAgICAgY29u
c3QgY29uZmlnID0gc21hbGxDb25maWd1cmF0aW9uKCk7CiAgICAgICAgICAgICAgICAgZGVsZXRl
IGNvbmZpZy5idWlsZFJlcXVlc3RBcmd1bWVudDsKLSAgICAgICAgICAgICAgICBCdWlsZGJvdFN5
bmNlci5fbG9hZENvbmZpZyhNb2NrUmVtb3RlQVBJLCBjb25maWcpOworICAgICAgICAgICAgICAg
IEJ1aWxkYm90U3luY2VyLl9sb2FkQ29uZmlnKE1vY2tSZW1vdGVBUEksIGNvbmZpZywgYnVpbGRl
ck5hbWVUb0lETWFwKCkpOwogICAgICAgICAgICAgfSwgL2J1aWxkUmVxdWVzdEFyZ3VtZW50IG11
c3Qgc3BlY2lmeSB0aGUgbmFtZSBvZiB0aGUgcHJvcGVydHkgdXNlZCB0byBzdG9yZSB0aGUgYnVp
bGQgcmVxdWVzdCBJRC8pOwogICAgICAgICB9KTsKIApAQCAtNTE3LDEyICs1MzAsMTIgQEAgZGVz
Y3JpYmUoJ0J1aWxkYm90U3luY2VyJywgKCkgPT4gewogICAgICAgICAgICAgYXNzZXJ0LnRocm93
cygoKSA9PiB7CiAgICAgICAgICAgICAgICAgY29uc3QgY29uZmlnID0gc21hbGxDb25maWd1cmF0
aW9uKCk7CiAgICAgICAgICAgICAgICAgY29uZmlnLnRlc3RDb25maWd1cmF0aW9uc1swXS50eXBl
cyA9ICdzb21lIHRlc3QnOwotICAgICAgICAgICAgICAgIEJ1aWxkYm90U3luY2VyLl9sb2FkQ29u
ZmlnKE1vY2tSZW1vdGVBUEksIGNvbmZpZyk7CisgICAgICAgICAgICAgICAgQnVpbGRib3RTeW5j
ZXIuX2xvYWRDb25maWcoTW9ja1JlbW90ZUFQSSwgY29uZmlnLCBidWlsZGVyTmFtZVRvSURNYXAo
KSk7CiAgICAgICAgICAgICB9LCAvVGhlIHRlc3QgY29uZmlndXJhdGlvbiAwIGRvZXMgbm90IHNw
ZWNpZnkgInR5cGVzIiBhcyBhbiBhcnJheS8pOwogICAgICAgICAgICAgYXNzZXJ0LnRocm93cygo
KSA9PiB7CiAgICAgICAgICAgICAgICAgY29uc3QgY29uZmlnID0gc21hbGxDb25maWd1cmF0aW9u
KCk7CiAgICAgICAgICAgICAgICAgY29uZmlnLnRlc3RDb25maWd1cmF0aW9uc1swXS50eXBlcyA9
IFsxXTsKLSAgICAgICAgICAgICAgICBCdWlsZGJvdFN5bmNlci5fbG9hZENvbmZpZyhNb2NrUmVt
b3RlQVBJLCBjb25maWcpOworICAgICAgICAgICAgICAgIEJ1aWxkYm90U3luY2VyLl9sb2FkQ29u
ZmlnKE1vY2tSZW1vdGVBUEksIGNvbmZpZywgYnVpbGRlck5hbWVUb0lETWFwKCkpOwogICAgICAg
ICAgICAgfSwgLyIxIiBpcyBub3QgYSB2YWxpZCB0eXBlIGluIHRoZSBjb25maWd1cmF0aW9uLyk7
CiAgICAgICAgIH0pOwogCkBAIC01MzAsMTIgKzU0MywxMiBAQCBkZXNjcmliZSgnQnVpbGRib3RT
eW5jZXInLCAoKSA9PiB7CiAgICAgICAgICAgICBhc3NlcnQudGhyb3dzKCgpID0+IHsKICAgICAg
ICAgICAgICAgICBjb25zdCBjb25maWcgPSBzbWFsbENvbmZpZ3VyYXRpb24oKTsKICAgICAgICAg
ICAgICAgICBjb25maWcuYnVpbGRlcnNbT2JqZWN0LmtleXMoY29uZmlnLmJ1aWxkZXJzKVswXV0u
cHJvcGVydGllcyA9ICdoZWxsbyc7Ci0gICAgICAgICAgICAgICAgQnVpbGRib3RTeW5jZXIuX2xv
YWRDb25maWcoTW9ja1JlbW90ZUFQSSwgY29uZmlnKTsKKyAgICAgICAgICAgICAgICBCdWlsZGJv
dFN5bmNlci5fbG9hZENvbmZpZyhNb2NrUmVtb3RlQVBJLCBjb25maWcsIGJ1aWxkZXJOYW1lVG9J
RE1hcCgpKTsKICAgICAgICAgICAgIH0sIC9CdWlsZCBwcm9wZXJ0aWVzIHNob3VsZCBiZSBhIGRp
Y3Rpb25hcnkvKTsKICAgICAgICAgICAgIGFzc2VydC50aHJvd3MoKCkgPT4gewogICAgICAgICAg
ICAgICAgIGNvbnN0IGNvbmZpZyA9IHNtYWxsQ29uZmlndXJhdGlvbigpOwogICAgICAgICAgICAg
ICAgIGNvbmZpZy50eXBlc1tPYmplY3Qua2V5cyhjb25maWcudHlwZXMpWzBdXS5wcm9wZXJ0aWVz
ID0gJ2hlbGxvJzsKLSAgICAgICAgICAgICAgICBCdWlsZGJvdFN5bmNlci5fbG9hZENvbmZpZyhN
b2NrUmVtb3RlQVBJLCBjb25maWcpOworICAgICAgICAgICAgICAgIEJ1aWxkYm90U3luY2VyLl9s
b2FkQ29uZmlnKE1vY2tSZW1vdGVBUEksIGNvbmZpZywgYnVpbGRlck5hbWVUb0lETWFwKCkpOwog
ICAgICAgICAgICAgfSwgL0J1aWxkIHByb3BlcnRpZXMgc2hvdWxkIGJlIGEgZGljdGlvbmFyeS8p
OwogICAgICAgICB9KTsKIApAQCAtNTQ0LDEzICs1NTcsMTMgQEAgZGVzY3JpYmUoJ0J1aWxkYm90
U3luY2VyJywgKCkgPT4gewogICAgICAgICAgICAgICAgIGNvbnN0IGNvbmZpZyA9IHNtYWxsQ29u
ZmlndXJhdGlvbigpOwogICAgICAgICAgICAgICAgIGNvbnN0IGZpcnN0VHlwZSA9IE9iamVjdC5r
ZXlzKGNvbmZpZy50eXBlcylbMF07CiAgICAgICAgICAgICAgICAgY29uZmlnLnR5cGVzW2ZpcnN0
VHlwZV0udGVzdFByb3BlcnRpZXMgPSB7fTsKLSAgICAgICAgICAgICAgICBCdWlsZGJvdFN5bmNl
ci5fbG9hZENvbmZpZyhNb2NrUmVtb3RlQVBJLCBjb25maWcpOworICAgICAgICAgICAgICAgIEJ1
aWxkYm90U3luY2VyLl9sb2FkQ29uZmlnKE1vY2tSZW1vdGVBUEksIGNvbmZpZywgYnVpbGRlck5h
bWVUb0lETWFwKCkpOwogICAgICAgICAgICAgfSwgL1VucmVjb2duaXplZCBwYXJhbWV0ZXIgInRl
c3RQcm9wZXJ0aWVzIi8pOwogICAgICAgICAgICAgYXNzZXJ0LnRocm93cygoKSA9PiB7CiAgICAg
ICAgICAgICAgICAgY29uc3QgY29uZmlnID0gc21hbGxDb25maWd1cmF0aW9uKCk7CiAgICAgICAg
ICAgICAgICAgY29uc3QgZmlyc3RCdWlsZGVyID0gT2JqZWN0LmtleXMoY29uZmlnLmJ1aWxkZXJz
KVswXTsKICAgICAgICAgICAgICAgICBjb25maWcuYnVpbGRlcnNbZmlyc3RCdWlsZGVyXS50ZXN0
UHJvcGVydGllcyA9IHt9OwotICAgICAgICAgICAgICAgIEJ1aWxkYm90U3luY2VyLl9sb2FkQ29u
ZmlnKE1vY2tSZW1vdGVBUEksIGNvbmZpZyk7CisgICAgICAgICAgICAgICAgQnVpbGRib3RTeW5j
ZXIuX2xvYWRDb25maWcoTW9ja1JlbW90ZUFQSSwgY29uZmlnLCBidWlsZGVyTmFtZVRvSURNYXAo
KSk7CiAgICAgICAgICAgICB9LCAvVW5yZWNvZ25pemVkIHBhcmFtZXRlciAidGVzdFByb3BlcnRp
ZXMiLyk7CiAgICAgICAgIH0pOwogCkBAIC01NTksMTMgKzU3MiwxMyBAQCBkZXNjcmliZSgnQnVp
bGRib3RTeW5jZXInLCAoKSA9PiB7CiAgICAgICAgICAgICAgICAgY29uc3QgY29uZmlnID0gc21h
bGxDb25maWd1cmF0aW9uKCk7CiAgICAgICAgICAgICAgICAgY29uc3QgZmlyc3RUeXBlID0gT2Jq
ZWN0LmtleXMoY29uZmlnLnR5cGVzKVswXTsKICAgICAgICAgICAgICAgICBjb25maWcudHlwZXNb
Zmlyc3RUeXBlXS5idWlsZFByb3BlcnRpZXMgPSB7fTsKLSAgICAgICAgICAgICAgICBCdWlsZGJv
dFN5bmNlci5fbG9hZENvbmZpZyhNb2NrUmVtb3RlQVBJLCBjb25maWcpOworICAgICAgICAgICAg
ICAgIEJ1aWxkYm90U3luY2VyLl9sb2FkQ29uZmlnKE1vY2tSZW1vdGVBUEksIGNvbmZpZywgYnVp
bGRlck5hbWVUb0lETWFwKCkpOwogICAgICAgICAgICAgfSwgL1VucmVjb2duaXplZCBwYXJhbWV0
ZXIgImJ1aWxkUHJvcGVydGllcyIvKTsKICAgICAgICAgICAgIGFzc2VydC50aHJvd3MoKCkgPT4g
ewogICAgICAgICAgICAgICAgIGNvbnN0IGNvbmZpZyA9IHNtYWxsQ29uZmlndXJhdGlvbigpOwog
ICAgICAgICAgICAgICAgIGNvbnN0IGZpcnN0QnVpbGRlciA9IE9iamVjdC5rZXlzKGNvbmZpZy5i
dWlsZGVycylbMF07CiAgICAgICAgICAgICAgICAgY29uZmlnLmJ1aWxkZXJzW2ZpcnN0QnVpbGRl
cl0uYnVpbGRQcm9wZXJ0aWVzID0ge307Ci0gICAgICAgICAgICAgICAgQnVpbGRib3RTeW5jZXIu
X2xvYWRDb25maWcoTW9ja1JlbW90ZUFQSSwgY29uZmlnKTsKKyAgICAgICAgICAgICAgICBCdWls
ZGJvdFN5bmNlci5fbG9hZENvbmZpZyhNb2NrUmVtb3RlQVBJLCBjb25maWcsIGJ1aWxkZXJOYW1l
VG9JRE1hcCgpKTsKICAgICAgICAgICAgIH0sIC9VbnJlY29nbml6ZWQgcGFyYW1ldGVyICJidWls
ZFByb3BlcnRpZXMiLyk7CiAgICAgICAgIH0pOwogCkBAIC01NzQsMjcgKzU4NywyNyBAQCBkZXNj
cmliZSgnQnVpbGRib3RTeW5jZXInLCAoKSA9PiB7CiAgICAgICAgICAgICBhc3NlcnQudGhyb3dz
KCgpID0+IHsKICAgICAgICAgICAgICAgICBjb25zdCBjb25maWcgPSBzbWFsbENvbmZpZ3VyYXRp
b24oKTsKICAgICAgICAgICAgICAgICBjb25maWcudHlwZXNbZmlyc3RUeXBlXS5wcm9wZXJ0aWVz
ID0gJ2hlbGxvJzsKLSAgICAgICAgICAgICAgICBCdWlsZGJvdFN5bmNlci5fbG9hZENvbmZpZyhN
b2NrUmVtb3RlQVBJLCBjb25maWcpOworICAgICAgICAgICAgICAgIEJ1aWxkYm90U3luY2VyLl9s
b2FkQ29uZmlnKE1vY2tSZW1vdGVBUEksIGNvbmZpZywgYnVpbGRlck5hbWVUb0lETWFwKCkpOwog
ICAgICAgICAgICAgfSwgL0J1aWxkIHByb3BlcnRpZXMgc2hvdWxkIGJlIGEgZGljdGlvbmFyeS8p
OwogICAgICAgICAgICAgYXNzZXJ0LnRocm93cygoKSA9PiB7CiAgICAgICAgICAgICAgICAgY29u
c3QgY29uZmlnID0gc21hbGxDb25maWd1cmF0aW9uKCk7CiAgICAgICAgICAgICAgICAgY29uZmln
LnR5cGVzW2ZpcnN0VHlwZV0ucHJvcGVydGllcyA9IHsnc29tZSc6IHsnb3RoZXJLZXknOiAnc29t
ZSByb290J319OwotICAgICAgICAgICAgICAgIEJ1aWxkYm90U3luY2VyLl9sb2FkQ29uZmlnKFJl
bW90ZUFQSSwgY29uZmlnKTsKKyAgICAgICAgICAgICAgICBCdWlsZGJvdFN5bmNlci5fbG9hZENv
bmZpZyhSZW1vdGVBUEksIGNvbmZpZywgYnVpbGRlck5hbWVUb0lETWFwKCkpOwogICAgICAgICAg
ICAgfSwgL0J1aWxkIHByb3BlcnRpZXMgInNvbWUiIHNwZWNpZmllcyBhIG5vbi1zdHJpbmcgdmFs
dWUgb2YgdHlwZSAib2JqZWN0Ii8pOwogICAgICAgICAgICAgYXNzZXJ0LnRocm93cygoKSA9PiB7
CiAgICAgICAgICAgICAgICAgY29uc3QgY29uZmlnID0gc21hbGxDb25maWd1cmF0aW9uKCk7CiAg
ICAgICAgICAgICAgICAgY29uZmlnLnR5cGVzW2ZpcnN0VHlwZV0ucHJvcGVydGllcyA9IHsnc29t
ZSc6IHsnb3RoZXJLZXknOiAnc29tZSByb290J319OwotICAgICAgICAgICAgICAgIEJ1aWxkYm90
U3luY2VyLl9sb2FkQ29uZmlnKFJlbW90ZUFQSSwgY29uZmlnKTsKKyAgICAgICAgICAgICAgICBC
dWlsZGJvdFN5bmNlci5fbG9hZENvbmZpZyhSZW1vdGVBUEksIGNvbmZpZywgYnVpbGRlck5hbWVU
b0lETWFwKCkpOwogICAgICAgICAgICAgfSwgL0J1aWxkIHByb3BlcnRpZXMgInNvbWUiIHNwZWNp
ZmllcyBhIG5vbi1zdHJpbmcgdmFsdWUgb2YgdHlwZSAib2JqZWN0Ii8pOwogICAgICAgICAgICAg
YXNzZXJ0LnRocm93cygoKSA9PiB7CiAgICAgICAgICAgICAgICAgY29uc3QgY29uZmlnID0gc21h
bGxDb25maWd1cmF0aW9uKCk7CiAgICAgICAgICAgICAgICAgY29uZmlnLnR5cGVzW2ZpcnN0VHlw
ZV0ucHJvcGVydGllcyA9IHsnc29tZSc6IHsncmV2aXNpb24nOiAnV2ViS2l0J319OwotICAgICAg
ICAgICAgICAgIEJ1aWxkYm90U3luY2VyLl9sb2FkQ29uZmlnKFJlbW90ZUFQSSwgY29uZmlnKTsK
KyAgICAgICAgICAgICAgICBCdWlsZGJvdFN5bmNlci5fbG9hZENvbmZpZyhSZW1vdGVBUEksIGNv
bmZpZywgYnVpbGRlck5hbWVUb0lETWFwKCkpOwogICAgICAgICAgICAgfSwgL0J1aWxkIHByb3Bl
cnRpZXMgInNvbWUiIHNwZWNpZmllcyBhIG5vbi1zdHJpbmcgdmFsdWUgb2YgdHlwZSAib2JqZWN0
Ii8pOwogICAgICAgICAgICAgYXNzZXJ0LnRocm93cygoKSA9PiB7CiAgICAgICAgICAgICAgICAg
Y29uc3QgY29uZmlnID0gc21hbGxDb25maWd1cmF0aW9uKCk7CiAgICAgICAgICAgICAgICAgY29u
ZmlnLnR5cGVzW2ZpcnN0VHlwZV0ucHJvcGVydGllcyA9IHsnc29tZSc6IDF9OwotICAgICAgICAg
ICAgICAgIEJ1aWxkYm90U3luY2VyLl9sb2FkQ29uZmlnKFJlbW90ZUFQSSwgY29uZmlnKTsKKyAg
ICAgICAgICAgICAgICBCdWlsZGJvdFN5bmNlci5fbG9hZENvbmZpZyhSZW1vdGVBUEksIGNvbmZp
ZywgYnVpbGRlck5hbWVUb0lETWFwKCkpOwogICAgICAgICAgICAgfSwgLyBCdWlsZCBwcm9wZXJ0
aWVzICJzb21lIiBzcGVjaWZpZXMgYSBub24tc3RyaW5nIHZhbHVlIG9mIHR5cGUgIm9iamVjdCIv
KTsKICAgICAgICAgfSk7CiAKQEAgLTYwMywzMiArNjE2LDMyIEBAIGRlc2NyaWJlKCdCdWlsZGJv
dFN5bmNlcicsICgpID0+IHsKICAgICAgICAgICAgIGFzc2VydC50aHJvd3MoKCkgPT4gewogICAg
ICAgICAgICAgICAgIGNvbnN0IGNvbmZpZyA9IHNtYWxsQ29uZmlndXJhdGlvbigpOwogICAgICAg
ICAgICAgICAgIGNvbmZpZy5idWlsZGVyc1tmaXJzdEJ1aWxkZXJdLnByb3BlcnRpZXMgPSAnaGVs
bG8nOwotICAgICAgICAgICAgICAgIEJ1aWxkYm90U3luY2VyLl9sb2FkQ29uZmlnKE1vY2tSZW1v
dGVBUEksIGNvbmZpZyk7CisgICAgICAgICAgICAgICAgQnVpbGRib3RTeW5jZXIuX2xvYWRDb25m
aWcoTW9ja1JlbW90ZUFQSSwgY29uZmlnLCBidWlsZGVyTmFtZVRvSURNYXAoKSk7CiAgICAgICAg
ICAgICB9LCAvQnVpbGQgcHJvcGVydGllcyBzaG91bGQgYmUgYSBkaWN0aW9uYXJ5Lyk7CiAgICAg
ICAgICAgICBhc3NlcnQudGhyb3dzKCgpID0+IHsKICAgICAgICAgICAgICAgICBjb25zdCBjb25m
aWcgPSBzbWFsbENvbmZpZ3VyYXRpb24oKTsKICAgICAgICAgICAgICAgICBjb25maWcuYnVpbGRl
cnNbZmlyc3RCdWlsZGVyXS5wcm9wZXJ0aWVzID0geydzb21lJzogeydvdGhlcktleSc6ICdzb21l
IHJvb3QnfX07Ci0gICAgICAgICAgICAgICAgQnVpbGRib3RTeW5jZXIuX2xvYWRDb25maWcoUmVt
b3RlQVBJLCBjb25maWcpOworICAgICAgICAgICAgICAgIEJ1aWxkYm90U3luY2VyLl9sb2FkQ29u
ZmlnKFJlbW90ZUFQSSwgY29uZmlnLCBidWlsZGVyTmFtZVRvSURNYXAoKSk7CiAgICAgICAgICAg
ICB9LCAvQnVpbGQgcHJvcGVydGllcyAic29tZSIgc3BlY2lmaWVzIGEgbm9uLXN0cmluZyB2YWx1
ZSBvZiB0eXBlICJvYmplY3QiLyk7CiAgICAgICAgICAgICBhc3NlcnQudGhyb3dzKCgpID0+IHsK
ICAgICAgICAgICAgICAgICBjb25zdCBjb25maWcgPSBzbWFsbENvbmZpZ3VyYXRpb24oKTsKICAg
ICAgICAgICAgICAgICBjb25maWcuYnVpbGRlcnNbZmlyc3RCdWlsZGVyXS5wcm9wZXJ0aWVzID0g
eydzb21lJzogeydvdGhlcktleSc6ICdzb21lIHJvb3QnfX07Ci0gICAgICAgICAgICAgICAgQnVp
bGRib3RTeW5jZXIuX2xvYWRDb25maWcoUmVtb3RlQVBJLCBjb25maWcpOworICAgICAgICAgICAg
ICAgIEJ1aWxkYm90U3luY2VyLl9sb2FkQ29uZmlnKFJlbW90ZUFQSSwgY29uZmlnLCBidWlsZGVy
TmFtZVRvSURNYXAoKSk7CiAgICAgICAgICAgICB9LCAvQnVpbGQgcHJvcGVydGllcyAic29tZSIg
c3BlY2lmaWVzIGEgbm9uLXN0cmluZyB2YWx1ZSBvZiB0eXBlICJvYmplY3QiLyk7CiAgICAgICAg
ICAgICBhc3NlcnQudGhyb3dzKCgpID0+IHsKICAgICAgICAgICAgICAgICBjb25zdCBjb25maWcg
PSBzbWFsbENvbmZpZ3VyYXRpb24oKTsKICAgICAgICAgICAgICAgICBjb25maWcuYnVpbGRlcnNb
Zmlyc3RCdWlsZGVyXS5wcm9wZXJ0aWVzID0geydzb21lJzogeydyZXZpc2lvbic6ICdXZWJLaXQn
fX07Ci0gICAgICAgICAgICAgICAgQnVpbGRib3RTeW5jZXIuX2xvYWRDb25maWcoUmVtb3RlQVBJ
LCBjb25maWcpOworICAgICAgICAgICAgICAgIEJ1aWxkYm90U3luY2VyLl9sb2FkQ29uZmlnKFJl
bW90ZUFQSSwgY29uZmlnLCBidWlsZGVyTmFtZVRvSURNYXAoKSk7CiAgICAgICAgICAgICB9LCAv
QnVpbGQgcHJvcGVydGllcyAic29tZSIgc3BlY2lmaWVzIGEgbm9uLXN0cmluZyB2YWx1ZSBvZiB0
eXBlICJvYmplY3QiLyk7CiAgICAgICAgICAgICBhc3NlcnQudGhyb3dzKCgpID0+IHsKICAgICAg
ICAgICAgICAgICBjb25zdCBjb25maWcgPSBzbWFsbENvbmZpZ3VyYXRpb24oKTsKICAgICAgICAg
ICAgICAgICBjb25maWcuYnVpbGRlcnNbZmlyc3RCdWlsZGVyXS5wcm9wZXJ0aWVzID0geydzb21l
JzogMX07Ci0gICAgICAgICAgICAgICAgQnVpbGRib3RTeW5jZXIuX2xvYWRDb25maWcoUmVtb3Rl
QVBJLCBjb25maWcpOworICAgICAgICAgICAgICAgIEJ1aWxkYm90U3luY2VyLl9sb2FkQ29uZmln
KFJlbW90ZUFQSSwgY29uZmlnLCBidWlsZGVyTmFtZVRvSURNYXAoKSk7CiAgICAgICAgICAgICB9
LCAvQnVpbGQgcHJvcGVydGllcyAic29tZSIgc3BlY2lmaWVzIGEgbm9uLXN0cmluZyB2YWx1ZSBv
ZiB0eXBlICJvYmplY3QiLyk7CiAgICAgICAgIH0pOwogCiAgICAgICAgIGl0KCdzaG91bGQgY3Jl
YXRlIEJ1aWxkYm90U3luY2VyIG9iamVjdHMgZm9yIHZhbGlkIGNvbmZpZ3VyYXRpb25zJywgKCkg
PT4gewotICAgICAgICAgICAgbGV0IHN5bmNlcnMgPSBCdWlsZGJvdFN5bmNlci5fbG9hZENvbmZp
ZyhSZW1vdGVBUEksIHNhbXBsZWlPU0NvbmZpZygpKTsKKyAgICAgICAgICAgIGxldCBzeW5jZXJz
ID0gQnVpbGRib3RTeW5jZXIuX2xvYWRDb25maWcoUmVtb3RlQVBJLCBzYW1wbGVpT1NDb25maWco
KSwgYnVpbGRlck5hbWVUb0lETWFwKCkpOwogICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHN5bmNl
cnMubGVuZ3RoLCAzKTsKICAgICAgICAgICAgIGFzc2VydC5vayhzeW5jZXJzWzBdIGluc3RhbmNl
b2YgQnVpbGRib3RTeW5jZXIpOwogICAgICAgICAgICAgYXNzZXJ0Lm9rKHN5bmNlcnNbMV0gaW5z
dGFuY2VvZiBCdWlsZGJvdFN5bmNlcik7CkBAIC02MzYsMTQgKzY0OSwxNCBAQCBkZXNjcmliZSgn
QnVpbGRib3RTeW5jZXInLCAoKSA9PiB7CiAgICAgICAgIH0pOwogCiAgICAgICAgIGl0KCdzaG91
bGQgcGFyc2UgYnVpbGRlciBuYW1lcyBjb3JyZWN0bHknLCAoKSA9PiB7Ci0gICAgICAgICAgICBs
ZXQgc3luY2VycyA9IEJ1aWxkYm90U3luY2VyLl9sb2FkQ29uZmlnKFJlbW90ZUFQSSwgc2FtcGxl
aU9TQ29uZmlnKCkpOworICAgICAgICAgICAgbGV0IHN5bmNlcnMgPSBCdWlsZGJvdFN5bmNlci5f
bG9hZENvbmZpZyhSZW1vdGVBUEksIHNhbXBsZWlPU0NvbmZpZygpLCBidWlsZGVyTmFtZVRvSURN
YXAoKSk7CiAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoc3luY2Vyc1swXS5idWlsZGVyTmFtZSgp
LCAnQUJUZXN0LWlQaG9uZS1SdW5CZW5jaG1hcmstVGVzdHMnKTsKICAgICAgICAgICAgIGFzc2Vy
dC5lcXVhbChzeW5jZXJzWzFdLmJ1aWxkZXJOYW1lKCksICdBQlRlc3QtaVBhZC1SdW5CZW5jaG1h
cmstVGVzdHMnKTsKICAgICAgICAgICAgIGFzc2VydC5lcXVhbChzeW5jZXJzWzJdLmJ1aWxkZXJO
YW1lKCksICdBQlRlc3QtaU9TLUJ1aWxkZXInKTsKICAgICAgICAgfSk7CiAKICAgICAgICAgaXQo
J3Nob3VsZCBwYXJzZSB0ZXN0IGNvbmZpZ3VyYXRpb25zIHdpdGggYnVpbGQgY29uZmlndXJhdGlv
bnMgY29ycmVjdGx5JywgKCkgPT4gewotICAgICAgICAgICAgbGV0IHN5bmNlcnMgPSBCdWlsZGJv
dFN5bmNlci5fbG9hZENvbmZpZyhSZW1vdGVBUEksIHNhbXBsZWlPU0NvbmZpZygpKTsKKyAgICAg
ICAgICAgIGxldCBzeW5jZXJzID0gQnVpbGRib3RTeW5jZXIuX2xvYWRDb25maWcoUmVtb3RlQVBJ
LCBzYW1wbGVpT1NDb25maWcoKSwgYnVpbGRlck5hbWVUb0lETWFwKCkpOwogCiAgICAgICAgICAg
ICBsZXQgY29uZmlndXJhdGlvbnMgPSBzeW5jZXJzWzBdLnRlc3RDb25maWd1cmF0aW9ucygpOwog
ICAgICAgICAgICAgYXNzZXJ0KHN5bmNlcnNbMF0uaXNUZXN0ZXIoKSk7CkBAIC02NzksMTIgKzY5
MiwxMiBAQCBkZXNjcmliZSgnQnVpbGRib3RTeW5jZXInLCAoKSA9PiB7CiAgICAgICAgICAgICBh
c3NlcnQudGhyb3dzKCgpID0+IHsKICAgICAgICAgICAgICAgICBjb25zdCBjb25maWcgPSBzYW1w
bGVpT1NDb25maWcoKTsKICAgICAgICAgICAgICAgICBjb25maWcuYnVpbGRDb25maWd1cmF0aW9u
c1swXS5idWlsZGVycyA9IGNvbmZpZy50ZXN0Q29uZmlndXJhdGlvbnNbMF0uYnVpbGRlcnM7Ci0g
ICAgICAgICAgICAgICAgQnVpbGRib3RTeW5jZXIuX2xvYWRDb25maWcoTW9ja1JlbW90ZUFQSSwg
Y29uZmlnKTsKKyAgICAgICAgICAgICAgICBCdWlsZGJvdFN5bmNlci5fbG9hZENvbmZpZyhNb2Nr
UmVtb3RlQVBJLCBjb25maWcsIGJ1aWxkZXJOYW1lVG9JRE1hcCgpKTsKICAgICAgICAgICAgIH0p
OwogICAgICAgICB9KTsKIAogICAgICAgICBpdCgnc2hvdWxkIHBhcnNlIHRlc3QgY29uZmlndXJh
dGlvbnMgd2l0aCB0eXBlcyBhbmQgcGxhdGZvcm1zIGV4cGFuc2lvbnMgY29ycmVjdGx5JywgKCkg
PT4gewotICAgICAgICAgICAgY29uc3Qgc3luY2VycyA9IEJ1aWxkYm90U3luY2VyLl9sb2FkQ29u
ZmlnKFJlbW90ZUFQSSwgc2FtcGxlaU9TQ29uZmlnV2l0aEV4cGFuc2lvbnMoKSk7CisgICAgICAg
ICAgICBjb25zdCBzeW5jZXJzID0gQnVpbGRib3RTeW5jZXIuX2xvYWRDb25maWcoUmVtb3RlQVBJ
LCBzYW1wbGVpT1NDb25maWdXaXRoRXhwYW5zaW9ucygpLCBidWlsZGVyTmFtZVRvSURNYXAoKSk7
CiAKICAgICAgICAgICAgIGFzc2VydC5lcXVhbChzeW5jZXJzLmxlbmd0aCwgMyk7CiAKQEAgLTcy
NSwxMiArNzM4LDEyIEBAIGRlc2NyaWJlKCdCdWlsZGJvdFN5bmNlcicsICgpID0+IHsKICAgICAg
ICAgICAgIGFzc2VydC50aHJvd3MoKCkgPT4gewogICAgICAgICAgICAgICAgIGNvbnN0IGNvbmZp
ZyA9IHNtYWxsQ29uZmlndXJhdGlvbigpOwogICAgICAgICAgICAgICAgIGNvbmZpZy5yZXBvc2l0
b3J5R3JvdXBzID0gMTsKLSAgICAgICAgICAgICAgICBCdWlsZGJvdFN5bmNlci5fbG9hZENvbmZp
ZyhNb2NrUmVtb3RlQVBJLCBjb25maWcpOworICAgICAgICAgICAgICAgIEJ1aWxkYm90U3luY2Vy
Ll9sb2FkQ29uZmlnKE1vY2tSZW1vdGVBUEksIGNvbmZpZywgYnVpbGRlck5hbWVUb0lETWFwKCkp
OwogICAgICAgICAgICAgfSwgL3JlcG9zaXRvcnlHcm91cHMgbXVzdCBzcGVjaWZ5IGEgZGljdGlv
bmFyeSBmcm9tIHRoZSBuYW1lIHRvIGl0cyBkZWZpbml0aW9uLyk7CiAgICAgICAgICAgICBhc3Nl
cnQudGhyb3dzKCgpID0+IHsKICAgICAgICAgICAgICAgICBjb25zdCBjb25maWcgPSBzbWFsbENv
bmZpZ3VyYXRpb24oKTsKICAgICAgICAgICAgICAgICBjb25maWcucmVwb3NpdG9yeUdyb3VwcyA9
ICdoZWxsbyc7Ci0gICAgICAgICAgICAgICAgQnVpbGRib3RTeW5jZXIuX2xvYWRDb25maWcoTW9j
a1JlbW90ZUFQSSwgY29uZmlnKTsKKyAgICAgICAgICAgICAgICBCdWlsZGJvdFN5bmNlci5fbG9h
ZENvbmZpZyhNb2NrUmVtb3RlQVBJLCBjb25maWcsIGJ1aWxkZXJOYW1lVG9JRE1hcCgpKTsKICAg
ICAgICAgICAgIH0sIC9yZXBvc2l0b3J5R3JvdXBzIG11c3Qgc3BlY2lmeSBhIGRpY3Rpb25hcnkg
ZnJvbSB0aGUgbmFtZSB0byBpdHMgZGVmaW5pdGlvbi8pOwogICAgICAgICB9KTsKIApAQCAtNzM4
LDEyICs3NTEsMTIgQEAgZGVzY3JpYmUoJ0J1aWxkYm90U3luY2VyJywgKCkgPT4gewogICAgICAg
ICAgICAgYXNzZXJ0LnRocm93cygoKSA9PiB7CiAgICAgICAgICAgICAgICAgY29uc3QgY29uZmln
ID0gc21hbGxDb25maWd1cmF0aW9uKCk7CiAgICAgICAgICAgICAgICAgY29uZmlnLnJlcG9zaXRv
cnlHcm91cHMgPSB7J3NvbWUtZ3JvdXAnOiB7dGVzdFByb3BlcnRpZXM6IHt9fX07Ci0gICAgICAg
ICAgICAgICAgQnVpbGRib3RTeW5jZXIuX2xvYWRDb25maWcoTW9ja1JlbW90ZUFQSSwgY29uZmln
KTsKKyAgICAgICAgICAgICAgICBCdWlsZGJvdFN5bmNlci5fbG9hZENvbmZpZyhNb2NrUmVtb3Rl
QVBJLCBjb25maWcsIGJ1aWxkZXJOYW1lVG9JRE1hcCgpKTsKICAgICAgICAgICAgIH0sIC9SZXBv
c2l0b3J5IGdyb3VwICJzb21lLWdyb3VwIiBkb2VzIG5vdCBzcGVjaWZ5IGEgZGljdGlvbmFyeSBv
ZiByZXBvc2l0b3JpZXMvKTsKICAgICAgICAgICAgIGFzc2VydC50aHJvd3MoKCkgPT4gewogICAg
ICAgICAgICAgICAgIGNvbnN0IGNvbmZpZyA9IHNtYWxsQ29uZmlndXJhdGlvbigpOwogICAgICAg
ICAgICAgICAgIGNvbmZpZy5yZXBvc2l0b3J5R3JvdXBzID0geydzb21lLWdyb3VwJzoge3JlcG9z
aXRvcmllczogMX0sIHRlc3RQcm9wZXJ0aWVzOiB7fX07Ci0gICAgICAgICAgICAgICAgQnVpbGRi
b3RTeW5jZXIuX2xvYWRDb25maWcoTW9ja1JlbW90ZUFQSSwgY29uZmlnKTsKKyAgICAgICAgICAg
ICAgICBCdWlsZGJvdFN5bmNlci5fbG9hZENvbmZpZyhNb2NrUmVtb3RlQVBJLCBjb25maWcsIGJ1
aWxkZXJOYW1lVG9JRE1hcCgpKTsKICAgICAgICAgICAgIH0sIC9SZXBvc2l0b3J5IGdyb3VwICJz
b21lLWdyb3VwIiBkb2VzIG5vdCBzcGVjaWZ5IGEgZGljdGlvbmFyeSBvZiByZXBvc2l0b3JpZXMv
KTsKICAgICAgICAgfSk7CiAKQEAgLTc1MSw3ICs3NjQsNyBAQCBkZXNjcmliZSgnQnVpbGRib3RT
eW5jZXInLCAoKSA9PiB7CiAgICAgICAgICAgICBhc3NlcnQudGhyb3dzKCgpID0+IHsKICAgICAg
ICAgICAgICAgICBjb25zdCBjb25maWcgPSBzbWFsbENvbmZpZ3VyYXRpb24oKTsKICAgICAgICAg
ICAgICAgICBjb25maWcucmVwb3NpdG9yeUdyb3VwcyA9IHsnc29tZS1ncm91cCc6IHtyZXBvc2l0
b3JpZXM6IHt9LCB0ZXN0UHJvcGVydGllczoge319fTsKLSAgICAgICAgICAgICAgICBCdWlsZGJv
dFN5bmNlci5fbG9hZENvbmZpZyhNb2NrUmVtb3RlQVBJLCBjb25maWcpOworICAgICAgICAgICAg
ICAgIEJ1aWxkYm90U3luY2VyLl9sb2FkQ29uZmlnKE1vY2tSZW1vdGVBUEksIGNvbmZpZywgYnVp
bGRlck5hbWVUb0lETWFwKCkpOwogICAgICAgICAgICAgfSwgL1JlcG9zaXRvcnkgZ3JvdXAgInNv
bWUtZ3JvdXAiIGRvZXMgbm90IHNwZWNpZnkgYW55IHJlcG9zaXRvcnkvKTsKICAgICAgICAgfSk7
CiAKQEAgLTc1OSw3ICs3NzIsNyBAQCBkZXNjcmliZSgnQnVpbGRib3RTeW5jZXInLCAoKSA9PiB7
CiAgICAgICAgICAgICBhc3NlcnQudGhyb3dzKCgpID0+IHsKICAgICAgICAgICAgICAgICBjb25z
dCBjb25maWcgPSBzbWFsbENvbmZpZ3VyYXRpb24oKTsKICAgICAgICAgICAgICAgICBjb25maWcu
cmVwb3NpdG9yeUdyb3VwcyA9IHsnc29tZS1ncm91cCc6IHtyZXBvc2l0b3JpZXM6IHsnSW52YWxp
ZFJlcG9zaXRvcnlOYW1lJzoge319fX07Ci0gICAgICAgICAgICAgICAgQnVpbGRib3RTeW5jZXIu
X2xvYWRDb25maWcoTW9ja1JlbW90ZUFQSSwgY29uZmlnKTsKKyAgICAgICAgICAgICAgICBCdWls
ZGJvdFN5bmNlci5fbG9hZENvbmZpZyhNb2NrUmVtb3RlQVBJLCBjb25maWcsIGJ1aWxkZXJOYW1l
VG9JRE1hcCgpKTsKICAgICAgICAgICAgIH0sIC8iSW52YWxpZFJlcG9zaXRvcnlOYW1lIiBpcyBu
b3QgYSB2YWxpZCByZXBvc2l0b3J5IG5hbWUvKTsKICAgICAgICAgfSk7CiAKQEAgLTc2Nyw3ICs3
ODAsNyBAQCBkZXNjcmliZSgnQnVpbGRib3RTeW5jZXInLCAoKSA9PiB7CiAgICAgICAgICAgICBh
c3NlcnQudGhyb3dzKCgpID0+IHsKICAgICAgICAgICAgICAgICBjb25zdCBjb25maWcgPSBzbWFs
bENvbmZpZ3VyYXRpb24oKTsKICAgICAgICAgICAgICAgICBjb25maWcucmVwb3NpdG9yeUdyb3Vw
cyA9IHsnc29tZS1ncm91cCc6IHtyZXBvc2l0b3JpZXM6IHsnV2ViS2l0JzogMX19fTsKLSAgICAg
ICAgICAgICAgICBCdWlsZGJvdFN5bmNlci5fbG9hZENvbmZpZyhNb2NrUmVtb3RlQVBJLCBjb25m
aWcpOworICAgICAgICAgICAgICAgIEJ1aWxkYm90U3luY2VyLl9sb2FkQ29uZmlnKE1vY2tSZW1v
dGVBUEksIGNvbmZpZywgYnVpbGRlck5hbWVUb0lETWFwKCkpOwogICAgICAgICAgICAgfSwgLyJX
ZWJLaXQiIHNwZWNpZmllcyBhIG5vbi1kaWN0aW9uYXJ5IHZhbHVlLyk7CiAgICAgICAgIH0pOwog
CkBAIC03NzUsMTIgKzc4OCwxMiBAQCBkZXNjcmliZSgnQnVpbGRib3RTeW5jZXInLCAoKSA9PiB7
CiAgICAgICAgICAgICBhc3NlcnQudGhyb3dzKCgpID0+IHsKICAgICAgICAgICAgICAgICBjb25z
dCBjb25maWcgPSBzbWFsbENvbmZpZ3VyYXRpb24oKTsKICAgICAgICAgICAgICAgICBjb25maWcu
cmVwb3NpdG9yeUdyb3VwcyA9IHsnc29tZS1ncm91cCc6IHtyZXBvc2l0b3JpZXM6IHsnV2ViS2l0
Jzoge319LCBkZXNjcmlwdGlvbjogMX19OwotICAgICAgICAgICAgICAgIEJ1aWxkYm90U3luY2Vy
Ll9sb2FkQ29uZmlnKE1vY2tSZW1vdGVBUEksIGNvbmZpZyk7CisgICAgICAgICAgICAgICAgQnVp
bGRib3RTeW5jZXIuX2xvYWRDb25maWcoTW9ja1JlbW90ZUFQSSwgY29uZmlnLCBidWlsZGVyTmFt
ZVRvSURNYXAoKSk7CiAgICAgICAgICAgICB9LCAvUmVwb3NpdG9yeSBncm91cCAic29tZS1ncm91
cCIgaGF2ZSBhbiBpbnZhbGlkIGRlc2NyaXB0aW9uLyk7CiAgICAgICAgICAgICBhc3NlcnQudGhy
b3dzKCgpID0+IHsKICAgICAgICAgICAgICAgICBjb25zdCBjb25maWcgPSBzbWFsbENvbmZpZ3Vy
YXRpb24oKTsKICAgICAgICAgICAgICAgICBjb25maWcucmVwb3NpdG9yeUdyb3VwcyA9IHsnc29t
ZS1ncm91cCc6IHtyZXBvc2l0b3JpZXM6IHsnV2ViS2l0Jzoge319LCBkZXNjcmlwdGlvbjogWzEs
IDJdfX07Ci0gICAgICAgICAgICAgICAgQnVpbGRib3RTeW5jZXIuX2xvYWRDb25maWcoTW9ja1Jl
bW90ZUFQSSwgY29uZmlnKTsKKyAgICAgICAgICAgICAgICBCdWlsZGJvdFN5bmNlci5fbG9hZENv
bmZpZyhNb2NrUmVtb3RlQVBJLCBjb25maWcsIGJ1aWxkZXJOYW1lVG9JRE1hcCgpKTsKICAgICAg
ICAgICAgIH0sIC9SZXBvc2l0b3J5IGdyb3VwICJzb21lLWdyb3VwIiBoYXZlIGFuIGludmFsaWQg
ZGVzY3JpcHRpb24vKTsKICAgICAgICAgfSk7CiAKQEAgLTc4OCwxMiArODAxLDEyIEBAIGRlc2Ny
aWJlKCdCdWlsZGJvdFN5bmNlcicsICgpID0+IHsKICAgICAgICAgICAgIGFzc2VydC50aHJvd3Mo
KCkgPT4gewogICAgICAgICAgICAgICAgIGNvbnN0IGNvbmZpZyA9IHNtYWxsQ29uZmlndXJhdGlv
bigpOwogICAgICAgICAgICAgICAgIGNvbmZpZy5yZXBvc2l0b3J5R3JvdXBzID0geydzb21lLWdy
b3VwJzoge3JlcG9zaXRvcmllczogeydXZWJLaXQnOiB7fX0sIHRlc3RQcm9wZXJ0aWVzOiAxfX07
Ci0gICAgICAgICAgICAgICAgQnVpbGRib3RTeW5jZXIuX2xvYWRDb25maWcoTW9ja1JlbW90ZUFQ
SSwgY29uZmlnKTsKKyAgICAgICAgICAgICAgICBCdWlsZGJvdFN5bmNlci5fbG9hZENvbmZpZyhN
b2NrUmVtb3RlQVBJLCBjb25maWcsIGJ1aWxkZXJOYW1lVG9JRE1hcCgpKTsKICAgICAgICAgICAg
IH0sIC9SZXBvc2l0b3J5IGdyb3VwICJzb21lLWdyb3VwIiBzcGVjaWZpZXMgdGhlIHRlc3QgY29u
ZmlndXJhdGlvbnMgd2l0aCBhbiBpbnZhbGlkIHR5cGUvKTsKICAgICAgICAgICAgIGFzc2VydC50
aHJvd3MoKCkgPT4gewogICAgICAgICAgICAgICAgIGNvbnN0IGNvbmZpZyA9IHNtYWxsQ29uZmln
dXJhdGlvbigpOwogICAgICAgICAgICAgICAgIGNvbmZpZy5yZXBvc2l0b3J5R3JvdXBzID0geydz
b21lLWdyb3VwJzoge3JlcG9zaXRvcmllczogeydXZWJLaXQnOiB7fX0sIHRlc3RQcm9wZXJ0aWVz
OiAnaGVsbG8nfX07Ci0gICAgICAgICAgICAgICAgQnVpbGRib3RTeW5jZXIuX2xvYWRDb25maWco
TW9ja1JlbW90ZUFQSSwgY29uZmlnKTsKKyAgICAgICAgICAgICAgICBCdWlsZGJvdFN5bmNlci5f
bG9hZENvbmZpZyhNb2NrUmVtb3RlQVBJLCBjb25maWcsIGJ1aWxkZXJOYW1lVG9JRE1hcCgpKTsK
ICAgICAgICAgICAgIH0sIC9SZXBvc2l0b3J5IGdyb3VwICJzb21lLWdyb3VwIiBzcGVjaWZpZXMg
dGhlIHRlc3QgY29uZmlndXJhdGlvbnMgd2l0aCBhbiBpbnZhbGlkIHR5cGUvKTsKICAgICAgICAg
fSk7CiAKQEAgLTgwMSw3ICs4MTQsNyBAQCBkZXNjcmliZSgnQnVpbGRib3RTeW5jZXInLCAoKSA9
PiB7CiAgICAgICAgICAgICBhc3NlcnQudGhyb3dzKCgpID0+IHsKICAgICAgICAgICAgICAgICBj
b25zdCBjb25maWcgPSBzbWFsbENvbmZpZ3VyYXRpb24oKTsKICAgICAgICAgICAgICAgICBjb25m
aWcucmVwb3NpdG9yeUdyb3VwcyA9IHsnc29tZS1ncm91cCc6IHtyZXBvc2l0b3JpZXM6IHsnV2Vi
S2l0Jzoge319LCB0ZXN0UHJvcGVydGllczogeyd3ayc6IHtyZXZpc2lvbjogJ0ludmFsaWRSZXBv
c2l0b3J5J319fX07Ci0gICAgICAgICAgICAgICAgQnVpbGRib3RTeW5jZXIuX2xvYWRDb25maWco
TW9ja1JlbW90ZUFQSSwgY29uZmlnKTsKKyAgICAgICAgICAgICAgICBCdWlsZGJvdFN5bmNlci5f
bG9hZENvbmZpZyhNb2NrUmVtb3RlQVBJLCBjb25maWcsIGJ1aWxkZXJOYW1lVG9JRE1hcCgpKTsK
ICAgICAgICAgICAgIH0sIC9SZXBvc2l0b3J5IGdyb3VwICJzb21lLWdyb3VwIiBhbiBpbnZhbGlk
IHJlcG9zaXRvcnkgIkludmFsaWRSZXBvc2l0b3J5Ii8pOwogICAgICAgICB9KTsKIApAQCAtODA5
LDcgKzgyMiw3IEBAIGRlc2NyaWJlKCdCdWlsZGJvdFN5bmNlcicsICgpID0+IHsKICAgICAgICAg
ICAgIGFzc2VydC50aHJvd3MoKCkgPT4gewogICAgICAgICAgICAgICAgIGNvbnN0IGNvbmZpZyA9
IHNtYWxsQ29uZmlndXJhdGlvbigpOwogICAgICAgICAgICAgICAgIGNvbmZpZy5yZXBvc2l0b3J5
R3JvdXBzID0geydzb21lLWdyb3VwJzoge3JlcG9zaXRvcmllczogeydXZWJLaXQnOiB7fX0sIHRl
c3RQcm9wZXJ0aWVzOiB7J29zJzoge3JldmlzaW9uOiAnaU9TJ319fX07Ci0gICAgICAgICAgICAg
ICAgQnVpbGRib3RTeW5jZXIuX2xvYWRDb25maWcoTW9ja1JlbW90ZUFQSSwgY29uZmlnKTsKKyAg
ICAgICAgICAgICAgICBCdWlsZGJvdFN5bmNlci5fbG9hZENvbmZpZyhNb2NrUmVtb3RlQVBJLCBj
b25maWcsIGJ1aWxkZXJOYW1lVG9JRE1hcCgpKTsKICAgICAgICAgICAgIH0sIC9SZXBvc2l0b3J5
IGdyb3VwICJzb21lLWdyb3VwIiBhbiBpbnZhbGlkIHJlcG9zaXRvcnkgImlPUyIvKTsKICAgICAg
ICAgICAgIGFzc2VydC50aHJvd3MoKCkgPT4gewogICAgICAgICAgICAgICAgIGNvbnN0IGNvbmZp
ZyA9IHNtYWxsQ29uZmlndXJhdGlvbigpOwpAQCAtODE4LDcgKzgzMSw3IEBAIGRlc2NyaWJlKCdC
dWlsZGJvdFN5bmNlcicsICgpID0+IHsKICAgICAgICAgICAgICAgICAgICAgdGVzdFByb3BlcnRp
ZXM6IHsnd2snOiB7cmV2aXNpb246ICdXZWJLaXQnfSwgJ2luc3RhbGwtcm9vdHMnOiB7J3Jvb3Rz
Jzoge319fSwKICAgICAgICAgICAgICAgICAgICAgYnVpbGRQcm9wZXJ0aWVzOiB7J29zJzoge3Jl
dmlzaW9uOiAnaU9TJ319LAogICAgICAgICAgICAgICAgICAgICBhY2NlcHRzUm9vdHM6IHRydWV9
fTsKLSAgICAgICAgICAgICAgICBCdWlsZGJvdFN5bmNlci5fbG9hZENvbmZpZyhNb2NrUmVtb3Rl
QVBJLCBjb25maWcpOworICAgICAgICAgICAgICAgIEJ1aWxkYm90U3luY2VyLl9sb2FkQ29uZmln
KE1vY2tSZW1vdGVBUEksIGNvbmZpZywgYnVpbGRlck5hbWVUb0lETWFwKCkpOwogICAgICAgICAg
ICAgfSwgL1JlcG9zaXRvcnkgZ3JvdXAgInNvbWUtZ3JvdXAiIGFuIGludmFsaWQgcmVwb3NpdG9y
eSAiaU9TIi8pOwogICAgICAgICB9KTsKIApAQCAtODMwLDcgKzg0Myw3IEBAIGRlc2NyaWJlKCdC
dWlsZGJvdFN5bmNlcicsICgpID0+IHsKICAgICAgICAgICAgICAgICAgICAgdGVzdFByb3BlcnRp
ZXM6IHsnd2snOiB7cmV2aXNpb246ICdXZWJLaXQnfSwgJ2lvcyc6IHtyZXZpc2lvbjogJ2lPUyd9
LCAnaW5zdGFsbC1yb290cyc6IHsncm9vdHMnOiB7fX19LAogICAgICAgICAgICAgICAgICAgICBi
dWlsZFByb3BlcnRpZXM6IHsnd2snOiB7cmV2aXNpb246ICdXZWJLaXQnfSwgJ2lvcyc6IHtyZXZp
c2lvbjogJ2lPUyd9LCAnd2stcGF0Y2gnOiB7cGF0Y2g6ICdpT1MnfX0sCiAgICAgICAgICAgICAg
ICAgICAgIGFjY2VwdHNSb290czogdHJ1ZX19OwotICAgICAgICAgICAgICAgIEJ1aWxkYm90U3lu
Y2VyLl9sb2FkQ29uZmlnKE1vY2tSZW1vdGVBUEksIGNvbmZpZyk7CisgICAgICAgICAgICAgICAg
QnVpbGRib3RTeW5jZXIuX2xvYWRDb25maWcoTW9ja1JlbW90ZUFQSSwgY29uZmlnLCBidWlsZGVy
TmFtZVRvSURNYXAoKSk7CiAgICAgICAgICAgICB9LCAvUmVwb3NpdG9yeSBncm91cCAic29tZS1n
cm91cCIgc3BlY2lmaWVzIGEgcGF0Y2ggZm9yICJpT1MiIGJ1dCBpdCBkb2VzIG5vdCBhY2NlcHQg
YSBwYXRjaC8pOwogICAgICAgICB9KTsKIApAQCAtODQyLDcgKzg1NSw3IEBAIGRlc2NyaWJlKCdC
dWlsZGJvdFN5bmNlcicsICgpID0+IHsKICAgICAgICAgICAgICAgICAgICAgdGVzdFByb3BlcnRp
ZXM6IHsnd2snOiB7cmV2aXNpb246ICdXZWJLaXQnfSwgJ2luc3RhbGwtcm9vdHMnOiB7J3Jvb3Rz
Jzoge319fSwKICAgICAgICAgICAgICAgICAgICAgYnVpbGRQcm9wZXJ0aWVzOiB7J3drLXBhdGNo
Jzoge3BhdGNoOiAnV2ViS2l0J319LAogICAgICAgICAgICAgICAgICAgICBhY2NlcHRzUm9vdHM6
IHRydWV9fTsKLSAgICAgICAgICAgICAgICBCdWlsZGJvdFN5bmNlci5fbG9hZENvbmZpZyhNb2Nr
UmVtb3RlQVBJLCBjb25maWcpOworICAgICAgICAgICAgICAgIEJ1aWxkYm90U3luY2VyLl9sb2Fk
Q29uZmlnKE1vY2tSZW1vdGVBUEksIGNvbmZpZywgYnVpbGRlck5hbWVUb0lETWFwKCkpOwogICAg
ICAgICAgICAgfSwgL1JlcG9zaXRvcnkgZ3JvdXAgInNvbWUtZ3JvdXAiIHNwZWNpZmllcyBhIHBh
dGNoIGZvciAiV2ViS2l0IiBidXQgZG9lcyBub3Qgc3BlY2lmeSBhIHJldmlzaW9uLyk7CiAgICAg
ICAgIH0pOwogCkBAIC04NTAsNyArODYzLDcgQEAgZGVzY3JpYmUoJ0J1aWxkYm90U3luY2VyJywg
KCkgPT4gewogICAgICAgICAgICAgYXNzZXJ0LnRocm93cygoKSA9PiB7CiAgICAgICAgICAgICAg
ICAgY29uc3QgY29uZmlnID0gc21hbGxDb25maWd1cmF0aW9uKCk7CiAgICAgICAgICAgICAgICAg
Y29uZmlnLnJlcG9zaXRvcnlHcm91cHMgPSB7J3NvbWUtZ3JvdXAnOiB7J3JlcG9zaXRvcmllcyc6
IHsnV2ViS2l0Jzoge319LCB0ZXN0UHJvcGVydGllczoge319fTsKLSAgICAgICAgICAgICAgICBC
dWlsZGJvdFN5bmNlci5fbG9hZENvbmZpZyhNb2NrUmVtb3RlQVBJLCBjb25maWcpOworICAgICAg
ICAgICAgICAgIEJ1aWxkYm90U3luY2VyLl9sb2FkQ29uZmlnKE1vY2tSZW1vdGVBUEksIGNvbmZp
ZywgYnVpbGRlck5hbWVUb0lETWFwKCkpOwogICAgICAgICAgICAgfSwgL1JlcG9zaXRvcnkgZ3Jv
dXAgInNvbWUtZ3JvdXAiIGRvZXMgbm90IHVzZSBzb21lIG9mIHRoZSByZXBvc2l0b3JpZXMgbGlz
dGVkIGluIHRlc3RpbmcvKTsKICAgICAgICAgICAgIGFzc2VydC50aHJvd3MoKCkgPT4gewogICAg
ICAgICAgICAgICAgIGNvbnN0IGNvbmZpZyA9IHNtYWxsQ29uZmlndXJhdGlvbigpOwpAQCAtODU5
LDcgKzg3Miw3IEBAIGRlc2NyaWJlKCdCdWlsZGJvdFN5bmNlcicsICgpID0+IHsKICAgICAgICAg
ICAgICAgICAgICAgdGVzdFByb3BlcnRpZXM6IHsnd2snOiB7cmV2aXNpb246ICdXZWJLaXQnfSwg
J2luc3RhbGwtcm9vdHMnOiB7J3Jvb3RzJzoge319fSwKICAgICAgICAgICAgICAgICAgICAgYnVp
bGRQcm9wZXJ0aWVzOiB7fSwKICAgICAgICAgICAgICAgICAgICAgYWNjZXB0c1Jvb3RzOiB0cnVl
fX07Ci0gICAgICAgICAgICAgICAgQnVpbGRib3RTeW5jZXIuX2xvYWRDb25maWcoTW9ja1JlbW90
ZUFQSSwgY29uZmlnKTsKKyAgICAgICAgICAgICAgICBCdWlsZGJvdFN5bmNlci5fbG9hZENvbmZp
ZyhNb2NrUmVtb3RlQVBJLCBjb25maWcsIGJ1aWxkZXJOYW1lVG9JRE1hcCgpKTsKICAgICAgICAg
ICAgIH0sIC9SZXBvc2l0b3J5IGdyb3VwICJzb21lLWdyb3VwIiBkb2VzIG5vdCB1c2Ugc29tZSBv
ZiB0aGUgcmVwb3NpdG9yaWVzIGxpc3RlZCBpbiBidWlsZGluZyBhIHBhdGNoLyk7CiAgICAgICAg
IH0pOwogCkBAIC04NjcsMTIgKzg4MCwxMiBAQCBkZXNjcmliZSgnQnVpbGRib3RTeW5jZXInLCAo
KSA9PiB7CiAgICAgICAgICAgICBhc3NlcnQudGhyb3dzKCgpID0+IHsKICAgICAgICAgICAgICAg
ICBjb25zdCBjb25maWcgPSBzbWFsbENvbmZpZ3VyYXRpb24oKTsKICAgICAgICAgICAgICAgICBj
b25maWcucmVwb3NpdG9yeUdyb3VwcyA9IHsnc29tZS1ncm91cCc6IHsncmVwb3NpdG9yaWVzJzog
eydXZWJLaXQnOiB7fX0sICd0ZXN0UHJvcGVydGllcyc6IHsnd2Via2l0JzogeydyZXZpc2lvbic6
ICdXZWJLaXQnfX0sIGFjY2VwdHNSb290czogMX19OwotICAgICAgICAgICAgICAgIEJ1aWxkYm90
U3luY2VyLl9sb2FkQ29uZmlnKE1vY2tSZW1vdGVBUEksIGNvbmZpZyk7CisgICAgICAgICAgICAg
ICAgQnVpbGRib3RTeW5jZXIuX2xvYWRDb25maWcoTW9ja1JlbW90ZUFQSSwgY29uZmlnLCBidWls
ZGVyTmFtZVRvSURNYXAoKSk7CiAgICAgICAgICAgICB9LCAvUmVwb3NpdG9yeSBncm91cCAic29t
ZS1ncm91cCIgY29udGFpbnMgaW52YWxpZCBhY2NlcHRzUm9vdHMgdmFsdWU6Lyk7CiAgICAgICAg
ICAgICBhc3NlcnQudGhyb3dzKCgpID0+IHsKICAgICAgICAgICAgICAgICBjb25zdCBjb25maWcg
PSBzbWFsbENvbmZpZ3VyYXRpb24oKTsKICAgICAgICAgICAgICAgICBjb25maWcucmVwb3NpdG9y
eUdyb3VwcyA9IHsnc29tZS1ncm91cCc6IHsncmVwb3NpdG9yaWVzJzogeydXZWJLaXQnOiB7fX0s
ICd0ZXN0UHJvcGVydGllcyc6IHsnd2Via2l0JzogeydyZXZpc2lvbic6ICdXZWJLaXQnfX0sIGFj
Y2VwdHNSb290czogW119fTsKLSAgICAgICAgICAgICAgICBCdWlsZGJvdFN5bmNlci5fbG9hZENv
bmZpZyhNb2NrUmVtb3RlQVBJLCBjb25maWcpOworICAgICAgICAgICAgICAgIEJ1aWxkYm90U3lu
Y2VyLl9sb2FkQ29uZmlnKE1vY2tSZW1vdGVBUEksIGNvbmZpZywgYnVpbGRlck5hbWVUb0lETWFw
KCkpOwogICAgICAgICAgICAgfSwgL1JlcG9zaXRvcnkgZ3JvdXAgInNvbWUtZ3JvdXAiIGNvbnRh
aW5zIGludmFsaWQgYWNjZXB0c1Jvb3RzIHZhbHVlOi8pOwogICAgICAgICB9KTsKIApAQCAtODgw
LDEyICs4OTMsMTIgQEAgZGVzY3JpYmUoJ0J1aWxkYm90U3luY2VyJywgKCkgPT4gewogICAgICAg
ICAgICAgYXNzZXJ0LnRocm93cygoKSA9PiB7CiAgICAgICAgICAgICAgICAgY29uc3QgY29uZmln
ID0gc21hbGxDb25maWd1cmF0aW9uKCk7CiAgICAgICAgICAgICAgICAgY29uZmlnLnJlcG9zaXRv
cnlHcm91cHMgPSB7J3NvbWUtZ3JvdXAnOiB7J3JlcG9zaXRvcmllcyc6IHsnV2ViS2l0Jzoge2Fj
Y2VwdHNQYXRjaDogMX19LCAndGVzdFByb3BlcnRpZXMnOiB7J3dlYmtpdCc6IHsncmV2aXNpb24n
OiAnV2ViS2l0J319fX07Ci0gICAgICAgICAgICAgICAgQnVpbGRib3RTeW5jZXIuX2xvYWRDb25m
aWcoTW9ja1JlbW90ZUFQSSwgY29uZmlnKTsKKyAgICAgICAgICAgICAgICBCdWlsZGJvdFN5bmNl
ci5fbG9hZENvbmZpZyhNb2NrUmVtb3RlQVBJLCBjb25maWcsIGJ1aWxkZXJOYW1lVG9JRE1hcCgp
KTsKICAgICAgICAgICAgIH0sIC8iV2ViS2l0IiBjb250YWlucyBpbnZhbGlkIGFjY2VwdHNQYXRj
aCB2YWx1ZTovKTsKICAgICAgICAgICAgIGFzc2VydC50aHJvd3MoKCkgPT4gewogICAgICAgICAg
ICAgICAgIGNvbnN0IGNvbmZpZyA9IHNtYWxsQ29uZmlndXJhdGlvbigpOwogICAgICAgICAgICAg
ICAgIGNvbmZpZy5yZXBvc2l0b3J5R3JvdXBzID0geydzb21lLWdyb3VwJzogeydyZXBvc2l0b3Jp
ZXMnOiB7J1dlYktpdCc6IHthY2NlcHRzUGF0Y2g6IFtdfX0sICd0ZXN0UHJvcGVydGllcyc6IHsn
d2Via2l0JzogeydyZXZpc2lvbic6ICdXZWJLaXQnfX19fTsKLSAgICAgICAgICAgICAgICBCdWls
ZGJvdFN5bmNlci5fbG9hZENvbmZpZyhNb2NrUmVtb3RlQVBJLCBjb25maWcpOworICAgICAgICAg
ICAgICAgIEJ1aWxkYm90U3luY2VyLl9sb2FkQ29uZmlnKE1vY2tSZW1vdGVBUEksIGNvbmZpZywg
YnVpbGRlck5hbWVUb0lETWFwKCkpOwogICAgICAgICAgICAgfSwgLyJXZWJLaXQiIGNvbnRhaW5z
IGludmFsaWQgYWNjZXB0c1BhdGNoIHZhbHVlOi8pOwogICAgICAgICB9KTsKIApAQCAtODk0LDcg
KzkwNyw3IEBAIGRlc2NyaWJlKCdCdWlsZGJvdFN5bmNlcicsICgpID0+IHsKICAgICAgICAgICAg
ICAgICBjb25zdCBjb25maWcgPSBzbWFsbENvbmZpZ3VyYXRpb24oKTsKICAgICAgICAgICAgICAg
ICBjb25maWcucmVwb3NpdG9yeUdyb3VwcyA9IHsnc29tZS1ncm91cCc6IHsncmVwb3NpdG9yaWVz
JzogeydXZWJLaXQnOiB7YWNjZXB0c1BhdGNoOiB0cnVlfX0sCiAgICAgICAgICAgICAgICAgICAg
ICd0ZXN0UHJvcGVydGllcyc6IHsnd2Via2l0JzogeydyZXZpc2lvbic6ICdXZWJLaXQnfSwgJ3dl
YmtpdC1wYXRjaCc6IHsncGF0Y2gnOiAnV2ViS2l0J319fX07Ci0gICAgICAgICAgICAgICAgQnVp
bGRib3RTeW5jZXIuX2xvYWRDb25maWcoTW9ja1JlbW90ZUFQSSwgY29uZmlnKTsKKyAgICAgICAg
ICAgICAgICBCdWlsZGJvdFN5bmNlci5fbG9hZENvbmZpZyhNb2NrUmVtb3RlQVBJLCBjb25maWcs
IGJ1aWxkZXJOYW1lVG9JRE1hcCgpKTsKICAgICAgICAgICAgIH0sIC9SZXBvc2l0b3J5IGdyb3Vw
ICJzb21lLWdyb3VwIiBzcGVjaWZpZXMgYSBwYXRjaCBmb3IgIldlYktpdCIgaW4gdGhlIHByb3Bl
cnRpZXMgZm9yIHRlc3RpbmcvKTsKICAgICAgICAgfSk7CiAKQEAgLTkwNiw3ICs5MTksNyBAQCBk
ZXNjcmliZSgnQnVpbGRib3RTeW5jZXInLCAoKSA9PiB7CiAgICAgICAgICAgICAgICAgICAgIHRl
c3RQcm9wZXJ0aWVzOiB7J3dlYmtpdCc6IHtyZXZpc2lvbjogJ1dlYktpdCd9LCAnaW5zdGFsbC1y
b290cyc6IHsncm9vdHMnOiB7fX19LAogICAgICAgICAgICAgICAgICAgICBidWlsZFByb3BlcnRp
ZXM6IHsnd2Via2l0Jzoge3JldmlzaW9uOiAnV2ViS2l0J30sICdwYXRjaCc6IHtwYXRjaDogJ1dl
YktpdCd9LCAnaW5zdGFsbC1yb290cyc6IHtyb290czoge319fSwKICAgICAgICAgICAgICAgICAg
ICAgYWNjZXB0c1Jvb3RzOiB0cnVlfX07Ci0gICAgICAgICAgICAgICAgQnVpbGRib3RTeW5jZXIu
X2xvYWRDb25maWcoTW9ja1JlbW90ZUFQSSwgY29uZmlnKTsKKyAgICAgICAgICAgICAgICBCdWls
ZGJvdFN5bmNlci5fbG9hZENvbmZpZyhNb2NrUmVtb3RlQVBJLCBjb25maWcsIGJ1aWxkZXJOYW1l
VG9JRE1hcCgpKTsKICAgICAgICAgICAgIH0sIC9SZXBvc2l0b3J5IGdyb3VwICJzb21lLWdyb3Vw
IiBzcGVjaWZpZXMgcm9vdHMgaW4gdGhlIHByb3BlcnRpZXMgZm9yIGJ1aWxkaW5nLyk7CiAgICAg
ICAgIH0pOwogCkBAIC05MTYsNyArOTI5LDcgQEAgZGVzY3JpYmUoJ0J1aWxkYm90U3luY2VyJywg
KCkgPT4gewogICAgICAgICAgICAgICAgIGNvbmZpZy5yZXBvc2l0b3J5R3JvdXBzID0geydzb21l
LWdyb3VwJzogewogICAgICAgICAgICAgICAgICAgICByZXBvc2l0b3JpZXM6IHsnV2ViS2l0Jzog
e319LAogICAgICAgICAgICAgICAgICAgICB0ZXN0UHJvcGVydGllczogeyd3ZWJraXQnOiB7J3Jl
dmlzaW9uJzogJ1dlYktpdCd9LCAnaW5zdGFsbC1yb290cyc6IHsncm9vdHMnOiB7fX19fX07Ci0g
ICAgICAgICAgICAgICAgQnVpbGRib3RTeW5jZXIuX2xvYWRDb25maWcoTW9ja1JlbW90ZUFQSSwg
Y29uZmlnKTsKKyAgICAgICAgICAgICAgICBCdWlsZGJvdFN5bmNlci5fbG9hZENvbmZpZyhNb2Nr
UmVtb3RlQVBJLCBjb25maWcsIGJ1aWxkZXJOYW1lVG9JRE1hcCgpKTsKICAgICAgICAgICAgIH0s
IC9SZXBvc2l0b3J5IGdyb3VwICJzb21lLWdyb3VwIiBzcGVjaWZpZXMgcm9vdHMgaW4gYSBwcm9w
ZXJ0eSBidXQgaXQgZG9lcyBub3QgYWNjZXB0IHJvb3RzLyk7CiAgICAgICAgIH0pOwogCkBAIC05
MjcsNyArOTQwLDcgQEAgZGVzY3JpYmUoJ0J1aWxkYm90U3luY2VyJywgKCkgPT4gewogICAgICAg
ICAgICAgICAgICAgICByZXBvc2l0b3JpZXM6IHsnV2ViS2l0Jzoge2FjY2VwdHNQYXRjaDogdHJ1
ZX19LAogICAgICAgICAgICAgICAgICAgICB0ZXN0UHJvcGVydGllczogeyd3ZWJraXQnOiB7cmV2
aXNpb246ICdXZWJLaXQnfX0sCiAgICAgICAgICAgICAgICAgICAgIGJ1aWxkUHJvcGVydGllczog
eyd3ZWJraXQnOiB7cmV2aXNpb246ICdXZWJLaXQnfSwgJ3dlYmtpdC1wYXRjaCc6IHtwYXRjaDog
J1dlYktpdCd9fX19OwotICAgICAgICAgICAgICAgIEJ1aWxkYm90U3luY2VyLl9sb2FkQ29uZmln
KE1vY2tSZW1vdGVBUEksIGNvbmZpZyk7CisgICAgICAgICAgICAgICAgQnVpbGRib3RTeW5jZXIu
X2xvYWRDb25maWcoTW9ja1JlbW90ZUFQSSwgY29uZmlnLCBidWlsZGVyTmFtZVRvSURNYXAoKSk7
CiAgICAgICAgICAgICB9LCAvUmVwb3NpdG9yeSBncm91cCAic29tZS1ncm91cCIgc3BlY2lmaWVz
IHRoZSBwcm9wZXJ0aWVzIGZvciBidWlsZGluZyBidXQgZG9lcyBub3QgYWNjZXB0IHJvb3RzIGlu
IHRlc3RpbmcvKTsKICAgICAgICAgfSk7CiAKQEAgLTkzOSw3ICs5NTIsNyBAQCBkZXNjcmliZSgn
QnVpbGRib3RTeW5jZXInLCAoKSA9PiB7CiAgICAgICAgICAgICAgICAgICAgIHRlc3RQcm9wZXJ0
aWVzOiB7J3dlYmtpdCc6IHsncmV2aXNpb24nOiAnV2ViS2l0J30sICdpbnN0YWxsLXJvb3RzJzog
eydyb290cyc6IHt9fX0sCiAgICAgICAgICAgICAgICAgICAgIGJ1aWxkUHJvcGVydGllczogeyd3
ZWJraXQnOiB7J3JldmlzaW9uJzogJ1dlYktpdCd9fSwKICAgICAgICAgICAgICAgICAgICAgYWNj
ZXB0c1Jvb3RzOiB0cnVlfX07Ci0gICAgICAgICAgICAgICAgQnVpbGRib3RTeW5jZXIuX2xvYWRD
b25maWcoTW9ja1JlbW90ZUFQSSwgY29uZmlnKTsKKyAgICAgICAgICAgICAgICBCdWlsZGJvdFN5
bmNlci5fbG9hZENvbmZpZyhNb2NrUmVtb3RlQVBJLCBjb25maWcsIGJ1aWxkZXJOYW1lVG9JRE1h
cCgpKTsKICAgICAgICAgICAgIH0sIC9SZXBvc2l0b3J5IGdyb3VwICJzb21lLWdyb3VwIiBzcGVj
aWZpZXMgdGhlIHByb3BlcnRpZXMgZm9yIGJ1aWxkaW5nIGJ1dCBkb2VzIG5vdCBhY2NlcHQgYW55
IHBhdGNoZXMvKTsKICAgICAgICAgfSk7CiAKQEAgLTk1MSwyMSArOTY0LDIxIEBAIGRlc2NyaWJl
KCdCdWlsZGJvdFN5bmNlcicsICgpID0+IHsKICAgICAgICAgICAgICAgICAgICAgdGVzdFByb3Bl
cnRpZXM6IHsnd2Via2l0Jzoge3JldmlzaW9uOiAnV2ViS2l0J319LAogICAgICAgICAgICAgICAg
ICAgICBidWlsZFByb3BlcnRpZXM6IHsnd2Via2l0Jzoge3JldmlzaW9uOiAnV2ViS2l0J30sICd3
ZWJraXQtcGF0Y2gnOiB7cGF0Y2g6ICdXZWJLaXQnfX0sCiAgICAgICAgICAgICAgICAgICAgIGFj
Y2VwdHNSb290czogdHJ1ZX19OwotICAgICAgICAgICAgICAgIEJ1aWxkYm90U3luY2VyLl9sb2Fk
Q29uZmlnKE1vY2tSZW1vdGVBUEksIGNvbmZpZyk7CisgICAgICAgICAgICAgICAgQnVpbGRib3RT
eW5jZXIuX2xvYWRDb25maWcoTW9ja1JlbW90ZUFQSSwgY29uZmlnLCBidWlsZGVyTmFtZVRvSURN
YXAoKSk7CiAgICAgICAgICAgICB9LCAvUmVwb3NpdG9yeSBncm91cCAic29tZS1ncm91cCIgYWNj
ZXB0cyByb290cyBidXQgZG9lcyBub3Qgc3BlY2lmeSByb290cyBpbiB0ZXN0UHJvcGVydGllcy8p
OwogICAgICAgICB9KTsKICAgICB9KTsKIAogICAgIGRlc2NyaWJlKCdfcHJvcGVydGllc0ZvckJ1
aWxkUmVxdWVzdCcsICgpID0+IHsKICAgICAgICAgaXQoJ3Nob3VsZCBpbmNsdWRlIGFsbCBwcm9w
ZXJ0aWVzIHNwZWNpZmllZCBpbiBhIGdpdmVuIGNvbmZpZ3VyYXRpb24nLCAoKSA9PiB7Ci0gICAg
ICAgICAgICBjb25zdCBzeW5jZXJzID0gQnVpbGRib3RTeW5jZXIuX2xvYWRDb25maWcoUmVtb3Rl
QVBJLCBzYW1wbGVpT1NDb25maWcoKSk7CisgICAgICAgICAgICBjb25zdCBzeW5jZXJzID0gQnVp
bGRib3RTeW5jZXIuX2xvYWRDb25maWcoUmVtb3RlQVBJLCBzYW1wbGVpT1NDb25maWcoKSwgYnVp
bGRlck5hbWVUb0lETWFwKCkpOwogICAgICAgICAgICAgY29uc3QgcmVxdWVzdCA9IGNyZWF0ZVNh
bXBsZUJ1aWxkUmVxdWVzdChNb2NrTW9kZWxzLmlwaG9uZSwgTW9ja01vZGVscy5zcGVlZG9tZXRl
cik7CiAgICAgICAgICAgICBjb25zdCBwcm9wZXJ0aWVzID0gc3luY2Vyc1swXS5fcHJvcGVydGll
c0ZvckJ1aWxkUmVxdWVzdChyZXF1ZXN0LCBbcmVxdWVzdF0pOwogICAgICAgICAgICAgYXNzZXJ0
LmRlZXBFcXVhbChPYmplY3Qua2V5cyhwcm9wZXJ0aWVzKS5zb3J0KCksIFsnYnVpbGRfcmVxdWVz
dF9pZCcsICdkZXNpcmVkX2ltYWdlJywgJ2ZvcmNlc2NoZWR1bGVyJywgJ29wZW5zb3VyY2UnLCAn
dGVzdF9uYW1lJ10pOwogICAgICAgICB9KTsKIAogICAgICAgICBpdCgnc2hvdWxkIHByZXNlcnZl
IG5vbi1wYXJhbWV0cmljIHByb3BlcnR5IHZhbHVlcycsICgpID0+IHsKLSAgICAgICAgICAgIGNv
bnN0IHN5bmNlcnMgPSBCdWlsZGJvdFN5bmNlci5fbG9hZENvbmZpZyhSZW1vdGVBUEksIHNhbXBs
ZWlPU0NvbmZpZygpKTsKKyAgICAgICAgICAgIGNvbnN0IHN5bmNlcnMgPSBCdWlsZGJvdFN5bmNl
ci5fbG9hZENvbmZpZyhSZW1vdGVBUEksIHNhbXBsZWlPU0NvbmZpZygpLCBidWlsZGVyTmFtZVRv
SURNYXAoKSk7CiAgICAgICAgICAgICBsZXQgcmVxdWVzdCA9IGNyZWF0ZVNhbXBsZUJ1aWxkUmVx
dWVzdChNb2NrTW9kZWxzLmlwaG9uZSwgTW9ja01vZGVscy5zcGVlZG9tZXRlcik7CiAgICAgICAg
ICAgICBsZXQgcHJvcGVydGllcyA9IHN5bmNlcnNbMF0uX3Byb3BlcnRpZXNGb3JCdWlsZFJlcXVl
c3QocmVxdWVzdCwgW3JlcXVlc3RdKTsKICAgICAgICAgICAgIGFzc2VydC5lcXVhbChwcm9wZXJ0
aWVzWyd0ZXN0X25hbWUnXSwgJ3NwZWVkb21ldGVyJyk7CkBAIC05NzgsMTQgKzk5MSwxNCBAQCBk
ZXNjcmliZSgnQnVpbGRib3RTeW5jZXInLCAoKSA9PiB7CiAgICAgICAgIH0pOwogCiAgICAgICAg
IGl0KCdzaG91bGQgcmVzb2x2ZSAicm9vdCInLCAoKSA9PiB7Ci0gICAgICAgICAgICBjb25zdCBz
eW5jZXJzID0gQnVpbGRib3RTeW5jZXIuX2xvYWRDb25maWcoUmVtb3RlQVBJLCBzYW1wbGVpT1ND
b25maWcoKSk7CisgICAgICAgICAgICBjb25zdCBzeW5jZXJzID0gQnVpbGRib3RTeW5jZXIuX2xv
YWRDb25maWcoUmVtb3RlQVBJLCBzYW1wbGVpT1NDb25maWcoKSwgYnVpbGRlck5hbWVUb0lETWFw
KCkpOwogICAgICAgICAgICAgY29uc3QgcmVxdWVzdCA9IGNyZWF0ZVNhbXBsZUJ1aWxkUmVxdWVz
dChNb2NrTW9kZWxzLmlwaG9uZSwgTW9ja01vZGVscy5zcGVlZG9tZXRlcik7CiAgICAgICAgICAg
ICBjb25zdCBwcm9wZXJ0aWVzID0gc3luY2Vyc1swXS5fcHJvcGVydGllc0ZvckJ1aWxkUmVxdWVz
dChyZXF1ZXN0LCBbcmVxdWVzdF0pOwogICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHByb3BlcnRp
ZXNbJ2Rlc2lyZWRfaW1hZ2UnXSwgJzEzQTQ1MicpOwogICAgICAgICB9KTsKIAogICAgICAgICBp
dCgnc2hvdWxkIHJlc29sdmUgInJldmlzaW9uIicsICgpID0+IHsKLSAgICAgICAgICAgIGNvbnN0
IHN5bmNlcnMgPSBCdWlsZGJvdFN5bmNlci5fbG9hZENvbmZpZyhSZW1vdGVBUEksIHNhbXBsZWlP
U0NvbmZpZygpKTsKKyAgICAgICAgICAgIGNvbnN0IHN5bmNlcnMgPSBCdWlsZGJvdFN5bmNlci5f
bG9hZENvbmZpZyhSZW1vdGVBUEksIHNhbXBsZWlPU0NvbmZpZygpLCBidWlsZGVyTmFtZVRvSURN
YXAoKSk7CiAgICAgICAgICAgICBjb25zdCByZXF1ZXN0ID0gY3JlYXRlU2FtcGxlQnVpbGRSZXF1
ZXN0KE1vY2tNb2RlbHMuaXBob25lLCBNb2NrTW9kZWxzLnNwZWVkb21ldGVyKTsKICAgICAgICAg
ICAgIGNvbnN0IHByb3BlcnRpZXMgPSBzeW5jZXJzWzBdLl9wcm9wZXJ0aWVzRm9yQnVpbGRSZXF1
ZXN0KHJlcXVlc3QsIFtyZXF1ZXN0XSk7CiAgICAgICAgICAgICBhc3NlcnQuZXF1YWwocHJvcGVy
dGllc1snb3BlbnNvdXJjZSddLCAnMTk3NDYzJyk7CkBAIC0xMDA5LDcgKzEwMjIsNyBAQCBkZXNj
cmliZSgnQnVpbGRib3RTeW5jZXInLCAoKSA9PiB7CiAgICAgICAgICAgICAgICAgfSwKICAgICAg
ICAgICAgICAgICAnYWNjZXB0c1Jvb3RzJzogdHJ1ZSwKICAgICAgICAgICAgIH07Ci0gICAgICAg
ICAgICBjb25zdCBzeW5jZXJzID0gQnVpbGRib3RTeW5jZXIuX2xvYWRDb25maWcoUmVtb3RlQVBJ
LCBjb25maWcpOworICAgICAgICAgICAgY29uc3Qgc3luY2VycyA9IEJ1aWxkYm90U3luY2VyLl9s
b2FkQ29uZmlnKFJlbW90ZUFQSSwgY29uZmlnLCBidWlsZGVyTmFtZVRvSURNYXAoKSk7CiAgICAg
ICAgICAgICBjb25zdCByZXF1ZXN0ID0gY3JlYXRlU2FtcGxlQnVpbGRSZXF1ZXN0V2l0aFBhdGNo
KE1vY2tNb2RlbHMuaXBob25lLCBudWxsLCAtMSk7CiAgICAgICAgICAgICBjb25zdCBwcm9wZXJ0
aWVzID0gc3luY2Vyc1syXS5fcHJvcGVydGllc0ZvckJ1aWxkUmVxdWVzdChyZXF1ZXN0LCBbcmVx
dWVzdF0pOwogICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHByb3BlcnRpZXNbJ3dlYmtpdCddLCAn
MTk3NDYzJyk7CkBAIC0xMDMxLDcgKzEwNDQsNyBAQCBkZXNjcmliZSgnQnVpbGRib3RTeW5jZXIn
LCAoKSA9PiB7CiAgICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICAgICAnYWNjZXB0c1Jv
b3RzJzogdHJ1ZSwKICAgICAgICAgICAgIH07Ci0gICAgICAgICAgICBjb25zdCBzeW5jZXJzID0g
QnVpbGRib3RTeW5jZXIuX2xvYWRDb25maWcoUmVtb3RlQVBJLCBjb25maWcpOworICAgICAgICAg
ICAgY29uc3Qgc3luY2VycyA9IEJ1aWxkYm90U3luY2VyLl9sb2FkQ29uZmlnKFJlbW90ZUFQSSwg
Y29uZmlnLCBidWlsZGVyTmFtZVRvSURNYXAoKSk7CiAgICAgICAgICAgICBjb25zdCByZXF1ZXN0
VG9CdWlsZCA9IGNyZWF0ZVNhbXBsZUJ1aWxkUmVxdWVzdFdpdGhQYXRjaChNb2NrTW9kZWxzLmlw
aG9uZSwgbnVsbCwgLTEpOwogICAgICAgICAgICAgY29uc3QgcmVxdWVzdFRvVGVzdCA9IGNyZWF0
ZVNhbXBsZUJ1aWxkUmVxdWVzdFdpdGhQYXRjaChNb2NrTW9kZWxzLmlwaG9uZSwgTW9ja01vZGVs
cy5zcGVlZG9tZXRlciwgMCk7CiAgICAgICAgICAgICBjb25zdCBvdGhlclJlcXVlc3RUb1Rlc3Qg
PSBjcmVhdGVTYW1wbGVCdWlsZFJlcXVlc3QoTW9ja01vZGVscy5pcGhvbmUsIE1vY2tNb2RlbHMu
c3BlZWRvbWV0ZXIpOwpAQCAtMTA3NSw3ICsxMDg4LDcgQEAgZGVzY3JpYmUoJ0J1aWxkYm90U3lu
Y2VyJywgKCkgPT4gewogICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgICAgJ2FjY2Vw
dHNSb290cyc6IHRydWUsCiAgICAgICAgICAgICB9OwotICAgICAgICAgICAgY29uc3Qgc3luY2Vy
cyA9IEJ1aWxkYm90U3luY2VyLl9sb2FkQ29uZmlnKFJlbW90ZUFQSSwgY29uZmlnKTsKKyAgICAg
ICAgICAgIGNvbnN0IHN5bmNlcnMgPSBCdWlsZGJvdFN5bmNlci5fbG9hZENvbmZpZyhSZW1vdGVB
UEksIGNvbmZpZywgYnVpbGRlck5hbWVUb0lETWFwKCkpOwogICAgICAgICAgICAgY29uc3QgcmVx
dWVzdCA9IGNyZWF0ZVNhbXBsZUJ1aWxkUmVxdWVzdFdpdGhPd25lZENvbW1pdChNb2NrTW9kZWxz
LmlwaG9uZSwgbnVsbCwgLTEpOwogICAgICAgICAgICAgY29uc3QgcHJvcGVydGllcyA9IHN5bmNl
cnNbMl0uX3Byb3BlcnRpZXNGb3JCdWlsZFJlcXVlc3QocmVxdWVzdCwgW3JlcXVlc3RdKTsKICAg
ICAgICAgICAgIGFzc2VydC5lcXVhbChwcm9wZXJ0aWVzWyd3ZWJraXQnXSwgJzE5NzQ2MycpOwpA
QCAtMTEwNCw3ICsxMTE3LDcgQEAgZGVzY3JpYmUoJ0J1aWxkYm90U3luY2VyJywgKCkgPT4gewog
ICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgICAgJ2FjY2VwdHNSb290cyc6IHRydWUs
CiAgICAgICAgICAgICB9OwotICAgICAgICAgICAgY29uc3Qgc3luY2VycyA9IEJ1aWxkYm90U3lu
Y2VyLl9sb2FkQ29uZmlnKFJlbW90ZUFQSSwgY29uZmlnKTsKKyAgICAgICAgICAgIGNvbnN0IHN5
bmNlcnMgPSBCdWlsZGJvdFN5bmNlci5fbG9hZENvbmZpZyhSZW1vdGVBUEksIGNvbmZpZywgYnVp
bGRlck5hbWVUb0lETWFwKCkpOwogICAgICAgICAgICAgY29uc3QgcmVxdWVzdCA9IGNyZWF0ZVNh
bXBsZUJ1aWxkUmVxdWVzdFdpdGhPd25lZENvbW1pdEFuZFBhdGNoKE1vY2tNb2RlbHMuaXBob25l
LCBudWxsLCAtMSk7CiAgICAgICAgICAgICBjb25zdCBwcm9wZXJ0aWVzID0gc3luY2Vyc1syXS5f
cHJvcGVydGllc0ZvckJ1aWxkUmVxdWVzdChyZXF1ZXN0LCBbcmVxdWVzdF0pOwogICAgICAgICAg
ICAgYXNzZXJ0LmVxdWFsKHByb3BlcnRpZXNbJ3dlYmtpdCddLCAnMTk3NDYzJyk7CkBAIC0xMTE1
LDcgKzExMjgsNyBAQCBkZXNjcmliZSgnQnVpbGRib3RTeW5jZXInLCAoKSA9PiB7CiAgICAgICAg
IH0pOwogCiAgICAgICAgIGl0KCdzaG91bGQgc2V0IHRoZSBwcm9wZXJ0eSBmb3IgdGhlIGJ1aWxk
IHJlcXVlc3QgaWQnLCAoKSA9PiB7Ci0gICAgICAgICAgICBjb25zdCBzeW5jZXJzID0gQnVpbGRi
b3RTeW5jZXIuX2xvYWRDb25maWcoUmVtb3RlQVBJLCBzYW1wbGVpT1NDb25maWcoKSk7CisgICAg
ICAgICAgICBjb25zdCBzeW5jZXJzID0gQnVpbGRib3RTeW5jZXIuX2xvYWRDb25maWcoUmVtb3Rl
QVBJLCBzYW1wbGVpT1NDb25maWcoKSwgYnVpbGRlck5hbWVUb0lETWFwKCkpOwogICAgICAgICAg
ICAgY29uc3QgcmVxdWVzdCA9IGNyZWF0ZVNhbXBsZUJ1aWxkUmVxdWVzdChNb2NrTW9kZWxzLmlw
aG9uZSwgTW9ja01vZGVscy5zcGVlZG9tZXRlcik7CiAgICAgICAgICAgICBjb25zdCBwcm9wZXJ0
aWVzID0gc3luY2Vyc1swXS5fcHJvcGVydGllc0ZvckJ1aWxkUmVxdWVzdChyZXF1ZXN0LCBbcmVx
dWVzdF0pOwogICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHByb3BlcnRpZXNbJ2J1aWxkX3JlcXVl
c3RfaWQnXSwgcmVxdWVzdC5pZCgpKTsKQEAgLTExMjQsNyArMTEzNyw3IEBAIGRlc2NyaWJlKCdC
dWlsZGJvdFN5bmNlcicsICgpID0+IHsKIAogICAgIGRlc2NyaWJlKCdwdWxsQnVpbGRib3QnLCAo
KSA9PiB7CiAgICAgICAgIGl0KCdzaG91bGQgZmV0Y2ggcGVuZGluZyBidWlsZHMgZnJvbSB0aGUg
cmlnaHQgVVJMJywgKCkgPT4gewotICAgICAgICAgICAgbGV0IHN5bmNlciA9IEJ1aWxkYm90U3lu
Y2VyLl9sb2FkQ29uZmlnKE1vY2tSZW1vdGVBUEksIHNhbXBsZWlPU0NvbmZpZygpKVsxXTsKKyAg
ICAgICAgICAgIGxldCBzeW5jZXIgPSBCdWlsZGJvdFN5bmNlci5fbG9hZENvbmZpZyhNb2NrUmVt
b3RlQVBJLCBzYW1wbGVpT1NDb25maWcoKSwgYnVpbGRlck5hbWVUb0lETWFwKCkpWzFdOwogICAg
ICAgICAgICAgYXNzZXJ0LmVxdWFsKHN5bmNlci5idWlsZGVyTmFtZSgpLCAnQUJUZXN0LWlQYWQt
UnVuQmVuY2htYXJrLVRlc3RzJyk7CiAgICAgICAgICAgICBsZXQgZXhwZWN0ZWRVUkwgPSAnL2pz
b24vYnVpbGRlcnMvQUJUZXN0LWlQYWQtUnVuQmVuY2htYXJrLVRlc3RzL3BlbmRpbmdCdWlsZHMn
OwogICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHN5bmNlci5wYXRoRm9yUGVuZGluZ0J1aWxkc0pT
T04oKSwgZXhwZWN0ZWRVUkwpOwpAQCAtMTEzNCw3ICsxMTQ3LDcgQEAgZGVzY3JpYmUoJ0J1aWxk
Ym90U3luY2VyJywgKCkgPT4gewogICAgICAgICB9KTsKIAogICAgICAgICBpdCgnc2hvdWxkIGZl
dGNoIHJlY2VudCBidWlsZHMgb25jZSBwZW5kaW5nIGJ1aWxkcyBoYXZlIGJlZW4gZmV0Y2hlZCcs
ICgpID0+IHsKLSAgICAgICAgICAgIGxldCBzeW5jZXIgPSBCdWlsZGJvdFN5bmNlci5fbG9hZENv
bmZpZyhNb2NrUmVtb3RlQVBJLCBzYW1wbGVpT1NDb25maWcoKSlbMV07CisgICAgICAgICAgICBs
ZXQgc3luY2VyID0gQnVpbGRib3RTeW5jZXIuX2xvYWRDb25maWcoTW9ja1JlbW90ZUFQSSwgc2Ft
cGxlaU9TQ29uZmlnKCksIGJ1aWxkZXJOYW1lVG9JRE1hcCgpKVsxXTsKICAgICAgICAgICAgIGFz
c2VydC5lcXVhbChzeW5jZXIuYnVpbGRlck5hbWUoKSwgJ0FCVGVzdC1pUGFkLVJ1bkJlbmNobWFy
ay1UZXN0cycpOwogCiAgICAgICAgICAgICBzeW5jZXIucHVsbEJ1aWxkYm90KDEpOwpAQCAtMTE0
OCw3ICsxMTYxLDcgQEAgZGVzY3JpYmUoJ0J1aWxkYm90U3luY2VyJywgKCkgPT4gewogICAgICAg
ICB9KTsKIAogICAgICAgICBpdCgnc2hvdWxkIGZldGNoIHRoZSByaWdodCBudW1iZXIgb2YgcmVj
ZW50IGJ1aWxkcycsICgpID0+IHsKLSAgICAgICAgICAgIGxldCBzeW5jZXIgPSBCdWlsZGJvdFN5
bmNlci5fbG9hZENvbmZpZyhNb2NrUmVtb3RlQVBJLCBzYW1wbGVpT1NDb25maWcoKSlbMV07Cisg
ICAgICAgICAgICBsZXQgc3luY2VyID0gQnVpbGRib3RTeW5jZXIuX2xvYWRDb25maWcoTW9ja1Jl
bW90ZUFQSSwgc2FtcGxlaU9TQ29uZmlnKCksIGJ1aWxkZXJOYW1lVG9JRE1hcCgpKVsxXTsKIAog
ICAgICAgICAgICAgc3luY2VyLnB1bGxCdWlsZGJvdCgzKTsKICAgICAgICAgICAgIGFzc2VydC5l
cXVhbChyZXF1ZXN0cy5sZW5ndGgsIDEpOwpAQCAtMTE2MSw3ICsxMTc0LDcgQEAgZGVzY3JpYmUo
J0J1aWxkYm90U3luY2VyJywgKCkgPT4gewogICAgICAgICB9KTsKIAogICAgICAgICBpdCgnc2hv
dWxkIGNyZWF0ZSBCdWlsZGJvdEJ1aWxkRW50cnkgZm9yIHBlbmRpbmcgYnVpbGRzJywgKCkgPT4g
ewotICAgICAgICAgICAgbGV0IHN5bmNlciA9IEJ1aWxkYm90U3luY2VyLl9sb2FkQ29uZmlnKE1v
Y2tSZW1vdGVBUEksIHNhbXBsZWlPU0NvbmZpZygpKVsxXTsKKyAgICAgICAgICAgIGxldCBzeW5j
ZXIgPSBCdWlsZGJvdFN5bmNlci5fbG9hZENvbmZpZyhNb2NrUmVtb3RlQVBJLCBzYW1wbGVpT1ND
b25maWcoKSwgYnVpbGRlck5hbWVUb0lETWFwKCkpWzFdOwogICAgICAgICAgICAgbGV0IHByb21p
c2UgPSBzeW5jZXIucHVsbEJ1aWxkYm90KCk7CiAgICAgICAgICAgICByZXF1ZXN0c1swXS5yZXNv
bHZlKFtzYW1wbGVQZW5kaW5nQnVpbGQoKV0pOwogICAgICAgICAgICAgcmV0dXJuIHByb21pc2Uu
dGhlbigoZW50cmllcykgPT4gewpAQCAtMTE3OSw3ICsxMTkyLDcgQEAgZGVzY3JpYmUoJ0J1aWxk
Ym90U3luY2VyJywgKCkgPT4gewogICAgICAgICB9KTsKIAogICAgICAgICBpdCgnc2hvdWxkIGNy
ZWF0ZSBCdWlsZGJvdEJ1aWxkRW50cnkgZm9yIGluLXByb2dyZXNzIGJ1aWxkcycsICgpID0+IHsK
LSAgICAgICAgICAgIGxldCBzeW5jZXIgPSBCdWlsZGJvdFN5bmNlci5fbG9hZENvbmZpZyhNb2Nr
UmVtb3RlQVBJLCBzYW1wbGVpT1NDb25maWcoKSlbMV07CisgICAgICAgICAgICBsZXQgc3luY2Vy
ID0gQnVpbGRib3RTeW5jZXIuX2xvYWRDb25maWcoTW9ja1JlbW90ZUFQSSwgc2FtcGxlaU9TQ29u
ZmlnKCksIGJ1aWxkZXJOYW1lVG9JRE1hcCgpKVsxXTsKIAogICAgICAgICAgICAgbGV0IHByb21p
c2UgPSBzeW5jZXIucHVsbEJ1aWxkYm90KDEpOwogICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJl
cXVlc3RzLmxlbmd0aCwgMSk7CkBAIC0xMjAzLDcgKzEyMTYsNyBAQCBkZXNjcmliZSgnQnVpbGRi
b3RTeW5jZXInLCAoKSA9PiB7CiAgICAgICAgIH0pOwogCiAgICAgICAgIGl0KCdzaG91bGQgY3Jl
YXRlIEJ1aWxkYm90QnVpbGRFbnRyeSBmb3IgZmluaXNoZWQgYnVpbGRzJywgKCkgPT4gewotICAg
ICAgICAgICAgbGV0IHN5bmNlciA9IEJ1aWxkYm90U3luY2VyLl9sb2FkQ29uZmlnKE1vY2tSZW1v
dGVBUEksIHNhbXBsZWlPU0NvbmZpZygpKVsxXTsKKyAgICAgICAgICAgIGxldCBzeW5jZXIgPSBC
dWlsZGJvdFN5bmNlci5fbG9hZENvbmZpZyhNb2NrUmVtb3RlQVBJLCBzYW1wbGVpT1NDb25maWco
KSwgYnVpbGRlck5hbWVUb0lETWFwKCkpWzFdOwogCiAgICAgICAgICAgICBsZXQgcHJvbWlzZSA9
IHN5bmNlci5wdWxsQnVpbGRib3QoMSk7CiAgICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVxdWVz
dHMubGVuZ3RoLCAxKTsKQEAgLTEyMjcsNyArMTI0MCw3IEBAIGRlc2NyaWJlKCdCdWlsZGJvdFN5
bmNlcicsICgpID0+IHsKICAgICAgICAgfSk7CiAKICAgICAgICAgaXQoJ3Nob3VsZCBjcmVhdGUg
QnVpbGRib3RCdWlsZEVudHJ5IGZvciBtaXhlZCBwZW5kaW5nLCBpbi1wcm9ncmVzcywgZmluaXNo
ZWQsIGFuZCBtaXNzaW5nIGJ1aWxkcycsICgpID0+IHsKLSAgICAgICAgICAgIGxldCBzeW5jZXIg
PSBCdWlsZGJvdFN5bmNlci5fbG9hZENvbmZpZyhNb2NrUmVtb3RlQVBJLCBzYW1wbGVpT1NDb25m
aWcoKSlbMV07CisgICAgICAgICAgICBsZXQgc3luY2VyID0gQnVpbGRib3RTeW5jZXIuX2xvYWRD
b25maWcoTW9ja1JlbW90ZUFQSSwgc2FtcGxlaU9TQ29uZmlnKCksIGJ1aWxkZXJOYW1lVG9JRE1h
cCgpKVsxXTsKIAogICAgICAgICAgICAgbGV0IHByb21pc2UgPSBzeW5jZXIucHVsbEJ1aWxkYm90
KDUpOwogICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlcXVlc3RzLmxlbmd0aCwgMSk7CkBAIC0x
Mjc0LDcgKzEyODcsNyBAQCBkZXNjcmliZSgnQnVpbGRib3RTeW5jZXInLCAoKSA9PiB7CiAgICAg
ICAgIH0pOwogCiAgICAgICAgIGl0KCdzaG91bGQgc29ydCBCdWlsZGJvdEJ1aWxkRW50cnkgYnkg
b3JkZXInLCAoKSA9PiB7Ci0gICAgICAgICAgICBsZXQgc3luY2VyID0gQnVpbGRib3RTeW5jZXIu
X2xvYWRDb25maWcoTW9ja1JlbW90ZUFQSSwgc2FtcGxlaU9TQ29uZmlnKCkpWzFdOworICAgICAg
ICAgICAgbGV0IHN5bmNlciA9IEJ1aWxkYm90U3luY2VyLl9sb2FkQ29uZmlnKE1vY2tSZW1vdGVB
UEksIHNhbXBsZWlPU0NvbmZpZygpLCBidWlsZGVyTmFtZVRvSURNYXAoKSlbMV07CiAKICAgICAg
ICAgICAgIGxldCBwcm9taXNlID0gc3luY2VyLnB1bGxCdWlsZGJvdCg1KTsKICAgICAgICAgICAg
IGFzc2VydC5lcXVhbChyZXF1ZXN0cy5sZW5ndGgsIDEpOwpAQCAtMTMzMSw3ICsxMzQ0LDcgQEAg
ZGVzY3JpYmUoJ0J1aWxkYm90U3luY2VyJywgKCkgPT4gewogICAgICAgICB9KTsKIAogICAgICAg
ICBpdCgnc2hvdWxkIG92ZXJyaWRlIEJ1aWxkYm90QnVpbGRFbnRyeSBmb3IgcGVuZGluZyBidWls
ZHMgYnkgaW4tcHJvZ3Jlc3MgYnVpbGRzJywgKCkgPT4gewotICAgICAgICAgICAgbGV0IHN5bmNl
ciA9IEJ1aWxkYm90U3luY2VyLl9sb2FkQ29uZmlnKE1vY2tSZW1vdGVBUEksIHNhbXBsZWlPU0Nv
bmZpZygpKVsxXTsKKyAgICAgICAgICAgIGxldCBzeW5jZXIgPSBCdWlsZGJvdFN5bmNlci5fbG9h
ZENvbmZpZyhNb2NrUmVtb3RlQVBJLCBzYW1wbGVpT1NDb25maWcoKSwgYnVpbGRlck5hbWVUb0lE
TWFwKCkpWzFdOwogCiAgICAgICAgICAgICBsZXQgcHJvbWlzZSA9IHN5bmNlci5wdWxsQnVpbGRi
b3QoNSk7CiAgICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVxdWVzdHMubGVuZ3RoLCAxKTsKQEAg
LTEzNTgsNyArMTM3MSw3IEBAIGRlc2NyaWJlKCdCdWlsZGJvdFN5bmNlcicsICgpID0+IHsKICAg
ICAgICAgfSk7CiAKICAgICAgICAgaXQoJ3Nob3VsZCBvdmVycmlkZSBCdWlsZGJvdEJ1aWxkRW50
cnkgZm9yIHBlbmRpbmcgYnVpbGRzIGJ5IGZpbmlzaGVkIGJ1aWxkcycsICgpID0+IHsKLSAgICAg
ICAgICAgIGxldCBzeW5jZXIgPSBCdWlsZGJvdFN5bmNlci5fbG9hZENvbmZpZyhNb2NrUmVtb3Rl
QVBJLCBzYW1wbGVpT1NDb25maWcoKSlbMV07CisgICAgICAgICAgICBsZXQgc3luY2VyID0gQnVp
bGRib3RTeW5jZXIuX2xvYWRDb25maWcoTW9ja1JlbW90ZUFQSSwgc2FtcGxlaU9TQ29uZmlnKCks
IGJ1aWxkZXJOYW1lVG9JRE1hcCgpKVsxXTsKIAogICAgICAgICAgICAgbGV0IHByb21pc2UgPSBz
eW5jZXIucHVsbEJ1aWxkYm90KDUpOwogICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlcXVlc3Rz
Lmxlbmd0aCwgMSk7CkBAIC0xMzg3LDcgKzE0MDAsNyBAQCBkZXNjcmliZSgnQnVpbGRib3RTeW5j
ZXInLCAoKSA9PiB7CiAKICAgICBkZXNjcmliZSgnc2NoZWR1bGVSZXF1ZXN0JywgKCkgPT4gewog
ICAgICAgICBpdCgnc2hvdWxkIHNjaGVkdWxlIGEgYnVpbGQgcmVxdWVzdCBvbiBhIHNwZWNpZmll
ZCBzbGF2ZScsICgpID0+IHsKLSAgICAgICAgICAgIGxldCBzeW5jZXIgPSBCdWlsZGJvdFN5bmNl
ci5fbG9hZENvbmZpZyhNb2NrUmVtb3RlQVBJLCBzYW1wbGVpT1NDb25maWcoKSlbMF07CisgICAg
ICAgICAgICBsZXQgc3luY2VyID0gQnVpbGRib3RTeW5jZXIuX2xvYWRDb25maWcoTW9ja1JlbW90
ZUFQSSwgc2FtcGxlaU9TQ29uZmlnKCksIGJ1aWxkZXJOYW1lVG9JRE1hcCgpKVswXTsKIAogICAg
ICAgICAgICAgY29uc3Qgd2FpdEZvclJlcXVlc3QgPSBNb2NrUmVtb3RlQVBJLndhaXRGb3JSZXF1
ZXN0KCk7CiAgICAgICAgICAgICBjb25zdCByZXF1ZXN0ID0gY3JlYXRlU2FtcGxlQnVpbGRSZXF1
ZXN0KE1vY2tNb2RlbHMuaXBob25lLCBNb2NrTW9kZWxzLnNwZWVkb21ldGVyKTsKQEAgLTE0MjQs
NyArMTQzNyw3IEBAIGRlc2NyaWJlKCdCdWlsZGJvdFN5bmNlcicsICgpID0+IHsKICAgICAgICAg
fQogCiAgICAgICAgIGl0KCdzaG91bGQgc2NoZWR1bGUgYSBidWlsZCBpZiBidWlsZGVyIGhhcyBu
byBidWlsZHMgaWYgc2xhdmVMaXN0IGlzIG5vdCBzcGVjaWZpZWQnLCAoKSA9PiB7Ci0gICAgICAg
ICAgICBsZXQgc3luY2VyID0gQnVpbGRib3RTeW5jZXIuX2xvYWRDb25maWcoTW9ja1JlbW90ZUFQ
SSwgc21hbGxDb25maWd1cmF0aW9uKCkpWzBdOworICAgICAgICAgICAgbGV0IHN5bmNlciA9IEJ1
aWxkYm90U3luY2VyLl9sb2FkQ29uZmlnKE1vY2tSZW1vdGVBUEksIHNtYWxsQ29uZmlndXJhdGlv
bigpLCBidWlsZGVyTmFtZVRvSURNYXAoKSlbMF07CiAKICAgICAgICAgICAgIHJldHVybiBwdWxs
QnVpbGRib3RXaXRoQXNzZXJ0aW9uKHN5bmNlciwgW10sIHt9KS50aGVuKCgpID0+IHsKICAgICAg
ICAgICAgICAgICBjb25zdCByZXF1ZXN0ID0gY3JlYXRlU2FtcGxlQnVpbGRSZXF1ZXN0KE1vY2tN
b2RlbHMuc29tZVBsYXRmb3JtLCBNb2NrTW9kZWxzLnNvbWVUZXN0KTsKQEAgLTE0MzcsNyArMTQ1
MCw3IEBAIGRlc2NyaWJlKCdCdWlsZGJvdFN5bmNlcicsICgpID0+IHsKICAgICAgICAgfSk7CiAK
ICAgICAgICAgaXQoJ3Nob3VsZCBzY2hlZHVsZSBhIGJ1aWxkIGlmIGJ1aWxkZXIgb25seSBoYXMg
ZmluaXNoZWQgYnVpbGRzIGlmIHNsYXZlTGlzdCBpcyBub3Qgc3BlY2lmaWVkJywgKCkgPT4gewot
ICAgICAgICAgICAgbGV0IHN5bmNlciA9IEJ1aWxkYm90U3luY2VyLl9sb2FkQ29uZmlnKE1vY2tS
ZW1vdGVBUEksIHNtYWxsQ29uZmlndXJhdGlvbigpKVswXTsKKyAgICAgICAgICAgIGxldCBzeW5j
ZXIgPSBCdWlsZGJvdFN5bmNlci5fbG9hZENvbmZpZyhNb2NrUmVtb3RlQVBJLCBzbWFsbENvbmZp
Z3VyYXRpb24oKSwgYnVpbGRlck5hbWVUb0lETWFwKCkpWzBdOwogCiAgICAgICAgICAgICByZXR1
cm4gcHVsbEJ1aWxkYm90V2l0aEFzc2VydGlvbihzeW5jZXIsIFtdLCB7Wy0xXTogc21hbGxGaW5p
c2hlZEJ1aWxkKCl9KS50aGVuKCgpID0+IHsKICAgICAgICAgICAgICAgICBjb25zdCByZXF1ZXN0
ID0gY3JlYXRlU2FtcGxlQnVpbGRSZXF1ZXN0KE1vY2tNb2RlbHMuc29tZVBsYXRmb3JtLCBNb2Nr
TW9kZWxzLnNvbWVUZXN0KTsKQEAgLTE0NTAsNyArMTQ2Myw3IEBAIGRlc2NyaWJlKCdCdWlsZGJv
dFN5bmNlcicsICgpID0+IHsKICAgICAgICAgfSk7CiAKICAgICAgICAgaXQoJ3Nob3VsZCBub3Qg
c2NoZWR1bGUgYSBidWlsZCBpZiBidWlsZGVyIGhhcyBhIHBlbmRpbmcgYnVpbGQgaWYgc2xhdmVM
aXN0IGlzIG5vdCBzcGVjaWZpZWQnLCAoKSA9PiB7Ci0gICAgICAgICAgICBsZXQgc3luY2VyID0g
QnVpbGRib3RTeW5jZXIuX2xvYWRDb25maWcoTW9ja1JlbW90ZUFQSSwgc21hbGxDb25maWd1cmF0
aW9uKCkpWzBdOworICAgICAgICAgICAgbGV0IHN5bmNlciA9IEJ1aWxkYm90U3luY2VyLl9sb2Fk
Q29uZmlnKE1vY2tSZW1vdGVBUEksIHNtYWxsQ29uZmlndXJhdGlvbigpLCBidWlsZGVyTmFtZVRv
SURNYXAoKSlbMF07CiAKICAgICAgICAgICAgIHJldHVybiBwdWxsQnVpbGRib3RXaXRoQXNzZXJ0
aW9uKHN5bmNlciwgW3NtYWxsUGVuZGluZ0J1aWxkKCldLCB7fSkudGhlbigoKSA9PiB7CiAgICAg
ICAgICAgICAgICAgc3luY2VyLnNjaGVkdWxlUmVxdWVzdEluR3JvdXBJZkF2YWlsYWJsZShjcmVh
dGVTYW1wbGVCdWlsZFJlcXVlc3QoTW9ja01vZGVscy5zb21lUGxhdGZvcm0sIE1vY2tNb2RlbHMu
c29tZVRlc3QpKTsKQEAgLTE0NTksNyArMTQ3Miw3IEBAIGRlc2NyaWJlKCdCdWlsZGJvdFN5bmNl
cicsICgpID0+IHsKICAgICAgICAgfSk7CiAKICAgICAgICAgaXQoJ3Nob3VsZCBzY2hlZHVsZSBh
IGJ1aWxkIGlmIGJ1aWxkZXIgZG9lcyBub3QgaGF2ZSBwZW5kaW5nIG9yIGNvbXBsZXRlZCBidWls
ZHMgb24gdGhlIG1hdGNoaW5nIHNsYXZlJywgKCkgPT4gewotICAgICAgICAgICAgbGV0IHN5bmNl
ciA9IEJ1aWxkYm90U3luY2VyLl9sb2FkQ29uZmlnKE1vY2tSZW1vdGVBUEksIHNhbXBsZWlPU0Nv
bmZpZygpKVswXTsKKyAgICAgICAgICAgIGxldCBzeW5jZXIgPSBCdWlsZGJvdFN5bmNlci5fbG9h
ZENvbmZpZyhNb2NrUmVtb3RlQVBJLCBzYW1wbGVpT1NDb25maWcoKSwgYnVpbGRlck5hbWVUb0lE
TWFwKCkpWzBdOwogCiAgICAgICAgICAgICByZXR1cm4gcHVsbEJ1aWxkYm90V2l0aEFzc2VydGlv
bihzeW5jZXIsIFtdLCB7fSkudGhlbigoKSA9PiB7CiAgICAgICAgICAgICAgICAgY29uc3QgcmVx
dWVzdCA9IGNyZWF0ZVNhbXBsZUJ1aWxkUmVxdWVzdChNb2NrTW9kZWxzLmlwaG9uZSwgTW9ja01v
ZGVscy5zcGVlZG9tZXRlcik7CkBAIC0xNDcxLDcgKzE0ODQsNyBAQCBkZXNjcmliZSgnQnVpbGRi
b3RTeW5jZXInLCAoKSA9PiB7CiAgICAgICAgIH0pOwogCiAgICAgICAgIGl0KCdzaG91bGQgc2No
ZWR1bGUgYSBidWlsZCBpZiBidWlsZGVyIG9ubHkgaGFzIGZpbmlzaGVkIGJ1aWxkcyBvbiB0aGUg
bWF0Y2hpbmcgc2xhdmUnLCAoKSA9PiB7Ci0gICAgICAgICAgICBsZXQgc3luY2VyID0gQnVpbGRi
b3RTeW5jZXIuX2xvYWRDb25maWcoTW9ja1JlbW90ZUFQSSwgc2FtcGxlaU9TQ29uZmlnKCkpWzFd
OworICAgICAgICAgICAgbGV0IHN5bmNlciA9IEJ1aWxkYm90U3luY2VyLl9sb2FkQ29uZmlnKE1v
Y2tSZW1vdGVBUEksIHNhbXBsZWlPU0NvbmZpZygpLCBidWlsZGVyTmFtZVRvSURNYXAoKSlbMV07
CiAKICAgICAgICAgICAgIHB1bGxCdWlsZGJvdFdpdGhBc3NlcnRpb24oc3luY2VyLCBbXSwge1st
MV06IHNhbXBsZUZpbmlzaGVkQnVpbGQoKX0pLnRoZW4oKCkgPT4gewogICAgICAgICAgICAgICAg
IGNvbnN0IHJlcXVlc3QgPSBjcmVhdGVTYW1wbGVCdWlsZFJlcXVlc3QoTW9ja01vZGVscy5pcGFk
LCBNb2NrTW9kZWxzLnNwZWVkb21ldGVyKTsKQEAgLTE0ODMsNyArMTQ5Niw3IEBAIGRlc2NyaWJl
KCdCdWlsZGJvdFN5bmNlcicsICgpID0+IHsKICAgICAgICAgfSk7CiAKICAgICAgICAgaXQoJ3No
b3VsZCBub3Qgc2NoZWR1bGUgYSBidWlsZCBpZiBidWlsZGVyIGhhcyBhIHBlbmRpbmcgYnVpbGQg
b24gdGhlIG1hY2hpbmcgc2xhdmUnLCAoKSA9PiB7Ci0gICAgICAgICAgICBsZXQgc3luY2VyID0g
QnVpbGRib3RTeW5jZXIuX2xvYWRDb25maWcoTW9ja1JlbW90ZUFQSSwgc2FtcGxlaU9TQ29uZmln
KCkpWzFdOworICAgICAgICAgICAgbGV0IHN5bmNlciA9IEJ1aWxkYm90U3luY2VyLl9sb2FkQ29u
ZmlnKE1vY2tSZW1vdGVBUEksIHNhbXBsZWlPU0NvbmZpZygpLCBidWlsZGVyTmFtZVRvSURNYXAo
KSlbMV07CiAKICAgICAgICAgICAgIHB1bGxCdWlsZGJvdFdpdGhBc3NlcnRpb24oc3luY2VyLCBb
c2FtcGxlUGVuZGluZ0J1aWxkKCldLCB7fSkudGhlbigoKSA9PiB7CiAgICAgICAgICAgICAgICAg
Y29uc3QgcmVxdWVzdCA9IGNyZWF0ZVNhbXBsZUJ1aWxkUmVxdWVzdChNb2NrTW9kZWxzLmlwYWQs
IE1vY2tNb2RlbHMuc3BlZWRvbWV0ZXIpOwpAQCAtMTQ5Myw3ICsxNTA2LDcgQEAgZGVzY3JpYmUo
J0J1aWxkYm90U3luY2VyJywgKCkgPT4gewogICAgICAgICB9KTsKIAogICAgICAgICBpdCgnc2hv
dWxkIHNjaGVkdWxlIGEgYnVpbGQgaWYgYnVpbGRlciBvbmx5IGhhcyBhIHBlbmRpbmcgYnVpbGQg
b24gYSBub24tbWFjaGluZyBzbGF2ZScsICgpID0+IHsKLSAgICAgICAgICAgIGxldCBzeW5jZXIg
PSBCdWlsZGJvdFN5bmNlci5fbG9hZENvbmZpZyhNb2NrUmVtb3RlQVBJLCBzYW1wbGVpT1NDb25m
aWcoKSlbMV07CisgICAgICAgICAgICBsZXQgc3luY2VyID0gQnVpbGRib3RTeW5jZXIuX2xvYWRD
b25maWcoTW9ja1JlbW90ZUFQSSwgc2FtcGxlaU9TQ29uZmlnKCksIGJ1aWxkZXJOYW1lVG9JRE1h
cCgpKVsxXTsKIAogICAgICAgICAgICAgcmV0dXJuIHB1bGxCdWlsZGJvdFdpdGhBc3NlcnRpb24o
c3luY2VyLCBbc2FtcGxlUGVuZGluZ0J1aWxkKDEsIDEsICdhbm90aGVyLXNsYXZlJyldLCB7fSku
dGhlbigoKSA9PiB7CiAgICAgICAgICAgICAgICAgY29uc3QgcmVxdWVzdCA9IGNyZWF0ZVNhbXBs
ZUJ1aWxkUmVxdWVzdChNb2NrTW9kZWxzLmlwYWQsIE1vY2tNb2RlbHMuc3BlZWRvbWV0ZXIpOwpA
QCAtMTUwMyw3ICsxNTE2LDcgQEAgZGVzY3JpYmUoJ0J1aWxkYm90U3luY2VyJywgKCkgPT4gewog
ICAgICAgICB9KTsKIAogICAgICAgICBpdCgnc2hvdWxkIHNjaGVkdWxlIGEgYnVpbGQgaWYgYnVp
bGRlciBvbmx5IGhhcyBhbiBpbi1wcm9ncmVzcyBidWlsZCBvbiB0aGUgbWF0Y2hpbmcgc2xhdmUn
LCAoKSA9PiB7Ci0gICAgICAgICAgICBsZXQgc3luY2VyID0gQnVpbGRib3RTeW5jZXIuX2xvYWRD
b25maWcoTW9ja1JlbW90ZUFQSSwgc2FtcGxlaU9TQ29uZmlnKCkpWzFdOworICAgICAgICAgICAg
bGV0IHN5bmNlciA9IEJ1aWxkYm90U3luY2VyLl9sb2FkQ29uZmlnKE1vY2tSZW1vdGVBUEksIHNh
bXBsZWlPU0NvbmZpZygpLCBidWlsZGVyTmFtZVRvSURNYXAoKSlbMV07CiAKICAgICAgICAgICAg
IHJldHVybiBwdWxsQnVpbGRib3RXaXRoQXNzZXJ0aW9uKHN5bmNlciwgW10sIHtbLTFdOiBzYW1w
bGVJblByb2dyZXNzQnVpbGQoKX0pLnRoZW4oKCkgPT4gewogICAgICAgICAgICAgICAgIGNvbnN0
IHJlcXVlc3QgPSBjcmVhdGVTYW1wbGVCdWlsZFJlcXVlc3QoTW9ja01vZGVscy5pcGFkLCBNb2Nr
TW9kZWxzLnNwZWVkb21ldGVyKTsKQEAgLTE1MTMsNyArMTUyNiw3IEBAIGRlc2NyaWJlKCdCdWls
ZGJvdFN5bmNlcicsICgpID0+IHsKICAgICAgICAgfSk7CiAKICAgICAgICAgaXQoJ3Nob3VsZCBz
Y2hlZHVsZSBhIGJ1aWxkIGlmIGJ1aWxkZXIgaGFzIGFuIGluLXByb2dyZXNzIGJ1aWxkIG9uIGFu
b3RoZXIgc2xhdmUnLCAoKSA9PiB7Ci0gICAgICAgICAgICBsZXQgc3luY2VyID0gQnVpbGRib3RT
eW5jZXIuX2xvYWRDb25maWcoTW9ja1JlbW90ZUFQSSwgc2FtcGxlaU9TQ29uZmlnKCkpWzFdOwor
ICAgICAgICAgICAgbGV0IHN5bmNlciA9IEJ1aWxkYm90U3luY2VyLl9sb2FkQ29uZmlnKE1vY2tS
ZW1vdGVBUEksIHNhbXBsZWlPU0NvbmZpZygpLCBidWlsZGVyTmFtZVRvSURNYXAoKSlbMV07CiAK
ICAgICAgICAgICAgIHJldHVybiBwdWxsQnVpbGRib3RXaXRoQXNzZXJ0aW9uKHN5bmNlciwgW10s
IHtbLTFdOiBzYW1wbGVJblByb2dyZXNzQnVpbGQoJ290aGVyLXNsYXZlJyl9KS50aGVuKCgpID0+
IHsKICAgICAgICAgICAgICAgICBjb25zdCByZXF1ZXN0ID0gY3JlYXRlU2FtcGxlQnVpbGRSZXF1
ZXN0KE1vY2tNb2RlbHMuaXBhZCwgTW9ja01vZGVscy5zcGVlZG9tZXRlcik7CkBAIC0xNTIzLDcg
KzE1MzYsNyBAQCBkZXNjcmliZSgnQnVpbGRib3RTeW5jZXInLCAoKSA9PiB7CiAgICAgICAgIH0p
OwogCiAgICAgICAgIGl0KCdzaG91bGQgbm90IHNjaGVkdWxlIGEgYnVpbGQgaWYgdGhlIHJlcXVl
c3QgZG9lcyBub3QgbWF0Y2ggYW55IGNvbmZpZ3VyYXRpb24nLCAoKSA9PiB7Ci0gICAgICAgICAg
ICBsZXQgc3luY2VyID0gQnVpbGRib3RTeW5jZXIuX2xvYWRDb25maWcoTW9ja1JlbW90ZUFQSSwg
c2FtcGxlaU9TQ29uZmlnKCkpWzBdOworICAgICAgICAgICAgbGV0IHN5bmNlciA9IEJ1aWxkYm90
U3luY2VyLl9sb2FkQ29uZmlnKE1vY2tSZW1vdGVBUEksIHNhbXBsZWlPU0NvbmZpZygpLCBidWls
ZGVyTmFtZVRvSURNYXAoKSlbMF07CiAKICAgICAgICAgICAgIHJldHVybiBwdWxsQnVpbGRib3RX
aXRoQXNzZXJ0aW9uKHN5bmNlciwgW10sIHt9KS50aGVuKCgpID0+IHsKICAgICAgICAgICAgICAg
ICBjb25zdCByZXF1ZXN0ID0gY3JlYXRlU2FtcGxlQnVpbGRSZXF1ZXN0KE1vY2tNb2RlbHMuaXBh
ZCwgTW9ja01vZGVscy5zcGVlZG9tZXRlcik7CkBAIC0xNTMzLDcgKzE1NDYsNyBAQCBkZXNjcmli
ZSgnQnVpbGRib3RTeW5jZXInLCAoKSA9PiB7CiAgICAgICAgIH0pOwogCiAgICAgICAgIGl0KCdz
aG91bGQgbm90IHNjaGVkdWxlIGEgYnVpbGQgaWYgYSBuZXcgcmVxdWVzdCBoYWQgYmVlbiBzdWJt
aXR0ZWQgdG8gdGhlIHNhbWUgc2xhdmUnLCAoZG9uZSkgPT4gewotICAgICAgICAgICAgbGV0IHN5
bmNlciA9IEJ1aWxkYm90U3luY2VyLl9sb2FkQ29uZmlnKE1vY2tSZW1vdGVBUEksIHNhbXBsZWlP
U0NvbmZpZygpKVsxXTsKKyAgICAgICAgICAgIGxldCBzeW5jZXIgPSBCdWlsZGJvdFN5bmNlci5f
bG9hZENvbmZpZyhNb2NrUmVtb3RlQVBJLCBzYW1wbGVpT1NDb25maWcoKSwgYnVpbGRlck5hbWVU
b0lETWFwKCkpWzFdOwogCiAgICAgICAgICAgICBwdWxsQnVpbGRib3RXaXRoQXNzZXJ0aW9uKHN5
bmNlciwgW10sIHt9KS50aGVuKCgpID0+IHsKICAgICAgICAgICAgICAgICBsZXQgcmVxdWVzdCA9
IGNyZWF0ZVNhbXBsZUJ1aWxkUmVxdWVzdChNb2NrTW9kZWxzLmlwYWQsIE1vY2tNb2RlbHMuc3Bl
ZWRvbWV0ZXIpOwpAQCAtMTU1MSw3ICsxNTY0LDcgQEAgZGVzY3JpYmUoJ0J1aWxkYm90U3luY2Vy
JywgKCkgPT4gewogICAgICAgICB9KTsKIAogICAgICAgICBpdCgnc2hvdWxkIHNjaGVkdWxlIGEg
YnVpbGQgaWYgYSBuZXcgcmVxdWVzdCBoYWQgYmVlbiBzdWJtaXR0ZWQgdG8gYW5vdGhlciBzbGF2
ZScsICgpID0+IHsKLSAgICAgICAgICAgIGxldCBzeW5jZXIgPSBCdWlsZGJvdFN5bmNlci5fbG9h
ZENvbmZpZyhNb2NrUmVtb3RlQVBJLCBzYW1wbGVpT1NDb25maWcoKSlbMV07CisgICAgICAgICAg
ICBsZXQgc3luY2VyID0gQnVpbGRib3RTeW5jZXIuX2xvYWRDb25maWcoTW9ja1JlbW90ZUFQSSwg
c2FtcGxlaU9TQ29uZmlnKCksIGJ1aWxkZXJOYW1lVG9JRE1hcCgpKVsxXTsKIAogICAgICAgICAg
ICAgcmV0dXJuIHB1bGxCdWlsZGJvdFdpdGhBc3NlcnRpb24oc3luY2VyLCBbXSwge30pLnRoZW4o
KCkgPT4gewogICAgICAgICAgICAgICAgIGxldCByZXF1ZXN0ID0gY3JlYXRlU2FtcGxlQnVpbGRS
ZXF1ZXN0KE1vY2tNb2RlbHMuaXBhZCwgTW9ja01vZGVscy5zcGVlZG9tZXRlcik7CkBAIC0xNTY0
LDcgKzE1NzcsNyBAQCBkZXNjcmliZSgnQnVpbGRib3RTeW5jZXInLCAoKSA9PiB7CiAgICAgICAg
IH0pOwogCiAgICAgICAgIGl0KCdzaG91bGQgbm90IHNjaGVkdWxlIGEgYnVpbGQgaWYgYSBuZXcg
cmVxdWVzdCBoYWQgYmVlbiBzdWJtaXR0ZWQgdG8gdGhlIHNhbWUgYnVpbGRlciB3aXRob3V0IHNs
YXZlTGlzdCcsICgpID0+IHsKLSAgICAgICAgICAgIGxldCBzeW5jZXIgPSBCdWlsZGJvdFN5bmNl
ci5fbG9hZENvbmZpZyhNb2NrUmVtb3RlQVBJLCBzbWFsbENvbmZpZ3VyYXRpb24oKSlbMF07Cisg
ICAgICAgICAgICBsZXQgc3luY2VyID0gQnVpbGRib3RTeW5jZXIuX2xvYWRDb25maWcoTW9ja1Jl
bW90ZUFQSSwgc21hbGxDb25maWd1cmF0aW9uKCksIGJ1aWxkZXJOYW1lVG9JRE1hcCgpKVswXTsK
IAogICAgICAgICAgICAgcmV0dXJuIHB1bGxCdWlsZGJvdFdpdGhBc3NlcnRpb24oc3luY2VyLCBb
XSwge30pLnRoZW4oKCkgPT4gewogICAgICAgICAgICAgICAgIGxldCByZXF1ZXN0ID0gY3JlYXRl
U2FtcGxlQnVpbGRSZXF1ZXN0KE1vY2tNb2RlbHMuc29tZVBsYXRmb3JtLCBNb2NrTW9kZWxzLnNv
bWVUZXN0KTsK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>331703</attachid>
            <date>2018-01-18 20:36:57 -0800</date>
            <delta_ts>2018-01-18 21:47:13 -0800</delta_ts>
            <desc>Patch for landing</desc>
            <filename>patch_buildbot_perf_builderNameToIDMap_v7</filename>
            <type>text/plain</type>
            <size>80189</size>
            <attacher name="Aakash Jain">aakash_jain</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
V2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL0NoYW5nZUxvZwkocmV2aXNpb24gMjI3MTc2KQorKysg
V2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwz
ICsxLDI4IEBACisyMDE4LTAxLTE4ICBBYWthc2ggSmFpbiAgPGFha2FzaF9qYWluQGFwcGxlLmNv
bT4KKworICAgICAgICBBZGQgc3VwcG9ydCBmb3IgYnVpbGRlck5hbWVUb0lETWFwIGluIEJ1aWxk
Ym90U3luY2VyCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD0xNzY1MjYKKworICAgICAgICBSZXZpZXdlZCBieSBSeW9zdWtlIE5pd2EuCisKKyAgICAgICAg
KiB0b29scy9qcy9idWlsZGJvdC1zeW5jZXIuanM6CisgICAgICAgIChCdWlsZGJvdFN5bmNlci5f
bG9hZENvbmZpZyk6IEFkZGVkIGJ1aWxkZXJOYW1lVG9JRE1hcCBwYXJhbWV0ZXIuIEl0IHdvdWxk
IGJlIHVzZWQgbGF0ZXIgb24uCisgICAgICAgIChCdWlsZGJvdFN5bmNlci5fcmVzb2x2ZUJ1aWxk
ZXJzV2l0aFBsYXRmb3Jtcyk6IERpdHRvLgorICAgICAgICAoQnVpbGRib3RTeW5jZXIuX3ZhbGlk
YXRlQW5kTWVyZ2VDb25maWcpOiBBZGRlZCBidWlsZGVySUQgYXMgYSB2YWxpZCBjb25maWcgcGFy
YW1ldGVyLgorICAgICAgICAqIHRvb2xzL2pzL2J1aWxkYm90LXRyaWdnZXJhYmxlLmpzOgorICAg
ICAgICAoQnVpbGRib3RUcmlnZ2VyYWJsZS5wcm90b3R5cGUuZ2V0QnVpbGRlck5hbWVUb0lETWFw
KTogTWV0aG9kIHRvIGZldGNoIEJ1aWxkZXJOYW1lVG9JRE1hcCBmcm9tIEJ1aWxkYm90IDAuOS4K
KyAgICAgICAgKEJ1aWxkYm90VHJpZ2dlcmFibGUucHJvdG90eXBlLmdldEJ1aWxkZXJOYW1lVG9J
RE1hcERlcHJlY2F0ZWQpOiBNZXRob2QgdG8gZmV0Y2ggQnVpbGRlck5hbWVUb0lETWFwIGZyb20g
QnVpbGRib3QgMC44LgorICAgICAgICAoQnVpbGRib3RUcmlnZ2VyYWJsZS5wcm90b3R5cGUuaW5p
dFN5bmNlcnMpOiBVcGRhdGVkIHRvIHVzZSBnZXRCdWlsZGVyTmFtZVRvSURNYXAuCisgICAgICAg
ICogdW5pdC10ZXN0cy9idWlsZGJvdC1zeW5jZXItdGVzdHMuanM6IFVwZGF0ZWQgdW5pdC10ZXN0
cy4KKyAgICAgICAgKiBzZXJ2ZXItdGVzdHMvcmVzb3VyY2VzL21vY2stZGF0YS5qczoKKyAgICAg
ICAgKE1vY2tEYXRhLmJ1aWxkYm90QnVpbGRlcnNVUkxEZXByZWNhdGVkKTogVVJMIGZvciBmZXRj
aGluZyBCdWlsZGVycyBsaXN0LgorICAgICAgICAoTW9ja0RhdGEuYnVpbGRib3RCdWlsZGVyc1VS
TCk6IERpdHRvIGZvciBCdWlsZGJvdCAwLjkKKyAgICAgICAgKE1vY2tEYXRhLm1vY2tCdWlsZGJv
dEJ1aWxkZXJzRGVwcmVjYXRlZCk6IFNhbXBsZSBidWlsZGVycyBkYXRhIGZvciBCdWlsZGJvdCAw
LjgKKyAgICAgICAgKE1vY2tEYXRhLm1vY2tCdWlsZGJvdEJ1aWxkZXJzKTogRGl0dG8gZm9yIEJ1
aWxkYm90IDAuOQorICAgICAgICAqIHNlcnZlci10ZXN0cy90b29scy1idWlsZGJvdC10cmlnZ2Vy
YWJsZS10ZXN0cy5qczogQWRkZWQgdGVzdCBmb3IgZ2V0QnVpbGRlck5hbWVUb0lETWFwLiBVcGRh
dGVkIHRlc3RzIHRvIGhhbmRsZQorICAgICAgICBuZXdseSBhZGRlZCBwcm9taXNlIGZvciBmZXRj
aGluZyBidWlsZGVycyBsaXN0IGZyb20gQnVpbGRib3QuCisgICAgICAgICogc2VydmVyLXRlc3Rz
L3Rvb2xzLXN5bmMtYnVpbGRib3QtaW50ZWdyYXRpb24tdGVzdHMuanM6IERpdHRvLgorCiAyMDE4
LTAxLTE4ICBSeW9zdWtlIE5pd2EgIDxybml3YUB3ZWJraXQub3JnPgogCiAgICAgICAgIERvbid0
IGZldGNoIG1vcmUgdGhhbiB0d28gYnVpbGRzIHRvIGNoZWNrIGR1cGxpY2l0eSBvZiBidWlsZHMg
aW4gUmVwb3J0UHJvY2Vzc29yCkluZGV4OiBXZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvc2VydmVy
LXRlc3RzL3Rvb2xzLWJ1aWxkYm90LXRyaWdnZXJhYmxlLXRlc3RzLmpzCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFdlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy9zZXJ2ZXItdGVzdHMvdG9vbHMtYnVpbGRib3QtdHJp
Z2dlcmFibGUtdGVzdHMuanMJKHJldmlzaW9uIDIyNzE3NikKKysrIFdlYnNpdGVzL3BlcmYud2Vi
a2l0Lm9yZy9zZXJ2ZXItdGVzdHMvdG9vbHMtYnVpbGRib3QtdHJpZ2dlcmFibGUtdGVzdHMuanMJ
KHdvcmtpbmcgY29weSkKQEAgLTM2LDYgKzM2LDggQEAgZGVzY3JpYmUoJ0J1aWxkYm90VHJpZ2dl
cmFibGUnLCBmdW5jdGlvbgogICAgICAgICAgICAgICAgIGNvbnN0IHNsYXZlSW5mbyA9IHtuYW1l
OiAnc3luYy1zbGF2ZScsIHBhc3N3b3JkOiAncGFzc3dvcmQnfTsKICAgICAgICAgICAgICAgICBj
b25zdCB0cmlnZ2VyYWJsZSA9IG5ldyBCdWlsZGJvdFRyaWdnZXJhYmxlKGNvbmZpZywgVGVzdFNl
cnZlci5yZW1vdGVBUEkoKSwgTW9ja1JlbW90ZUFQSSwgc2xhdmVJbmZvLCBsb2dnZXIpOwogICAg
ICAgICAgICAgICAgIHN5bmNQcm9taXNlID0gdHJpZ2dlcmFibGUuaW5pdFN5bmNlcnMoKS50aGVu
KCgpID0+IHRyaWdnZXJhYmxlLnN5bmNPbmNlKCkpOworICAgICAgICAgICAgICAgIGFzc2VydFJl
cXVlc3RBbmRSZXNvbHZlKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMF0sICdHRVQnLCBNb2NrRGF0
YS5idWlsZGJvdEJ1aWxkZXJzVVJMRGVwcmVjYXRlZCgpLCBNb2NrRGF0YS5tb2NrQnVpbGRib3RC
dWlsZGVyc0RlcHJlY2F0ZWQoKSk7CisgICAgICAgICAgICAgICAgTW9ja1JlbW90ZUFQSS5yZXNl
dCgpOwogICAgICAgICAgICAgICAgIHJldHVybiBNb2NrUmVtb3RlQVBJLndhaXRGb3JSZXF1ZXN0
KCk7CiAgICAgICAgICAgICB9KS50aGVuKCgpID0+IHsKICAgICAgICAgICAgICAgICBhc3NlcnQu
ZXF1YWwoQnVpbGRSZXF1ZXN0LmFsbCgpLmxlbmd0aCwgNCk7CkBAIC05MCw2ICs5Miw4IEBAIGRl
c2NyaWJlKCdCdWlsZGJvdFRyaWdnZXJhYmxlJywgZnVuY3Rpb24KICAgICAgICAgICAgICAgICBs
ZXQgc2xhdmVJbmZvID0ge25hbWU6ICdzeW5jLXNsYXZlJywgcGFzc3dvcmQ6ICdwYXNzd29yZCd9
OwogICAgICAgICAgICAgICAgIGxldCB0cmlnZ2VyYWJsZSA9IG5ldyBCdWlsZGJvdFRyaWdnZXJh
YmxlKGNvbmZpZywgVGVzdFNlcnZlci5yZW1vdGVBUEkoKSwgTW9ja1JlbW90ZUFQSSwgc2xhdmVJ
bmZvLCBsb2dnZXIpOwogICAgICAgICAgICAgICAgIHN5bmNQcm9taXNlID0gdHJpZ2dlcmFibGUu
aW5pdFN5bmNlcnMoKS50aGVuKCgpID0+IHRyaWdnZXJhYmxlLnN5bmNPbmNlKCkpOworICAgICAg
ICAgICAgICAgIGFzc2VydFJlcXVlc3RBbmRSZXNvbHZlKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNb
MF0sICdHRVQnLCBNb2NrRGF0YS5idWlsZGJvdEJ1aWxkZXJzVVJMRGVwcmVjYXRlZCgpLCBNb2Nr
RGF0YS5tb2NrQnVpbGRib3RCdWlsZGVyc0RlcHJlY2F0ZWQoKSk7CisgICAgICAgICAgICAgICAg
TW9ja1JlbW90ZUFQSS5yZXNldCgpOwogICAgICAgICAgICAgICAgIHJldHVybiBNb2NrUmVtb3Rl
QVBJLndhaXRGb3JSZXF1ZXN0KCk7CiAgICAgICAgICAgICB9KS50aGVuKCgpID0+IHsKICAgICAg
ICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1swXS5tZXRob2Qs
ICdHRVQnKTsKQEAgLTEzOCw2ICsxNDIsOCBAQCBkZXNjcmliZSgnQnVpbGRib3RUcmlnZ2VyYWJs
ZScsIGZ1bmN0aW9uCiAgICAgICAgICAgICAgICAgY29uc3Qgc2xhdmVJbmZvID0ge25hbWU6ICdz
eW5jLXNsYXZlJywgcGFzc3dvcmQ6ICdwYXNzd29yZCd9OwogICAgICAgICAgICAgICAgIGNvbnN0
IHRyaWdnZXJhYmxlID0gbmV3IEJ1aWxkYm90VHJpZ2dlcmFibGUoY29uZmlnLCBUZXN0U2VydmVy
LnJlbW90ZUFQSSgpLCBNb2NrUmVtb3RlQVBJLCBzbGF2ZUluZm8sIGxvZ2dlcik7CiAgICAgICAg
ICAgICAgICAgc3luY1Byb21pc2UgPSB0cmlnZ2VyYWJsZS5pbml0U3luY2VycygpLnRoZW4oKCkg
PT4gdHJpZ2dlcmFibGUuc3luY09uY2UoKSk7CisgICAgICAgICAgICAgICAgYXNzZXJ0UmVxdWVz
dEFuZFJlc29sdmUoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1swXSwgJ0dFVCcsIE1vY2tEYXRhLmJ1
aWxkYm90QnVpbGRlcnNVUkxEZXByZWNhdGVkKCksIE1vY2tEYXRhLm1vY2tCdWlsZGJvdEJ1aWxk
ZXJzRGVwcmVjYXRlZCgpKTsKKyAgICAgICAgICAgICAgICBNb2NrUmVtb3RlQVBJLnJlc2V0KCk7
CiAgICAgICAgICAgICAgICAgcmV0dXJuIE1vY2tSZW1vdGVBUEkud2FpdEZvclJlcXVlc3QoKTsK
ICAgICAgICAgICAgIH0pLnRoZW4oKCkgPT4gewogICAgICAgICAgICAgICAgIGFzc2VydC5lcXVh
bChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzLmxlbmd0aCwgMik7CkBAIC0yMTcsNiArMjIzLDggQEAg
ZGVzY3JpYmUoJ0J1aWxkYm90VHJpZ2dlcmFibGUnLCBmdW5jdGlvbgogICAgICAgICAgICAgICAg
IGxldCBzbGF2ZUluZm8gPSB7bmFtZTogJ3N5bmMtc2xhdmUnLCBwYXNzd29yZDogJ3Bhc3N3b3Jk
J307CiAgICAgICAgICAgICAgICAgbGV0IHRyaWdnZXJhYmxlID0gbmV3IEJ1aWxkYm90VHJpZ2dl
cmFibGUoY29uZmlnLCBUZXN0U2VydmVyLnJlbW90ZUFQSSgpLCBNb2NrUmVtb3RlQVBJLCBzbGF2
ZUluZm8sIGxvZ2dlcik7CiAgICAgICAgICAgICAgICAgc3luY1Byb21pc2UgPSB0cmlnZ2VyYWJs
ZS5pbml0U3luY2VycygpLnRoZW4oKCkgPT4gdHJpZ2dlcmFibGUuc3luY09uY2UoKSk7CisgICAg
ICAgICAgICAgICAgYXNzZXJ0UmVxdWVzdEFuZFJlc29sdmUoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0
c1swXSwgJ0dFVCcsIE1vY2tEYXRhLmJ1aWxkYm90QnVpbGRlcnNVUkxEZXByZWNhdGVkKCksIE1v
Y2tEYXRhLm1vY2tCdWlsZGJvdEJ1aWxkZXJzRGVwcmVjYXRlZCgpKTsKKyAgICAgICAgICAgICAg
ICBNb2NrUmVtb3RlQVBJLnJlc2V0KCk7CiAgICAgICAgICAgICAgICAgcmV0dXJuIE1vY2tSZW1v
dGVBUEkud2FpdEZvclJlcXVlc3QoKTsKICAgICAgICAgICAgIH0pLnRoZW4oKCkgPT4gewogICAg
ICAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzLmxlbmd0aCwg
Mik7CkBAIC0yODksNiArMjk3LDggQEAgZGVzY3JpYmUoJ0J1aWxkYm90VHJpZ2dlcmFibGUnLCBm
dW5jdGlvbgogICAgICAgICAgICAgICAgIGNvbnN0IHNsYXZlSW5mbyA9IHtuYW1lOiAnc3luYy1z
bGF2ZScsIHBhc3N3b3JkOiAncGFzc3dvcmQnfTsKICAgICAgICAgICAgICAgICBjb25zdCB0cmln
Z2VyYWJsZSA9IG5ldyBCdWlsZGJvdFRyaWdnZXJhYmxlKGNvbmZpZywgVGVzdFNlcnZlci5yZW1v
dGVBUEkoKSwgTW9ja1JlbW90ZUFQSSwgc2xhdmVJbmZvLCBsb2dnZXIpOwogICAgICAgICAgICAg
ICAgIHN5bmNQcm9taXNlID0gdHJpZ2dlcmFibGUuaW5pdFN5bmNlcnMoKS50aGVuKCgpID0+IHRy
aWdnZXJhYmxlLnN5bmNPbmNlKCkpOworICAgICAgICAgICAgICAgIGFzc2VydFJlcXVlc3RBbmRS
ZXNvbHZlKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMF0sICdHRVQnLCBNb2NrRGF0YS5idWlsZGJv
dEJ1aWxkZXJzVVJMRGVwcmVjYXRlZCgpLCBNb2NrRGF0YS5tb2NrQnVpbGRib3RCdWlsZGVyc0Rl
cHJlY2F0ZWQoKSk7CisgICAgICAgICAgICAgICAgTW9ja1JlbW90ZUFQSS5yZXNldCgpOwogICAg
ICAgICAgICAgICAgIHJldHVybiBNb2NrUmVtb3RlQVBJLndhaXRGb3JSZXF1ZXN0KCk7CiAgICAg
ICAgICAgICB9KS50aGVuKCgpID0+IHsKICAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoTW9j
a1JlbW90ZUFQSS5yZXF1ZXN0cy5sZW5ndGgsIDIpOwpAQCAtMzY4LDYgKzM3OCw4IEBAIGRlc2Ny
aWJlKCdCdWlsZGJvdFRyaWdnZXJhYmxlJywgZnVuY3Rpb24KICAgICAgICAgICAgICAgICBsZXQg
c2xhdmVJbmZvID0ge25hbWU6ICdzeW5jLXNsYXZlJywgcGFzc3dvcmQ6ICdwYXNzd29yZCd9Owog
ICAgICAgICAgICAgICAgIGxldCB0cmlnZ2VyYWJsZSA9IG5ldyBCdWlsZGJvdFRyaWdnZXJhYmxl
KGNvbmZpZywgVGVzdFNlcnZlci5yZW1vdGVBUEkoKSwgTW9ja1JlbW90ZUFQSSwgc2xhdmVJbmZv
LCBsb2dnZXIpOwogICAgICAgICAgICAgICAgIHN5bmNQcm9taXNlID0gdHJpZ2dlcmFibGUuaW5p
dFN5bmNlcnMoKS50aGVuKCgpID0+IHRyaWdnZXJhYmxlLnN5bmNPbmNlKCkpOworICAgICAgICAg
ICAgICAgIGFzc2VydFJlcXVlc3RBbmRSZXNvbHZlKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMF0s
ICdHRVQnLCBNb2NrRGF0YS5idWlsZGJvdEJ1aWxkZXJzVVJMRGVwcmVjYXRlZCgpLCBNb2NrRGF0
YS5tb2NrQnVpbGRib3RCdWlsZGVyc0RlcHJlY2F0ZWQoKSk7CisgICAgICAgICAgICAgICAgTW9j
a1JlbW90ZUFQSS5yZXNldCgpOwogICAgICAgICAgICAgICAgIHJldHVybiBNb2NrUmVtb3RlQVBJ
LndhaXRGb3JSZXF1ZXN0KCk7CiAgICAgICAgICAgICB9KS50aGVuKCgpID0+IHsKICAgICAgICAg
ICAgICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0cy5sZW5ndGgsIDEpOwpA
QCAtNDMxLDYgKzQ0Myw4IEBAIGRlc2NyaWJlKCdCdWlsZGJvdFRyaWdnZXJhYmxlJywgZnVuY3Rp
b24KICAgICAgICAgICAgICAgICBjb25zdCBzbGF2ZUluZm8gPSB7bmFtZTogJ3N5bmMtc2xhdmUn
LCBwYXNzd29yZDogJ3Bhc3N3b3JkJ307CiAgICAgICAgICAgICAgICAgY29uc3QgdHJpZ2dlcmFi
bGUgPSBuZXcgQnVpbGRib3RUcmlnZ2VyYWJsZShjb25maWcsIFRlc3RTZXJ2ZXIucmVtb3RlQVBJ
KCksIE1vY2tSZW1vdGVBUEksIHNsYXZlSW5mbywgbG9nZ2VyKTsKICAgICAgICAgICAgICAgICBz
eW5jUHJvbWlzZSA9IHRyaWdnZXJhYmxlLmluaXRTeW5jZXJzKCkudGhlbigoKSA9PiB0cmlnZ2Vy
YWJsZS5zeW5jT25jZSgpKTsKKyAgICAgICAgICAgICAgICBhc3NlcnRSZXF1ZXN0QW5kUmVzb2x2
ZShNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzBdLCAnR0VUJywgTW9ja0RhdGEuYnVpbGRib3RCdWls
ZGVyc1VSTERlcHJlY2F0ZWQoKSwgTW9ja0RhdGEubW9ja0J1aWxkYm90QnVpbGRlcnNEZXByZWNh
dGVkKCkpOworICAgICAgICAgICAgICAgIE1vY2tSZW1vdGVBUEkucmVzZXQoKTsKICAgICAgICAg
ICAgICAgICByZXR1cm4gTW9ja1JlbW90ZUFQSS53YWl0Rm9yUmVxdWVzdCgpOwogICAgICAgICAg
ICAgfSkudGhlbigoKSA9PiB7CiAgICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1v
dGVBUEkucmVxdWVzdHMubGVuZ3RoLCAyKTsKQEAgLTUyOSw2ICs1NDMsOCBAQCBkZXNjcmliZSgn
QnVpbGRib3RUcmlnZ2VyYWJsZScsIGZ1bmN0aW9uCiAgICAgICAgICAgICAgICAgY29uc3Qgc2xh
dmVJbmZvID0ge25hbWU6ICdzeW5jLXNsYXZlJywgcGFzc3dvcmQ6ICdwYXNzd29yZCd9OwogICAg
ICAgICAgICAgICAgIGNvbnN0IHRyaWdnZXJhYmxlID0gbmV3IEJ1aWxkYm90VHJpZ2dlcmFibGUo
Y29uZmlnLCBUZXN0U2VydmVyLnJlbW90ZUFQSSgpLCBNb2NrUmVtb3RlQVBJLCBzbGF2ZUluZm8s
IGxvZ2dlcik7CiAgICAgICAgICAgICAgICAgc3luY1Byb21pc2UgPSB0cmlnZ2VyYWJsZS5pbml0
U3luY2VycygpLnRoZW4oKCkgPT4gdHJpZ2dlcmFibGUuc3luY09uY2UoKSk7CisgICAgICAgICAg
ICAgICAgYXNzZXJ0UmVxdWVzdEFuZFJlc29sdmUoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1swXSwg
J0dFVCcsIE1vY2tEYXRhLmJ1aWxkYm90QnVpbGRlcnNVUkxEZXByZWNhdGVkKCksIE1vY2tEYXRh
Lm1vY2tCdWlsZGJvdEJ1aWxkZXJzRGVwcmVjYXRlZCgpKTsKKyAgICAgICAgICAgICAgICBNb2Nr
UmVtb3RlQVBJLnJlc2V0KCk7CiAgICAgICAgICAgICAgICAgcmV0dXJuIE1vY2tSZW1vdGVBUEku
d2FpdEZvclJlcXVlc3QoKTsKICAgICAgICAgICAgIH0pLnRoZW4oKCkgPT4gewogICAgICAgICAg
ICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3RlQVBJLnJlcXVlc3RzLmxlbmd0aCwgMik7CkBA
IC02MzAsNiArNjQ2LDggQEAgZGVzY3JpYmUoJ0J1aWxkYm90VHJpZ2dlcmFibGUnLCBmdW5jdGlv
bgogICAgICAgICAgICAgICAgIGNvbnN0IHNsYXZlSW5mbyA9IHtuYW1lOiAnc3luYy1zbGF2ZScs
IHBhc3N3b3JkOiAncGFzc3dvcmQnfTsKICAgICAgICAgICAgICAgICBjb25zdCB0cmlnZ2VyYWJs
ZSA9IG5ldyBCdWlsZGJvdFRyaWdnZXJhYmxlKGNvbmZpZywgVGVzdFNlcnZlci5yZW1vdGVBUEko
KSwgTW9ja1JlbW90ZUFQSSwgc2xhdmVJbmZvLCBsb2dnZXIpOwogICAgICAgICAgICAgICAgIHN5
bmNQcm9taXNlID0gdHJpZ2dlcmFibGUuaW5pdFN5bmNlcnMoKS50aGVuKCgpID0+IHRyaWdnZXJh
YmxlLnN5bmNPbmNlKCkpOworICAgICAgICAgICAgICAgIGFzc2VydFJlcXVlc3RBbmRSZXNvbHZl
KHJlcXVlc3RzWzBdLCAnR0VUJywgTW9ja0RhdGEuYnVpbGRib3RCdWlsZGVyc1VSTERlcHJlY2F0
ZWQoKSwgTW9ja0RhdGEubW9ja0J1aWxkYm90QnVpbGRlcnNEZXByZWNhdGVkKCkpOworICAgICAg
ICAgICAgICAgIE1vY2tSZW1vdGVBUEkucmVzZXQoKTsKICAgICAgICAgICAgICAgICByZXR1cm4g
TW9ja1JlbW90ZUFQSS53YWl0Rm9yUmVxdWVzdCgpOwogICAgICAgICAgICAgfSkudGhlbigoKSA9
PiB7CiAgICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlcXVlc3RzLmxlbmd0aCwgMSk7CkBA
IC03MDUsNiArNzIzLDggQEAgZGVzY3JpYmUoJ0J1aWxkYm90VHJpZ2dlcmFibGUnLCBmdW5jdGlv
bgogICAgICAgICAgICAgICAgIGNvbnN0IHNsYXZlSW5mbyA9IHtuYW1lOiAnc3luYy1zbGF2ZScs
IHBhc3N3b3JkOiAncGFzc3dvcmQnfTsKICAgICAgICAgICAgICAgICB0cmlnZ2VyYWJsZSA9IG5l
dyBCdWlsZGJvdFRyaWdnZXJhYmxlKGNvbmZpZywgVGVzdFNlcnZlci5yZW1vdGVBUEkoKSwgTW9j
a1JlbW90ZUFQSSwgc2xhdmVJbmZvLCBsb2dnZXIpOwogICAgICAgICAgICAgICAgIHN5bmNQcm9t
aXNlID0gdHJpZ2dlcmFibGUuaW5pdFN5bmNlcnMoKS50aGVuKCgpID0+IHRyaWdnZXJhYmxlLnN5
bmNPbmNlKCkpOworICAgICAgICAgICAgICAgIGFzc2VydFJlcXVlc3RBbmRSZXNvbHZlKHJlcXVl
c3RzWzBdLCAnR0VUJywgTW9ja0RhdGEuYnVpbGRib3RCdWlsZGVyc1VSTERlcHJlY2F0ZWQoKSwg
TW9ja0RhdGEubW9ja0J1aWxkYm90QnVpbGRlcnNEZXByZWNhdGVkKCkpOworICAgICAgICAgICAg
ICAgIE1vY2tSZW1vdGVBUEkucmVzZXQoKTsKICAgICAgICAgICAgICAgICByZXR1cm4gTW9ja1Jl
bW90ZUFQSS53YWl0Rm9yUmVxdWVzdCgpOwogICAgICAgICAgICAgfSkudGhlbigoKSA9PiB7CiAg
ICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlcXVlc3RzLmxlbmd0aCwgMSk7CkBAIC03MzIs
MjMgKzc1MiwyNCBAQCBkZXNjcmliZSgnQnVpbGRib3RUcmlnZ2VyYWJsZScsIGZ1bmN0aW9uCiAg
ICAgICAgICAgICAgICAgcmV0dXJuIHN5bmNQcm9taXNlOwogICAgICAgICAgICAgfSkudGhlbigo
KSA9PiB7CiAgICAgICAgICAgICAgICAgc3luY1Byb21pc2UgPSB0cmlnZ2VyYWJsZS5pbml0U3lu
Y2VycygpLnRoZW4oKCkgPT4gdHJpZ2dlcmFibGUuc3luY09uY2UoKSk7Ci0gICAgICAgICAgICAg
ICAgcmV0dXJuIE1vY2tSZW1vdGVBUEkud2FpdEZvclJlcXVlc3QoKTsKLSAgICAgICAgICAgIH0p
LnRoZW4oKCkgPT4gewotICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXF1ZXN0cy5sZW5n
dGgsIDYpOwotICAgICAgICAgICAgICAgIGFzc2VydFJlcXVlc3RBbmRSZXNvbHZlKHJlcXVlc3Rz
WzVdLCAnR0VUJywgJy9qc29uL2J1aWxkZXJzL3NvbWUtYnVpbGRlci0xL3BlbmRpbmdCdWlsZHMn
LCBbXSk7CisgICAgICAgICAgICAgICAgYXNzZXJ0UmVxdWVzdEFuZFJlc29sdmUocmVxdWVzdHNb
NV0sICdHRVQnLCBNb2NrRGF0YS5idWlsZGJvdEJ1aWxkZXJzVVJMRGVwcmVjYXRlZCgpLCBNb2Nr
RGF0YS5tb2NrQnVpbGRib3RCdWlsZGVyc0RlcHJlY2F0ZWQoKSk7CiAgICAgICAgICAgICAgICAg
cmV0dXJuIE1vY2tSZW1vdGVBUEkud2FpdEZvclJlcXVlc3QoKTsKICAgICAgICAgICAgIH0pLnRo
ZW4oKCkgPT4gewogICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXF1ZXN0cy5sZW5ndGgs
IDcpOwotICAgICAgICAgICAgICAgIGFzc2VydFJlcXVlc3RBbmRSZXNvbHZlKHJlcXVlc3RzWzZd
LCAnR0VUJywgJy9qc29uL2J1aWxkZXJzL3NvbWUtYnVpbGRlci0xL2J1aWxkcy8/c2VsZWN0PS0x
JnNlbGVjdD0tMicsCi0gICAgICAgICAgICAgICAgICAgIHtbLTFdOiBNb2NrRGF0YS5ydW5uaW5n
QnVpbGQoe2J1aWxkUmVxdWVzdElkOiA3MDF9KSwgWy0yXTogTW9ja0RhdGEucnVubmluZ0J1aWxk
KHtidWlsZFJlcXVlc3RJZDogNzAwfSl9KTsKKyAgICAgICAgICAgICAgICBhc3NlcnRSZXF1ZXN0
QW5kUmVzb2x2ZShyZXF1ZXN0c1s2XSwgJ0dFVCcsICcvanNvbi9idWlsZGVycy9zb21lLWJ1aWxk
ZXItMS9wZW5kaW5nQnVpbGRzJywgW10pOwogICAgICAgICAgICAgICAgIHJldHVybiBNb2NrUmVt
b3RlQVBJLndhaXRGb3JSZXF1ZXN0KCk7CiAgICAgICAgICAgICB9KS50aGVuKCgpID0+IHsKICAg
ICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVxdWVzdHMubGVuZ3RoLCA4KTsKLSAgICAgICAg
ICAgICAgICBhc3NlcnRSZXF1ZXN0QW5kUmVzb2x2ZShyZXF1ZXN0c1s3XSwgJ0dFVCcsICcvanNv
bi9idWlsZGVycy9zb21lLWJ1aWxkZXItMS9wZW5kaW5nQnVpbGRzJywgW10pOworICAgICAgICAg
ICAgICAgIGFzc2VydFJlcXVlc3RBbmRSZXNvbHZlKHJlcXVlc3RzWzddLCAnR0VUJywgJy9qc29u
L2J1aWxkZXJzL3NvbWUtYnVpbGRlci0xL2J1aWxkcy8/c2VsZWN0PS0xJnNlbGVjdD0tMicsCisg
ICAgICAgICAgICAgICAgICAgIHtbLTFdOiBNb2NrRGF0YS5ydW5uaW5nQnVpbGQoe2J1aWxkUmVx
dWVzdElkOiA3MDF9KSwgWy0yXTogTW9ja0RhdGEucnVubmluZ0J1aWxkKHtidWlsZFJlcXVlc3RJ
ZDogNzAwfSl9KTsKICAgICAgICAgICAgICAgICByZXR1cm4gTW9ja1JlbW90ZUFQSS53YWl0Rm9y
UmVxdWVzdCgpOwogICAgICAgICAgICAgfSkudGhlbigoKSA9PiB7CiAgICAgICAgICAgICAgICAg
YXNzZXJ0LmVxdWFsKHJlcXVlc3RzLmxlbmd0aCwgOSk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0
UmVxdWVzdEFuZFJlc29sdmUocmVxdWVzdHNbOF0sICdHRVQnLCAnL2pzb24vYnVpbGRlcnMvc29t
ZS1idWlsZGVyLTEvYnVpbGRzLz9zZWxlY3Q9LTEmc2VsZWN0PS0yJywKKyAgICAgICAgICAgICAg
ICBhc3NlcnRSZXF1ZXN0QW5kUmVzb2x2ZShyZXF1ZXN0c1s4XSwgJ0dFVCcsICcvanNvbi9idWls
ZGVycy9zb21lLWJ1aWxkZXItMS9wZW5kaW5nQnVpbGRzJywgW10pOworICAgICAgICAgICAgICAg
IHJldHVybiBNb2NrUmVtb3RlQVBJLndhaXRGb3JSZXF1ZXN0KCk7CisgICAgICAgICAgICB9KS50
aGVuKCgpID0+IHsKKyAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVxdWVzdHMubGVuZ3Ro
LCAxMCk7CisgICAgICAgICAgICAgICAgYXNzZXJ0UmVxdWVzdEFuZFJlc29sdmUocmVxdWVzdHNb
OV0sICdHRVQnLCAnL2pzb24vYnVpbGRlcnMvc29tZS1idWlsZGVyLTEvYnVpbGRzLz9zZWxlY3Q9
LTEmc2VsZWN0PS0yJywKICAgICAgICAgICAgICAgICAgICAge1stMV06IE1vY2tEYXRhLnJ1bm5p
bmdCdWlsZCh7YnVpbGRSZXF1ZXN0SWQ6IDcwMX0pLCBbLTJdOiBNb2NrRGF0YS5ydW5uaW5nQnVp
bGQoe2J1aWxkUmVxdWVzdElkOiA3MDB9KX0pOwogICAgICAgICAgICAgICAgIHJldHVybiBzeW5j
UHJvbWlzZTsKICAgICAgICAgICAgIH0pOwpAQCAtNzY1LDYgKzc4Niw4IEBAIGRlc2NyaWJlKCdC
dWlsZGJvdFRyaWdnZXJhYmxlJywgZnVuY3Rpb24KICAgICAgICAgICAgICAgICBjb25zdCBzbGF2
ZUluZm8gPSB7bmFtZTogJ3N5bmMtc2xhdmUnLCBwYXNzd29yZDogJ3Bhc3N3b3JkJ307CiAgICAg
ICAgICAgICAgICAgY29uc3QgdHJpZ2dlcmFibGUgPSBuZXcgQnVpbGRib3RUcmlnZ2VyYWJsZShj
b25maWcsIFRlc3RTZXJ2ZXIucmVtb3RlQVBJKCksIE1vY2tSZW1vdGVBUEksIHNsYXZlSW5mbywg
bG9nZ2VyKTsKICAgICAgICAgICAgICAgICBzeW5jUHJvbWlzZSA9IHRyaWdnZXJhYmxlLmluaXRT
eW5jZXJzKCkudGhlbigoKSA9PiB0cmlnZ2VyYWJsZS5zeW5jT25jZSgpKTsKKyAgICAgICAgICAg
ICAgICBhc3NlcnRSZXF1ZXN0QW5kUmVzb2x2ZShNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzBdLCAn
R0VUJywgTW9ja0RhdGEuYnVpbGRib3RCdWlsZGVyc1VSTERlcHJlY2F0ZWQoKSwgTW9ja0RhdGEu
bW9ja0J1aWxkYm90QnVpbGRlcnNEZXByZWNhdGVkKCkpOworICAgICAgICAgICAgICAgIE1vY2tS
ZW1vdGVBUEkucmVzZXQoKTsKICAgICAgICAgICAgICAgICByZXR1cm4gTW9ja1JlbW90ZUFQSS53
YWl0Rm9yUmVxdWVzdCgpOwogICAgICAgICAgICAgfSkudGhlbigoKSA9PiB7CiAgICAgICAgICAg
ICAgICAgYXNzZXJ0LmVxdWFsKE1vY2tSZW1vdGVBUEkucmVxdWVzdHMubGVuZ3RoLCAxKTsKQEAg
LTgzMiw2ICs4NTUsOCBAQCBkZXNjcmliZSgnQnVpbGRib3RUcmlnZ2VyYWJsZScsIGZ1bmN0aW9u
CiAgICAgICAgICAgICAgICAgY29uc3Qgc2xhdmVJbmZvID0ge25hbWU6ICdzeW5jLXNsYXZlJywg
cGFzc3dvcmQ6ICdwYXNzd29yZCd9OwogICAgICAgICAgICAgICAgIGNvbnN0IHRyaWdnZXJhYmxl
ID0gbmV3IEJ1aWxkYm90VHJpZ2dlcmFibGUoY29uZmlnLCBUZXN0U2VydmVyLnJlbW90ZUFQSSgp
LCBNb2NrUmVtb3RlQVBJLCBzbGF2ZUluZm8sIGxvZ2dlcik7CiAgICAgICAgICAgICAgICAgc3lu
Y1Byb21pc2UgPSB0cmlnZ2VyYWJsZS5pbml0U3luY2VycygpLnRoZW4oKCkgPT4gdHJpZ2dlcmFi
bGUuc3luY09uY2UoKSk7CisgICAgICAgICAgICAgICAgYXNzZXJ0UmVxdWVzdEFuZFJlc29sdmUo
TW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1swXSwgJ0dFVCcsIE1vY2tEYXRhLmJ1aWxkYm90QnVpbGRl
cnNVUkxEZXByZWNhdGVkKCksIE1vY2tEYXRhLm1vY2tCdWlsZGJvdEJ1aWxkZXJzRGVwcmVjYXRl
ZCgpKTsKKyAgICAgICAgICAgICAgICBNb2NrUmVtb3RlQVBJLnJlc2V0KCk7CiAgICAgICAgICAg
ICAgICAgcmV0dXJuIE1vY2tSZW1vdGVBUEkud2FpdEZvclJlcXVlc3QoKTsKICAgICAgICAgICAg
IH0pLnRoZW4oKCkgPT4gewogICAgICAgICAgICAgICAgIGFzc2VydC5lcXVhbChNb2NrUmVtb3Rl
QVBJLnJlcXVlc3RzLmxlbmd0aCwgMSk7CkBAIC04ODcsNiArOTEyLDggQEAgZGVzY3JpYmUoJ0J1
aWxkYm90VHJpZ2dlcmFibGUnLCBmdW5jdGlvbgogICAgICAgICAgICAgICAgIGNvbnN0IHNsYXZl
SW5mbyA9IHtuYW1lOiAnc3luYy1zbGF2ZScsIHBhc3N3b3JkOiAncGFzc3dvcmQnfTsKICAgICAg
ICAgICAgICAgICBjb25zdCB0cmlnZ2VyYWJsZSA9IG5ldyBCdWlsZGJvdFRyaWdnZXJhYmxlKGNv
bmZpZywgVGVzdFNlcnZlci5yZW1vdGVBUEkoKSwgTW9ja1JlbW90ZUFQSSwgc2xhdmVJbmZvLCBs
b2dnZXIpOwogICAgICAgICAgICAgICAgIHN5bmNQcm9taXNlID0gdHJpZ2dlcmFibGUuaW5pdFN5
bmNlcnMoKS50aGVuKCgpID0+IHRyaWdnZXJhYmxlLnN5bmNPbmNlKCkpOworICAgICAgICAgICAg
ICAgIGFzc2VydFJlcXVlc3RBbmRSZXNvbHZlKE1vY2tSZW1vdGVBUEkucmVxdWVzdHNbMF0sICdH
RVQnLCBNb2NrRGF0YS5idWlsZGJvdEJ1aWxkZXJzVVJMRGVwcmVjYXRlZCgpLCBNb2NrRGF0YS5t
b2NrQnVpbGRib3RCdWlsZGVyc0RlcHJlY2F0ZWQoKSk7CisgICAgICAgICAgICAgICAgTW9ja1Jl
bW90ZUFQSS5yZXNldCgpOwogICAgICAgICAgICAgICAgIHJldHVybiBNb2NrUmVtb3RlQVBJLndh
aXRGb3JSZXF1ZXN0KCk7CiAgICAgICAgICAgICB9KS50aGVuKCgpID0+IHsKICAgICAgICAgICAg
ICAgICBhc3NlcnQuZXF1YWwoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0cy5sZW5ndGgsIDEpOwpAQCAt
OTcyLDcgKzk5OSw5IEBAIGRlc2NyaWJlKCdCdWlsZGJvdFRyaWdnZXJhYmxlJywgZnVuY3Rpb24K
ICAgICAgICAgICAgICAgICBjb25zdCBsb2dnZXIgPSBuZXcgTW9ja0xvZ2dlcjsKICAgICAgICAg
ICAgICAgICBjb25zdCBzbGF2ZUluZm8gPSB7bmFtZTogJ3N5bmMtc2xhdmUnLCBwYXNzd29yZDog
J3Bhc3N3b3JkJ307CiAgICAgICAgICAgICAgICAgY29uc3QgYnVpbGRib3RUcmlnZ2VyYWJsZSA9
IG5ldyBCdWlsZGJvdFRyaWdnZXJhYmxlKGNvbmZpZywgVGVzdFNlcnZlci5yZW1vdGVBUEkoKSwg
TW9ja1JlbW90ZUFQSSwgc2xhdmVJbmZvLCBsb2dnZXIpOwotICAgICAgICAgICAgICAgIHJldHVy
biBidWlsZGJvdFRyaWdnZXJhYmxlLmluaXRTeW5jZXJzKCkudGhlbigoKSA9PiBidWlsZGJvdFRy
aWdnZXJhYmxlLnVwZGF0ZVRyaWdnZXJhYmxlKCkpOworICAgICAgICAgICAgICAgIGNvbnN0IHRy
aWdnZXJhYmxlUHJvbWlzZSA9IGJ1aWxkYm90VHJpZ2dlcmFibGUuaW5pdFN5bmNlcnMoKS50aGVu
KCgpID0+IGJ1aWxkYm90VHJpZ2dlcmFibGUudXBkYXRlVHJpZ2dlcmFibGUoKSk7CisgICAgICAg
ICAgICAgICAgYXNzZXJ0UmVxdWVzdEFuZFJlc29sdmUoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0c1sw
XSwgJ0dFVCcsIE1vY2tEYXRhLmJ1aWxkYm90QnVpbGRlcnNVUkxEZXByZWNhdGVkKCksIE1vY2tE
YXRhLm1vY2tCdWlsZGJvdEJ1aWxkZXJzRGVwcmVjYXRlZCgpKTsKKyAgICAgICAgICAgICAgICBy
ZXR1cm4gdHJpZ2dlcmFibGVQcm9taXNlOwogICAgICAgICAgICAgfSkudGhlbigoKSA9PiByZWZl
dGNoTWFuaWZlc3QoKSkudGhlbigoKSA9PiB7CiAgICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFs
KFRyaWdnZXJhYmxlLmFsbCgpLmxlbmd0aCwgMSk7CiAKQEAgLTk5Nyw3ICsxMDI2LDkgQEAgZGVz
Y3JpYmUoJ0J1aWxkYm90VHJpZ2dlcmFibGUnLCBmdW5jdGlvbgogICAgICAgICAgICAgICAgIGNv
bnN0IGxvZ2dlciA9IG5ldyBNb2NrTG9nZ2VyOwogICAgICAgICAgICAgICAgIGNvbnN0IHNsYXZl
SW5mbyA9IHtuYW1lOiAnc3luYy1zbGF2ZScsIHBhc3N3b3JkOiAncGFzc3dvcmQnfTsKICAgICAg
ICAgICAgICAgICBjb25zdCBidWlsZGJvdFRyaWdnZXJhYmxlID0gbmV3IEJ1aWxkYm90VHJpZ2dl
cmFibGUoY29uZmlnLCBUZXN0U2VydmVyLnJlbW90ZUFQSSgpLCBNb2NrUmVtb3RlQVBJLCBzbGF2
ZUluZm8sIGxvZ2dlcik7Ci0gICAgICAgICAgICAgICAgcmV0dXJuIGJ1aWxkYm90VHJpZ2dlcmFi
bGUuaW5pdFN5bmNlcnMoKS50aGVuKCgpID0+IGJ1aWxkYm90VHJpZ2dlcmFibGUudXBkYXRlVHJp
Z2dlcmFibGUoKSk7CisgICAgICAgICAgICAgICAgY29uc3QgdHJpZ2dlcmFibGVQcm9taXNlID0g
YnVpbGRib3RUcmlnZ2VyYWJsZS5pbml0U3luY2VycygpLnRoZW4oKCkgPT4gYnVpbGRib3RUcmln
Z2VyYWJsZS51cGRhdGVUcmlnZ2VyYWJsZSgpKTsKKyAgICAgICAgICAgICAgICBhc3NlcnRSZXF1
ZXN0QW5kUmVzb2x2ZShNb2NrUmVtb3RlQVBJLnJlcXVlc3RzWzFdLCAnR0VUJywgTW9ja0RhdGEu
YnVpbGRib3RCdWlsZGVyc1VSTERlcHJlY2F0ZWQoKSwgTW9ja0RhdGEubW9ja0J1aWxkYm90QnVp
bGRlcnNEZXByZWNhdGVkKCkpOworICAgICAgICAgICAgICAgIHJldHVybiB0cmlnZ2VyYWJsZVBy
b21pc2U7CiAgICAgICAgICAgICB9KS50aGVuKCgpID0+IHJlZmV0Y2hNYW5pZmVzdCgpKS50aGVu
KCgpID0+IHsKICAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoVHJpZ2dlcmFibGUuYWxsKCku
bGVuZ3RoLCAxKTsKICAgICAgICAgICAgICAgICBjb25zdCBncm91cHMgPSBUcmlnZ2VyYWJsZVJl
cG9zaXRvcnlHcm91cC5zb3J0QnlOYW1lKFRyaWdnZXJhYmxlLmFsbCgpWzBdLnJlcG9zaXRvcnlH
cm91cHMoKSk7CkBAIC0xMDEwLDQgKzEwNDEsMjMgQEAgZGVzY3JpYmUoJ0J1aWxkYm90VHJpZ2dl
cmFibGUnLCBmdW5jdGlvbgogICAgICAgICB9KTsKICAgICB9KTsKIAorICAgIGRlc2NyaWJlKCdn
ZXRCdWlsZGVyTmFtZVRvSURNYXAnLCAoKSA9PiB7CisKKyAgICAgICAgaXQoJ3Nob3VsZCBnZXQg
QnVpbGRlciBOYW1lIHRvIElEIE1hcCcsICgpID0+IHsKKyAgICAgICAgICAgIGNvbnN0IGNvbmZp
ZyA9IE1vY2tEYXRhLm1vY2tUZXN0U3luY0NvbmZpZ1dpdGhTaW5nbGVCdWlsZGVyKCk7CisgICAg
ICAgICAgICBjb25zdCBsb2dnZXIgPSBuZXcgTW9ja0xvZ2dlcjsKKyAgICAgICAgICAgIGNvbnN0
IHNsYXZlSW5mbyA9IHtuYW1lOiAnc3luYy1zbGF2ZScsIHBhc3N3b3JkOiAncGFzc3dvcmQnfTsK
KyAgICAgICAgICAgIGNvbnN0IGJ1aWxkYm90VHJpZ2dlcmFibGUgPSBuZXcgQnVpbGRib3RUcmln
Z2VyYWJsZShjb25maWcsIFRlc3RTZXJ2ZXIucmVtb3RlQVBJKCksIE1vY2tSZW1vdGVBUEksIHNs
YXZlSW5mbywgbG9nZ2VyKTsKKyAgICAgICAgICAgIGNvbnN0IGdldEJ1aWxkZXJOYW1lVG9JRE1h
cFByb21pc2UgPSBidWlsZGJvdFRyaWdnZXJhYmxlLmdldEJ1aWxkZXJOYW1lVG9JRE1hcCgpOwor
ICAgICAgICAgICAgYXNzZXJ0UmVxdWVzdEFuZFJlc29sdmUoTW9ja1JlbW90ZUFQSS5yZXF1ZXN0
c1swXSwgJ0dFVCcsIE1vY2tEYXRhLmJ1aWxkYm90QnVpbGRlcnNVUkwoKSwgTW9ja0RhdGEubW9j
a0J1aWxkYm90QnVpbGRlcnMoKSk7CisgICAgICAgICAgICBnZXRCdWlsZGVyTmFtZVRvSURNYXBQ
cm9taXNlLnRoZW4oKGJ1aWxkZXJOYW1lVG9JRE1hcCkgPT4geworICAgICAgICAgICAgICAgIGFz
c2VydC5lcXVhbChidWlsZGVyTmFtZVRvSURNYXBbInNvbWUgYnVpbGRlciJdLCAxKQorICAgICAg
ICAgICAgICAgIGFzc2VydC5lcXVhbChidWlsZGVyTmFtZVRvSURNYXBbInNvbWUtYnVpbGRlci0x
Il0sIDIpCisgICAgICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKGJ1aWxkZXJOYW1lVG9JRE1hcFsi
c29tZSBidWlsZGVyIDIiXSwgMykKKyAgICAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoYnVpbGRl
ck5hbWVUb0lETWFwWyJvdGhlciBidWlsZGVyIl0sIDQpCisgICAgICAgICAgICAgICAgYXNzZXJ0
LmVxdWFsKGJ1aWxkZXJOYW1lVG9JRE1hcFsic29tZSB0ZXN0ZXIiXSwgNSkKKyAgICAgICAgICAg
ICAgICBhc3NlcnQuZXF1YWwoYnVpbGRlck5hbWVUb0lETWFwWyJhbm90aGVyIHRlc3RlciJdLCA2
KQorICAgICAgICAgICAgfSk7CisgICAgICAgIH0pOworICAgIH0pOwogfSk7CkluZGV4OiBXZWJz
aXRlcy9wZXJmLndlYmtpdC5vcmcvc2VydmVyLXRlc3RzL3Rvb2xzLXN5bmMtYnVpbGRib3QtaW50
ZWdyYXRpb24tdGVzdHMuanMKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2Vic2l0ZXMvcGVyZi53ZWJraXQub3Jn
L3NlcnZlci10ZXN0cy90b29scy1zeW5jLWJ1aWxkYm90LWludGVncmF0aW9uLXRlc3RzLmpzCShy
ZXZpc2lvbiAyMjcxNzYpCisrKyBXZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvc2VydmVyLXRlc3Rz
L3Rvb2xzLXN5bmMtYnVpbGRib3QtaW50ZWdyYXRpb24tdGVzdHMuanMJKHdvcmtpbmcgY29weSkK
QEAgLTEzOSw2ICsxMzksMTMgQEAgY29uc3QgY29uZmlnV2l0aFR3b1Rlc3RlcnMgPSB7CiAgICAg
XQogfTsKIAorZnVuY3Rpb24gYXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVzdCwgbWV0aG9k
LCB1cmwsIGNvbnRlbnRUb1Jlc29sdmUpCit7CisgICAgYXNzZXJ0LmVxdWFsKHJlcXVlc3QubWV0
aG9kLCBtZXRob2QpOworICAgIGFzc2VydC5lcXVhbChyZXF1ZXN0LnVybCwgdXJsKTsKKyAgICBy
ZXF1ZXN0LnJlc29sdmUoY29udGVudFRvUmVzb2x2ZSk7Cit9CisKIGZ1bmN0aW9uIGNyZWF0ZVRy
aWdnZXJhYmxlKGNvbmZpZyA9IGNvbmZpZ1dpdGhPbmVUZXN0ZXJUd29CdWlsZGVycykKIHsKICAg
ICBsZXQgdHJpZ2dlcmFibGU7CkBAIC0xNDYsNyArMTUzLDEwIEBAIGZ1bmN0aW9uIGNyZWF0ZVRy
aWdnZXJhYmxlKGNvbmZpZyA9IGNvbmYKICAgICAgICAgcmV0dXJuIE1hbmlmZXN0LmZldGNoKCk7
CiAgICAgfSkudGhlbigoKSA9PiB7CiAgICAgICAgIHRyaWdnZXJhYmxlID0gbmV3IEJ1aWxkYm90
VHJpZ2dlcmFibGUoY29uZmlnLCBUZXN0U2VydmVyLnJlbW90ZUFQSSgpLCBNb2NrUmVtb3RlQVBJ
LCB7bmFtZTogJ3N5bmMtc2xhdmUnLCBwYXNzd29yZDogJ3Bhc3N3b3JkJ30sIG5ldyBNb2NrTG9n
Z2VyKTsKLSAgICAgICAgcmV0dXJuIHRyaWdnZXJhYmxlLmluaXRTeW5jZXJzKCkudGhlbigoKSA9
PiB0cmlnZ2VyYWJsZS51cGRhdGVUcmlnZ2VyYWJsZSgpKTsKKyAgICAgICAgY29uc3Qgc3luY1By
b21pc2UgPSB0cmlnZ2VyYWJsZS5pbml0U3luY2VycygpLnRoZW4oKCkgPT4gdHJpZ2dlcmFibGUu
dXBkYXRlVHJpZ2dlcmFibGUoKSk7CisgICAgICAgIGFzc2VydEFuZFJlc29sdmVSZXF1ZXN0KE1v
Y2tSZW1vdGVBUEkucmVxdWVzdHNbMF0sICdHRVQnLCBNb2NrRGF0YS5idWlsZGJvdEJ1aWxkZXJz
VVJMRGVwcmVjYXRlZCgpLCBNb2NrRGF0YS5tb2NrQnVpbGRib3RCdWlsZGVyc0RlcHJlY2F0ZWQo
KSk7CisgICAgICAgIE1vY2tSZW1vdGVBUEkucmVzZXQoKTsKKyAgICAgICAgcmV0dXJuIHN5bmNQ
cm9taXNlOwogICAgIH0pLnRoZW4oKCkgPT4gTWFuaWZlc3QuZmV0Y2goKSkudGhlbigoKSA9PiB7
CiAgICAgICAgIHJldHVybiBuZXcgQnVpbGRib3RUcmlnZ2VyYWJsZShjb25maWcsIFRlc3RTZXJ2
ZXIucmVtb3RlQVBJKCksIE1vY2tSZW1vdGVBUEksIHtuYW1lOiAnc3luYy1zbGF2ZScsIHBhc3N3
b3JkOiAncGFzc3dvcmQnfSwgbmV3IE1vY2tMb2dnZXIpOwogICAgIH0pOwpAQCAtMjIxLDEyICsy
MzEsNiBAQCBkZXNjcmliZSgnc3luYy1idWlsZGJvdCcsIGZ1bmN0aW9uICgpIHsKICAgICAgICAg
TW9ja1JlbW90ZUFQSS5yZXNldCgnaHR0cDovL2J1aWxkLndlYmtpdC5vcmcnKTsKICAgICB9KTsK
IAotICAgIGZ1bmN0aW9uIGFzc2VydEFuZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3QsIG1ldGhvZCwg
dXJsLCBjb250ZW50VG9SZXNvbHZlKQotICAgIHsKLSAgICAgICAgYXNzZXJ0LmVxdWFsKHJlcXVl
c3QubWV0aG9kLCBtZXRob2QpOwotICAgICAgICBhc3NlcnQuZXF1YWwocmVxdWVzdC51cmwsIHVy
bCk7Ci0gICAgICAgIHJlcXVlc3QucmVzb2x2ZShjb250ZW50VG9SZXNvbHZlKTsKLSAgICB9CiAK
ICAgICBpdCgnc2hvdWxkIG5vdCBzY2hlZHVsZSBvbiBhbm90aGVyIGJ1aWxkZXIgaWYgdGhlIGJ1
aWxkIHdhcyBzY2hlZHVsZWQgb24gb25lIGJ1aWxkZXIgYmVmb3JlJywgKCkgPT4gewogICAgICAg
ICBjb25zdCByZXF1ZXN0cyA9IE1vY2tSZW1vdGVBUEkucmVxdWVzdHM7CkBAIC0yNDUsNiArMjQ5
LDggQEAgZGVzY3JpYmUoJ3N5bmMtYnVpbGRib3QnLCBmdW5jdGlvbiAoKSB7CiAgICAgICAgICAg
ICB0YXNrSWQgPSBmaXJzdFRlc3RHcm91cC50YXNrKCkuaWQoKTsKICAgICAgICAgICAgIGFub3Ro
ZXJUYXNrSWQgPSBzZWNvbmRUZXN0R3JvdXAudGFzaygpLmlkKCk7CiAgICAgICAgICAgICBzeW5j
UHJvbWlzZSA9IHRyaWdnZXJhYmxlLmluaXRTeW5jZXJzKCkudGhlbigoKSA9PiB0cmlnZ2VyYWJs
ZS5zeW5jT25jZSgpKTsKKyAgICAgICAgICAgIGFzc2VydEFuZFJlc29sdmVSZXF1ZXN0KHJlcXVl
c3RzWzBdLCAnR0VUJywgTW9ja0RhdGEuYnVpbGRib3RCdWlsZGVyc1VSTERlcHJlY2F0ZWQoKSwg
TW9ja0RhdGEubW9ja0J1aWxkYm90QnVpbGRlcnNEZXByZWNhdGVkKCkpOworICAgICAgICAgICAg
TW9ja1JlbW90ZUFQSS5yZXNldCgpOwogICAgICAgICAgICAgcmV0dXJuIE1vY2tSZW1vdGVBUEku
d2FpdEZvclJlcXVlc3QoKTsKICAgICAgICAgfSkudGhlbigoKSA9PiB7CiAgICAgICAgICAgICBh
c3NlcnQuZXF1YWwocmVxdWVzdHMubGVuZ3RoLCAyKTsKQEAgLTM1Nyw2ICszNjMsOCBAQCBkZXNj
cmliZSgnc3luYy1idWlsZGJvdCcsIGZ1bmN0aW9uICgpIHsKICAgICAgICAgICAgIGFzc2VydC5k
ZWVwRXF1YWwob3RoZXJDb21taXRTZXQuYWxsUm9vdEZpbGVzKCksIFtdKTsKIAogICAgICAgICAg
ICAgc3luY1Byb21pc2UgPSB0cmlnZ2VyYWJsZS5pbml0U3luY2VycygpLnRoZW4oKCkgPT4gdHJp
Z2dlcmFibGUuc3luY09uY2UoKSk7CisgICAgICAgICAgICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVz
dChyZXF1ZXN0c1swXSwgJ0dFVCcsIE1vY2tEYXRhLmJ1aWxkYm90QnVpbGRlcnNVUkxEZXByZWNh
dGVkKCksIE1vY2tEYXRhLm1vY2tCdWlsZGJvdEJ1aWxkZXJzRGVwcmVjYXRlZCgpKTsKKyAgICAg
ICAgICAgIE1vY2tSZW1vdGVBUEkucmVzZXQoKTsKICAgICAgICAgICAgIHJldHVybiBNb2NrUmVt
b3RlQVBJLndhaXRGb3JSZXF1ZXN0KCk7CiAgICAgICAgIH0pLnRoZW4oKCkgPT4gewogICAgICAg
ICAgICAgYXNzZXJ0LmVxdWFsKHJlcXVlc3RzLmxlbmd0aCwgMyk7CkBAIC00NjgsNiArNDc2LDgg
QEAgZGVzY3JpYmUoJ3N5bmMtYnVpbGRib3QnLCBmdW5jdGlvbiAoKSB7CiAKICAgICAgICAgICAg
IE1vY2tSZW1vdGVBUEkucmVzZXQoKTsKICAgICAgICAgICAgIHN5bmNQcm9taXNlID0gdHJpZ2dl
cmFibGUuaW5pdFN5bmNlcnMoKS50aGVuKCgpID0+IHRyaWdnZXJhYmxlLnN5bmNPbmNlKCkpOwor
ICAgICAgICAgICAgYXNzZXJ0QW5kUmVzb2x2ZVJlcXVlc3QocmVxdWVzdHNbMF0sICdHRVQnLCBN
b2NrRGF0YS5idWlsZGJvdEJ1aWxkZXJzVVJMRGVwcmVjYXRlZCgpLCBNb2NrRGF0YS5tb2NrQnVp
bGRib3RCdWlsZGVyc0RlcHJlY2F0ZWQoKSk7CisgICAgICAgICAgICBNb2NrUmVtb3RlQVBJLnJl
c2V0KCk7CiAgICAgICAgICAgICByZXR1cm4gTW9ja1JlbW90ZUFQSS53YWl0Rm9yUmVxdWVzdCgp
OwogICAgICAgICB9KS50aGVuKCgpID0+IHsKICAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXF1
ZXN0cy5sZW5ndGgsIDMpOwpAQCAtNjI2LDYgKzYzNiw4IEBAIGRlc2NyaWJlKCdzeW5jLWJ1aWxk
Ym90JywgZnVuY3Rpb24gKCkgewogICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChvdGhlckNv
bW1pdFNldC5hbGxSb290RmlsZXMoKSwgW10pOwogCiAgICAgICAgICAgICBzeW5jUHJvbWlzZSA9
IHRyaWdnZXJhYmxlLmluaXRTeW5jZXJzKCkudGhlbigoKSA9PiB0cmlnZ2VyYWJsZS5zeW5jT25j
ZSgpKTsKKyAgICAgICAgICAgIGFzc2VydEFuZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3RzWzBdLCAn
R0VUJywgTW9ja0RhdGEuYnVpbGRib3RCdWlsZGVyc1VSTERlcHJlY2F0ZWQoKSwgTW9ja0RhdGEu
bW9ja0J1aWxkYm90QnVpbGRlcnNEZXByZWNhdGVkKCkpOworICAgICAgICAgICAgTW9ja1JlbW90
ZUFQSS5yZXNldCgpOwogICAgICAgICAgICAgcmV0dXJuIE1vY2tSZW1vdGVBUEkud2FpdEZvclJl
cXVlc3QoKTsKICAgICAgICAgfSkudGhlbigoKSA9PiB7CiAgICAgICAgICAgICBhc3NlcnQuZXF1
YWwocmVxdWVzdHMubGVuZ3RoLCAzKTsKQEAgLTczNyw2ICs3NDksOCBAQCBkZXNjcmliZSgnc3lu
Yy1idWlsZGJvdCcsIGZ1bmN0aW9uICgpIHsKIAogICAgICAgICAgICAgTW9ja1JlbW90ZUFQSS5y
ZXNldCgpOwogICAgICAgICAgICAgc3luY1Byb21pc2UgPSB0cmlnZ2VyYWJsZS5pbml0U3luY2Vy
cygpLnRoZW4oKCkgPT4gdHJpZ2dlcmFibGUuc3luY09uY2UoKSk7CisgICAgICAgICAgICBhc3Nl
cnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1swXSwgJ0dFVCcsIE1vY2tEYXRhLmJ1aWxkYm90
QnVpbGRlcnNVUkxEZXByZWNhdGVkKCksIE1vY2tEYXRhLm1vY2tCdWlsZGJvdEJ1aWxkZXJzRGVw
cmVjYXRlZCgpKTsKKyAgICAgICAgICAgIE1vY2tSZW1vdGVBUEkucmVzZXQoKTsKICAgICAgICAg
ICAgIHJldHVybiBNb2NrUmVtb3RlQVBJLndhaXRGb3JSZXF1ZXN0KCk7CiAgICAgICAgIH0pLnRo
ZW4oKCkgPT4gewogICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlcXVlc3RzLmxlbmd0aCwgMyk7
CkBAIC05MTEsNiArOTI1LDggQEAgZGVzY3JpYmUoJ3N5bmMtYnVpbGRib3QnLCBmdW5jdGlvbiAo
KSB7CiAgICAgICAgICAgICBhc3NlcnQuZXF1YWwob3RoZXJSb290cy5sZW5ndGgsIDEpOwogICAg
ICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChvdGhlclJvb3RzWzBdLmZpbGVuYW1lKCksICdyb290
NDYuZGF0Jyk7CiAgICAgICAgICAgICBzeW5jUHJvbWlzZSA9IHRyaWdnZXJhYmxlLmluaXRTeW5j
ZXJzKCkudGhlbigoKSA9PiB0cmlnZ2VyYWJsZS5zeW5jT25jZSgpKTsKKyAgICAgICAgICAgIGFz
c2VydEFuZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3RzWzBdLCAnR0VUJywgTW9ja0RhdGEuYnVpbGRi
b3RCdWlsZGVyc1VSTERlcHJlY2F0ZWQoKSwgTW9ja0RhdGEubW9ja0J1aWxkYm90QnVpbGRlcnNE
ZXByZWNhdGVkKCkpOworICAgICAgICAgICAgTW9ja1JlbW90ZUFQSS5yZXNldCgpOwogICAgICAg
ICAgICAgcmV0dXJuIE1vY2tSZW1vdGVBUEkud2FpdEZvclJlcXVlc3QoKTsKICAgICAgICAgfSku
dGhlbigoKSA9PiB7CiAgICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVxdWVzdHMubGVuZ3RoLCAz
KTsKQEAgLTk4Miw2ICs5OTgsOCBAQCBkZXNjcmliZSgnc3luYy1idWlsZGJvdCcsIGZ1bmN0aW9u
ICgpIHsKICAgICAgICAgICAgIGFzc2VydC5lcXVhbChvdGhlckJ1aWxkUmVxdWVzdC5idWlsZElk
KCksIG51bGwpOwogCiAgICAgICAgICAgICBzeW5jUHJvbWlzZSA9IHRyaWdnZXJhYmxlLmluaXRT
eW5jZXJzKCkudGhlbigoKSA9PiB0cmlnZ2VyYWJsZS5zeW5jT25jZSgpKTsKKyAgICAgICAgICAg
IGFzc2VydEFuZFJlc29sdmVSZXF1ZXN0KHJlcXVlc3RzWzBdLCAnR0VUJywgTW9ja0RhdGEuYnVp
bGRib3RCdWlsZGVyc1VSTERlcHJlY2F0ZWQoKSwgTW9ja0RhdGEubW9ja0J1aWxkYm90QnVpbGRl
cnNEZXByZWNhdGVkKCkpOworICAgICAgICAgICAgTW9ja1JlbW90ZUFQSS5yZXNldCgpOwogICAg
ICAgICAgICAgcmV0dXJuIFByb21pc2UuYWxsKFtNb2NrUmVtb3RlQVBJLndhaXRGb3JSZXF1ZXN0
KCksIHVwbG9hZFJvb3QoMSwgMTIzKV0pOwogICAgICAgICB9KS50aGVuKCgpID0+IHsKICAgICAg
ICAgICAgIGFzc2VydC5lcXVhbChyZXF1ZXN0cy5sZW5ndGgsIDMpOwpAQCAtMTA2Niw2ICsxMDg0
LDggQEAgZGVzY3JpYmUoJ3N5bmMtYnVpbGRib3QnLCBmdW5jdGlvbiAoKSB7CiAgICAgICAgICAg
ICBhc3NlcnQuZXF1YWwob3RoZXJCdWlsZFJlcXVlc3QuYnVpbGRJZCgpLCBudWxsKTsKIAogICAg
ICAgICAgICAgc3luY1Byb21pc2UgPSB0cmlnZ2VyYWJsZS5pbml0U3luY2VycygpLnRoZW4oKCkg
PT4gdHJpZ2dlcmFibGUuc3luY09uY2UoKSk7CisgICAgICAgICAgICBhc3NlcnRBbmRSZXNvbHZl
UmVxdWVzdChyZXF1ZXN0c1swXSwgJ0dFVCcsIE1vY2tEYXRhLmJ1aWxkYm90QnVpbGRlcnNVUkxE
ZXByZWNhdGVkKCksIE1vY2tEYXRhLm1vY2tCdWlsZGJvdEJ1aWxkZXJzRGVwcmVjYXRlZCgpKTsK
KyAgICAgICAgICAgIE1vY2tSZW1vdGVBUEkucmVzZXQoKTsKICAgICAgICAgICAgIHJldHVybiBN
b2NrUmVtb3RlQVBJLndhaXRGb3JSZXF1ZXN0KCk7CiAgICAgICAgIH0pLnRoZW4oKCkgPT4gewog
ICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlcXVlc3RzLmxlbmd0aCwgMyk7CkBAIC0xMTcyLDYg
KzExOTIsOCBAQCBkZXNjcmliZSgnc3luYy1idWlsZGJvdCcsIGZ1bmN0aW9uICgpIHsKICAgICAg
ICAgICAgIGFzc2VydC5kZWVwRXF1YWwob3RoZXJDb21taXRTZXQuYWxsUm9vdEZpbGVzKCksIFtd
KTsKIAogICAgICAgICAgICAgc3luY1Byb21pc2UgPSB0cmlnZ2VyYWJsZS5pbml0U3luY2Vycygp
LnRoZW4oKCkgPT4gdHJpZ2dlcmFibGUuc3luY09uY2UoKSk7CisgICAgICAgICAgICBhc3NlcnRB
bmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1swXSwgJ0dFVCcsIE1vY2tEYXRhLmJ1aWxkYm90QnVp
bGRlcnNVUkxEZXByZWNhdGVkKCksIE1vY2tEYXRhLm1vY2tCdWlsZGJvdEJ1aWxkZXJzRGVwcmVj
YXRlZCgpKTsKKyAgICAgICAgICAgIE1vY2tSZW1vdGVBUEkucmVzZXQoKTsKICAgICAgICAgICAg
IHJldHVybiBNb2NrUmVtb3RlQVBJLndhaXRGb3JSZXF1ZXN0KCk7CiAgICAgICAgIH0pLnRoZW4o
KCkgPT4gewogICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlcXVlc3RzLmxlbmd0aCwgMyk7CkBA
IC0xMjkxLDYgKzEzMTMsOCBAQCBkZXNjcmliZSgnc3luYy1idWlsZGJvdCcsIGZ1bmN0aW9uICgp
IHsKIAogICAgICAgICAgICAgTW9ja1JlbW90ZUFQSS5yZXNldCgpOwogICAgICAgICAgICAgc3lu
Y1Byb21pc2UgPSB0cmlnZ2VyYWJsZS5pbml0U3luY2VycygpLnRoZW4oKCkgPT4gdHJpZ2dlcmFi
bGUuc3luY09uY2UoKSk7CisgICAgICAgICAgICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1
ZXN0c1swXSwgJ0dFVCcsIE1vY2tEYXRhLmJ1aWxkYm90QnVpbGRlcnNVUkxEZXByZWNhdGVkKCks
IE1vY2tEYXRhLm1vY2tCdWlsZGJvdEJ1aWxkZXJzRGVwcmVjYXRlZCgpKTsKKyAgICAgICAgICAg
IE1vY2tSZW1vdGVBUEkucmVzZXQoKTsKICAgICAgICAgICAgIHJldHVybiBNb2NrUmVtb3RlQVBJ
LndhaXRGb3JSZXF1ZXN0KCk7CiAgICAgICAgIH0pLnRoZW4oKCkgPT4gewogICAgICAgICAgICAg
YXNzZXJ0LmVxdWFsKHJlcXVlc3RzLmxlbmd0aCwgMyk7CkBAIC0xNDY3LDYgKzE0OTEsOCBAQCBk
ZXNjcmliZSgnc3luYy1idWlsZGJvdCcsIGZ1bmN0aW9uICgpIHsKICAgICAgICAgICAgIGFzc2Vy
dC5kZWVwRXF1YWwob3RoZXJDb21taXRTZXQuYWxsUm9vdEZpbGVzKCksIFtdKTsKIAogICAgICAg
ICAgICAgc3luY1Byb21pc2UgPSB0cmlnZ2VyYWJsZS5pbml0U3luY2VycygpLnRoZW4oKCkgPT4g
dHJpZ2dlcmFibGUuc3luY09uY2UoKSk7CisgICAgICAgICAgICBhc3NlcnRBbmRSZXNvbHZlUmVx
dWVzdChyZXF1ZXN0c1swXSwgJ0dFVCcsIE1vY2tEYXRhLmJ1aWxkYm90QnVpbGRlcnNVUkxEZXBy
ZWNhdGVkKCksIE1vY2tEYXRhLm1vY2tCdWlsZGJvdEJ1aWxkZXJzRGVwcmVjYXRlZCgpKTsKKyAg
ICAgICAgICAgIE1vY2tSZW1vdGVBUEkucmVzZXQoKTsKICAgICAgICAgICAgIHJldHVybiBNb2Nr
UmVtb3RlQVBJLndhaXRGb3JSZXF1ZXN0KCk7CiAgICAgICAgIH0pLnRoZW4oKCkgPT4gewogICAg
ICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlcXVlc3RzLmxlbmd0aCwgMyk7CkBAIC0xNjI3LDYgKzE2
NTMsOCBAQCBkZXNjcmliZSgnc3luYy1idWlsZGJvdCcsIGZ1bmN0aW9uICgpIHsKIAogICAgICAg
ICAgICAgTW9ja1JlbW90ZUFQSS5yZXNldCgpOwogICAgICAgICAgICAgc3luY1Byb21pc2UgPSB0
cmlnZ2VyYWJsZS5pbml0U3luY2VycygpLnRoZW4oKCkgPT4gdHJpZ2dlcmFibGUuc3luY09uY2Uo
KSk7CisgICAgICAgICAgICBhc3NlcnRBbmRSZXNvbHZlUmVxdWVzdChyZXF1ZXN0c1swXSwgJ0dF
VCcsIE1vY2tEYXRhLmJ1aWxkYm90QnVpbGRlcnNVUkxEZXByZWNhdGVkKCksIE1vY2tEYXRhLm1v
Y2tCdWlsZGJvdEJ1aWxkZXJzRGVwcmVjYXRlZCgpKTsKKyAgICAgICAgICAgIE1vY2tSZW1vdGVB
UEkucmVzZXQoKTsKICAgICAgICAgICAgIHJldHVybiBNb2NrUmVtb3RlQVBJLndhaXRGb3JSZXF1
ZXN0KCk7CiAgICAgICAgIH0pLnRoZW4oKCkgPT4gewogICAgICAgICAgICAgYXNzZXJ0LmVxdWFs
KHJlcXVlc3RzLmxlbmd0aCwgMyk7CkluZGV4OiBXZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvc2Vy
dmVyLXRlc3RzL3Jlc291cmNlcy9tb2NrLWRhdGEuanMKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2Vic2l0ZXMv
cGVyZi53ZWJraXQub3JnL3NlcnZlci10ZXN0cy9yZXNvdXJjZXMvbW9jay1kYXRhLmpzCShyZXZp
c2lvbiAyMjcxNzYpCisrKyBXZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvc2VydmVyLXRlc3RzL3Jl
c291cmNlcy9tb2NrLWRhdGEuanMJKHdvcmtpbmcgY29weSkKQEAgLTE3LDYgKzE3LDggQEAgTW9j
a0RhdGEgPSB7CiAgICAganNjUmVwb3NpdG9yeUlkKCkgeyByZXR1cm4gMjIyOyB9LAogICAgIGdp
dFdlYmtpdFJlcG9zaXRvcnlJZCgpIHsgcmV0dXJuIDExMTsgfSwKICAgICBzaGFyZWRSZXBvc2l0
b3J5SWQoKSB7IHJldHVybiAxNDsgfSwKKyAgICBidWlsZGJvdEJ1aWxkZXJzVVJMRGVwcmVjYXRl
ZCgpIHtyZXR1cm4gJy9qc29uL2J1aWxkZXJzJ30sCisgICAgYnVpbGRib3RCdWlsZGVyc1VSTCgp
IHtyZXR1cm4gJy9hcGkvdjIvYnVpbGRlcnMnfSwKICAgICBhZGRNb2NrQ29uZmlndXJhdGlvbjog
ZnVuY3Rpb24gKGRiKQogICAgIHsKICAgICAgICAgcmV0dXJuIFByb21pc2UuYWxsKFsKQEAgLTIy
MCw2ICsyMjIsNjAgQEAgTW9ja0RhdGEgPSB7CiAgICAgICAgICAgICBdCiAgICAgICAgIH0KICAg
ICB9LAorICAgIG1vY2tCdWlsZGJvdEJ1aWxkZXJzRGVwcmVjYXRlZDogZnVuY3Rpb24gKCkKKyAg
ICB7CisgICAgICAgIHJldHVybiB7CisgICAgICAgICAgICAic29tZSBidWlsZGVyIjogeworICAg
ICAgICAgICAgICAgICJzbGF2ZXMiOiBbICJzb21lLXNsYXZlLTEiIF0KKyAgICAgICAgICAgIH0s
CisgICAgICAgICAgICAic29tZS1idWlsZGVyLTEiOiB7CisgICAgICAgICAgICAgICAgInNsYXZl
cyI6IFsgInNvbWUtc2xhdmUtMiIgXQorICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICJzb21l
IGJ1aWxkZXIgMiI6IHsKKyAgICAgICAgICAgICAgICAic2xhdmVzIjogWyAic29tZS1zbGF2ZS0z
IiBdCisgICAgICAgICAgICB9LAorICAgICAgICAgICAgIm90aGVyIGJ1aWxkZXIiOiB7CisgICAg
ICAgICAgICAgICAgInNsYXZlcyI6IFsgInNvbWUtc2xhdmUtNCIgXQorICAgICAgICAgICAgfSwK
KyAgICAgICAgICAgICJzb21lIHRlc3RlciI6IHsKKyAgICAgICAgICAgICAgICAic2xhdmVzIjog
WyAic29tZS1zbGF2ZS01IiBdCisgICAgICAgICAgICB9LAorICAgICAgICAgICAgImFub3RoZXIg
dGVzdGVyIjogeworICAgICAgICAgICAgICAgICJzbGF2ZXMiOiBbICJzb21lLXNsYXZlLTYiIF0K
KyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgIH0sCisgICAgbW9ja0J1aWxkYm90QnVpbGRl
cnM6IGZ1bmN0aW9uICgpCisgICAgeworICAgICAgICByZXR1cm4geworICAgICAgICAgICAgImJ1
aWxkZXJzIjogWworICAgICAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAgICAgImJ1aWxk
ZXJpZCI6IDEsCisgICAgICAgICAgICAgICAgICAgICJuYW1lIjogInNvbWUgYnVpbGRlciIsCisg
ICAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgICAg
ICJidWlsZGVyaWQiOiAyLAorICAgICAgICAgICAgICAgICAgICAibmFtZSI6ICJzb21lLWJ1aWxk
ZXItMSIsCisgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICAgICB7CisgICAgICAgICAg
ICAgICAgICAgICJidWlsZGVyaWQiOiAzLAorICAgICAgICAgICAgICAgICAgICAibmFtZSI6ICJz
b21lIGJ1aWxkZXIgMiIsCisgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICAgICB7Cisg
ICAgICAgICAgICAgICAgICAgICJidWlsZGVyaWQiOiA0LAorICAgICAgICAgICAgICAgICAgICAi
bmFtZSI6ICJvdGhlciBidWlsZGVyIiwKKyAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAg
ICAgIHsKKyAgICAgICAgICAgICAgICAgICAgImJ1aWxkZXJpZCI6IDUsCisgICAgICAgICAgICAg
ICAgICAgICJuYW1lIjogInNvbWUgdGVzdGVyIiwKKyAgICAgICAgICAgICAgICB9LAorICAgICAg
ICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAgICAgImJ1aWxkZXJpZCI6IDYsCisgICAgICAg
ICAgICAgICAgICAgICJuYW1lIjogImFub3RoZXIgdGVzdGVyIiwKKyAgICAgICAgICAgICAgICB9
CisgICAgICAgICAgICBdCisgICAgICAgIH0KKyAgICB9LAogICAgIHBlbmRpbmdCdWlsZChvcHRp
b25zKQogICAgIHsKICAgICAgICAgb3B0aW9ucyA9IG9wdGlvbnMgfHwge307CkluZGV4OiBXZWJz
aXRlcy9wZXJmLndlYmtpdC5vcmcvdG9vbHMvanMvYnVpbGRib3Qtc3luY2VyLmpzCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFdlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy90b29scy9qcy9idWlsZGJvdC1zeW5jZXIu
anMJKHJldmlzaW9uIDIyNzE3NikKKysrIFdlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy90b29scy9q
cy9idWlsZGJvdC1zeW5jZXIuanMJKHdvcmtpbmcgY29weSkKQEAgLTY3LDYgKzY3LDcgQEAgY2xh
c3MgQnVpbGRib3RTeW5jZXIgewogICAgICAgICB0aGlzLl9wbGF0Zm9ybVByb3BlcnR5TmFtZSA9
IGNvbW1vbkNvbmZpZ3VyYXRpb25zLnBsYXRmb3JtQXJndW1lbnQ7CiAgICAgICAgIHRoaXMuX2J1
aWxkUmVxdWVzdFByb3BlcnR5TmFtZSA9IGNvbW1vbkNvbmZpZ3VyYXRpb25zLmJ1aWxkUmVxdWVz
dEFyZ3VtZW50OwogICAgICAgICB0aGlzLl9idWlsZGVyTmFtZSA9IG9iamVjdC5idWlsZGVyOwor
ICAgICAgICB0aGlzLl9idWlsZGVySUQgPSBvYmplY3QuYnVpbGRlcklEOwogICAgICAgICB0aGlz
Ll9zbGF2ZUxpc3QgPSBvYmplY3Quc2xhdmVMaXN0OwogICAgICAgICB0aGlzLl9lbnRyeUxpc3Qg
PSBudWxsOwogICAgICAgICB0aGlzLl9zbGF2ZXNXaXRoTmV3UmVxdWVzdHMgPSBuZXcgU2V0OwpA
QCAtMzE3LDggKzMxOCw5IEBAIGNsYXNzIEJ1aWxkYm90U3luY2VyIHsKICAgICAgICAgcmV0dXJu
IHJldmlzaW9uU2V0OwogICAgIH0KIAotICAgIHN0YXRpYyBfbG9hZENvbmZpZyhyZW1vdGUsIGNv
bmZpZykKKyAgICBzdGF0aWMgX2xvYWRDb25maWcocmVtb3RlLCBjb25maWcsIGJ1aWxkZXJOYW1l
VG9JRE1hcCkKICAgICB7CisgICAgICAgIGFzc2VydChidWlsZGVyTmFtZVRvSURNYXApOwogICAg
ICAgICBjb25zdCB0eXBlcyA9IGNvbmZpZ1sndHlwZXMnXSB8fCB7fTsKICAgICAgICAgY29uc3Qg
YnVpbGRlcnMgPSBjb25maWdbJ2J1aWxkZXJzJ10gfHwge307CiAKQEAgLTM0OCw3ICszNTAsNyBA
QCBjbGFzcyBCdWlsZGJvdFN5bmNlciB7CiAgICAgICAgIH0KIAogICAgICAgICBhc3NlcnQoQXJy
YXkuaXNBcnJheShjb25maWdbJ3Rlc3RDb25maWd1cmF0aW9ucyddKSwgYFRoZSB0ZXN0IGNvbmZp
Z3VyYXRpb24gbXVzdCBiZSBhbiBhcnJheWApOwotICAgICAgICB0aGlzLl9yZXNvbHZlQnVpbGRl
cnNXaXRoUGxhdGZvcm1zKCd0ZXN0JywgY29uZmlnWyd0ZXN0Q29uZmlndXJhdGlvbnMnXSwgYnVp
bGRlcnMpLmZvckVhY2goKGVudHJ5LCBjb25maWd1cmF0aW9uSW5kZXgpID0+IHsKKyAgICAgICAg
dGhpcy5fcmVzb2x2ZUJ1aWxkZXJzV2l0aFBsYXRmb3JtcygndGVzdCcsIGNvbmZpZ1sndGVzdENv
bmZpZ3VyYXRpb25zJ10sIGJ1aWxkZXJzLCBidWlsZGVyTmFtZVRvSURNYXApLmZvckVhY2goKGVu
dHJ5LCBjb25maWd1cmF0aW9uSW5kZXgpID0+IHsKICAgICAgICAgICAgIGFzc2VydChBcnJheS5p
c0FycmF5KGVudHJ5Wyd0eXBlcyddKSwgYFRoZSB0ZXN0IGNvbmZpZ3VyYXRpb24gJHtjb25maWd1
cmF0aW9uSW5kZXh9IGRvZXMgbm90IHNwZWNpZnkgInR5cGVzIiBhcyBhbiBhcnJheWApOwogICAg
ICAgICAgICAgZm9yIChjb25zdCB0eXBlIG9mIGVudHJ5Wyd0eXBlcyddKSB7CiAgICAgICAgICAg
ICAgICAgY29uc3QgdHlwZUNvbmZpZyA9IHRoaXMuX3ZhbGlkYXRlQW5kTWVyZ2VDb25maWcoe30s
IGVudHJ5LmJ1aWxkZXJDb25maWcpOwpAQCAtMzY2LDcgKzM2OCw3IEBAIGNsYXNzIEJ1aWxkYm90
U3luY2VyIHsKICAgICAgICAgY29uc3QgYnVpbGRDb25maWd1cmF0aW9ucyA9IGNvbmZpZ1snYnVp
bGRDb25maWd1cmF0aW9ucyddOwogICAgICAgICBpZiAoYnVpbGRDb25maWd1cmF0aW9ucykgewog
ICAgICAgICAgICAgYXNzZXJ0KEFycmF5LmlzQXJyYXkoYnVpbGRDb25maWd1cmF0aW9ucyksIGBU
aGUgdGVzdCBjb25maWd1cmF0aW9uIG11c3QgYmUgYW4gYXJyYXlgKTsKLSAgICAgICAgICAgIHRo
aXMuX3Jlc29sdmVCdWlsZGVyc1dpdGhQbGF0Zm9ybXMoJ3Rlc3QnLCBidWlsZENvbmZpZ3VyYXRp
b25zLCBidWlsZGVycykuZm9yRWFjaCgoZW50cnksIGNvbmZpZ3VyYXRpb25JbmRleCkgPT4gewor
ICAgICAgICAgICAgdGhpcy5fcmVzb2x2ZUJ1aWxkZXJzV2l0aFBsYXRmb3JtcygndGVzdCcsIGJ1
aWxkQ29uZmlndXJhdGlvbnMsIGJ1aWxkZXJzLCBidWlsZGVyTmFtZVRvSURNYXApLmZvckVhY2go
KGVudHJ5LCBjb25maWd1cmF0aW9uSW5kZXgpID0+IHsKICAgICAgICAgICAgICAgICBjb25zdCBz
eW5jZXIgPSBlbnN1cmVCdWlsZGJvdFN5bmNlcihlbnRyeS5idWlsZGVyQ29uZmlnKTsKICAgICAg
ICAgICAgICAgICBhc3NlcnQoIXN5bmNlci5pc1Rlc3RlcigpLCBgVGhlIGJ1aWxkIGNvbmZpZ3Vy
YXRpb24gJHtjb25maWd1cmF0aW9uSW5kZXh9IHVzZXMgYSB0ZXN0ZXI6ICR7c3luY2VyLmJ1aWxk
ZXJOYW1lKCl9YCk7CiAgICAgICAgICAgICAgICAgc3luY2VyLmFkZEJ1aWxkQ29uZmlndXJhdGlv
bihlbnRyeS5wbGF0Zm9ybSwgZW50cnkuYnVpbGRlckNvbmZpZy5wcm9wZXJ0aWVzKTsKQEAgLTM3
Niw3ICszNzgsNyBAQCBjbGFzcyBCdWlsZGJvdFN5bmNlciB7CiAgICAgICAgIHJldHVybiBBcnJh
eS5mcm9tKHN5bmNlckJ5QnVpbGRlci52YWx1ZXMoKSk7CiAgICAgfQogCi0gICAgc3RhdGljIF9y
ZXNvbHZlQnVpbGRlcnNXaXRoUGxhdGZvcm1zKGNvbmZpZ3VyYXRpb25UeXBlLCBjb25maWd1cmF0
aW9uTGlzdCwgYnVpbGRlcnMpCisgICAgc3RhdGljIF9yZXNvbHZlQnVpbGRlcnNXaXRoUGxhdGZv
cm1zKGNvbmZpZ3VyYXRpb25UeXBlLCBjb25maWd1cmF0aW9uTGlzdCwgYnVpbGRlcnMsIGJ1aWxk
ZXJOYW1lVG9JRE1hcCkKICAgICB7CiAgICAgICAgIGNvbnN0IHJlc29sdmVkQ29uZmlndXJhdGlv
bnMgPSBbXTsKICAgICAgICAgbGV0IGNvbmZpZ3VyYXRpb25JbmRleCA9IDA7CkBAIC0zODgsNiAr
MzkwLDggQEAgY2xhc3MgQnVpbGRib3RTeW5jZXIgewogICAgICAgICAgICAgICAgIGNvbnN0IG1h
dGNoaW5nQnVpbGRlciA9IGJ1aWxkZXJzW2J1aWxkZXJLZXldOwogICAgICAgICAgICAgICAgIGFz
c2VydChtYXRjaGluZ0J1aWxkZXIsIGAiJHtidWlsZGVyS2V5fSIgaXMgbm90IGEgdmFsaWQgYnVp
bGRlciBpbiB0aGUgY29uZmlndXJhdGlvbmApOwogICAgICAgICAgICAgICAgIGFzc2VydCgnYnVp
bGRlcicgaW4gbWF0Y2hpbmdCdWlsZGVyLCBgQnVpbGRlciAke2J1aWxkZXJLZXl9IGRvZXMgbm90
IHNwZWNpZnkgYSBidWlsZGJvdCBidWlsZGVyIG5hbWVgKTsKKyAgICAgICAgICAgICAgICBhc3Nl
cnQobWF0Y2hpbmdCdWlsZGVyLmJ1aWxkZXIgaW4gYnVpbGRlck5hbWVUb0lETWFwLCBgQnVpbGRl
ciAke21hdGNoaW5nQnVpbGRlci5idWlsZGVyfSBub3QgZm91bmQgaW4gQnVpbGRib3QgY29uZmln
dXJhdGlvbi5gKTsKKyAgICAgICAgICAgICAgICBtYXRjaGluZ0J1aWxkZXJbJ2J1aWxkZXJJRCdd
ID0gYnVpbGRlck5hbWVUb0lETWFwW21hdGNoaW5nQnVpbGRlci5idWlsZGVyXTsKICAgICAgICAg
ICAgICAgICBjb25zdCBidWlsZGVyQ29uZmlnID0gdGhpcy5fdmFsaWRhdGVBbmRNZXJnZUNvbmZp
Zyh7fSwgbWF0Y2hpbmdCdWlsZGVyKTsKICAgICAgICAgICAgICAgICBmb3IgKGNvbnN0IHBsYXRm
b3JtTmFtZSBvZiBlbnRyeVsncGxhdGZvcm1zJ10pIHsKICAgICAgICAgICAgICAgICAgICAgY29u
c3QgcGxhdGZvcm0gPSBQbGF0Zm9ybS5maW5kQnlOYW1lKHBsYXRmb3JtTmFtZSk7CkBAIC01NjUs
NiArNTY5LDEwIEBAIGNsYXNzIEJ1aWxkYm90U3luY2VyIHsKICAgICAgICAgICAgICAgICBhc3Nl
cnQuZXF1YWwodHlwZW9mKHZhbHVlKSwgJ3N0cmluZycsIGAke25hbWV9IHNob3VsZCBiZSBvZiBz
dHJpbmcgdHlwZWApOwogICAgICAgICAgICAgICAgIGNvbmZpZ1tuYW1lXSA9IHZhbHVlOwogICAg
ICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgY2FzZSAnYnVpbGRlcklEJzoKKyAgICAg
ICAgICAgICAgICBhc3NlcnQodmFsdWUsICdidWlsZGVySUQgc2hvdWxkIG5vdCBiZSB1bmRlZmlu
ZWQuJyk7CisgICAgICAgICAgICAgICAgY29uZmlnW25hbWVdID0gdmFsdWU7CisgICAgICAgICAg
ICAgICAgYnJlYWs7CiAgICAgICAgICAgICBkZWZhdWx0OgogICAgICAgICAgICAgICAgIGFzc2Vy
dChmYWxzZSwgYFVucmVjb2duaXplZCBwYXJhbWV0ZXIgIiR7bmFtZX0iYCk7CiAgICAgICAgICAg
ICB9CkluZGV4OiBXZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvdG9vbHMvanMvYnVpbGRib3QtdHJp
Z2dlcmFibGUuanMKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL3Rvb2xz
L2pzL2J1aWxkYm90LXRyaWdnZXJhYmxlLmpzCShyZXZpc2lvbiAyMjcxNzYpCisrKyBXZWJzaXRl
cy9wZXJmLndlYmtpdC5vcmcvdG9vbHMvanMvYnVpbGRib3QtdHJpZ2dlcmFibGUuanMJKHdvcmtp
bmcgY29weSkKQEAgLTI3LDExICsyNywzNiBAQCBjbGFzcyBCdWlsZGJvdFRyaWdnZXJhYmxlIHsK
ICAgICAgICAgdGhpcy5fbG9nZ2VyID0gbG9nZ2VyIHx8IHtsb2c6ICgpID0+IHsgfSwgZXJyb3I6
ICgpID0+IHsgfX07CiAgICAgfQogCisgICAgLy8gVGhpcyBtZXRob2QgaGFuZGxlcyBCdWlsZGJv
dCAwLjkgZGF0YSBmb3JtYXQKKyAgICBnZXRCdWlsZGVyTmFtZVRvSURNYXAoKQorICAgIHsKKyAg
ICAgICAgcmV0dXJuIHRoaXMuX2J1aWxkYm90UmVtb3RlLmdldEpTT04oIi9hcGkvdjIvYnVpbGRl
cnMiKS50aGVuKChjb250ZW50KSA9PiB7CisgICAgICAgICAgICBhc3NlcnQoY29udGVudC5idWls
ZGVycyBpbnN0YW5jZW9mIEFycmF5KTsKKworICAgICAgICAgICAgY29uc3QgYnVpbGRlck5hbWVU
b0lETWFwID0ge307CisgICAgICAgICAgICBmb3IgKGNvbnN0IGJ1aWxkZXIgb2YgY29udGVudC5i
dWlsZGVycykKKyAgICAgICAgICAgICAgICBidWlsZGVyTmFtZVRvSURNYXBbYnVpbGRlci5uYW1l
XSA9IGJ1aWxkZXIuYnVpbGRlcmlkOworCisgICAgICAgICAgICByZXR1cm4gYnVpbGRlck5hbWVU
b0lETWFwOworICAgICAgICB9KTsKKyAgICB9CisKKyAgICAvLyBUaGlzIG1ldGhvZCBoYW5kbGVz
IEJ1aWxkYm90IDAuOCBkYXRhIGZvcm1hdAorICAgIGdldEJ1aWxkZXJOYW1lVG9JRE1hcERlcHJl
Y2F0ZWQoKQorICAgIHsKKyAgICAgICAgcmV0dXJuIHRoaXMuX2J1aWxkYm90UmVtb3RlLmdldEpT
T04oIi9qc29uL2J1aWxkZXJzIikudGhlbigoY29udGVudCkgPT4geworICAgICAgICAgICAgY29u
c3QgYnVpbGRlck5hbWVUb0lETWFwID0ge307CisgICAgICAgICAgICBmb3IgKGxldCBidWlsZGVy
IGluIGNvbnRlbnQpCisgICAgICAgICAgICAgICAgYnVpbGRlck5hbWVUb0lETWFwW2J1aWxkZXJd
ID0gYnVpbGRlcjsKKworICAgICAgICAgICAgcmV0dXJuIGJ1aWxkZXJOYW1lVG9JRE1hcDsKKyAg
ICAgICAgfSk7CisgICAgfQorCiAgICAgaW5pdFN5bmNlcnMoKQogICAgIHsKLSAgICAgICAgcmV0
dXJuIG5ldyBQcm9taXNlKChyZXNvbHZlLCByZWplY3QpID0+IHsKLSAgICAgICAgICAgIHRoaXMu
X3N5bmNlcnMgPSBCdWlsZGJvdFN5bmNlci5fbG9hZENvbmZpZyh0aGlzLl9idWlsZGJvdFJlbW90
ZSwgdGhpcy5fY29uZmlnKTsKLSAgICAgICAgICAgIHNldFRpbWVvdXQocmVzb2x2ZSwgMCk7Cisg
ICAgICAgIHJldHVybiB0aGlzLmdldEJ1aWxkZXJOYW1lVG9JRE1hcERlcHJlY2F0ZWQoKS50aGVu
KChidWlsZGVyTmFtZVRvSURNYXApID0+IHsKKyAgICAgICAgICAgIHRoaXMuX3N5bmNlcnMgPSBC
dWlsZGJvdFN5bmNlci5fbG9hZENvbmZpZyh0aGlzLl9idWlsZGJvdFJlbW90ZSwgdGhpcy5fY29u
ZmlnLCBidWlsZGVyTmFtZVRvSURNYXApOwogICAgICAgICB9KTsKICAgICB9CiAKSW5kZXg6IFdl
YnNpdGVzL3BlcmYud2Via2l0Lm9yZy91bml0LXRlc3RzL2J1aWxkYm90LXN5bmNlci10ZXN0cy5q
cwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBXZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvdW5pdC10ZXN0cy9idWls
ZGJvdC1zeW5jZXItdGVzdHMuanMJKHJldmlzaW9uIDIyNzE3NikKKysrIFdlYnNpdGVzL3BlcmYu
d2Via2l0Lm9yZy91bml0LXRlc3RzL2J1aWxkYm90LXN5bmNlci10ZXN0cy5qcwkod29ya2luZyBj
b3B5KQpAQCAtMTQzLDYgKzE0MywxOSBAQCBmdW5jdGlvbiBzbWFsbENvbmZpZ3VyYXRpb24oKQog
ICAgIH07CiB9CiAKK2Z1bmN0aW9uIGJ1aWxkZXJOYW1lVG9JRE1hcCgpCit7CisgICAgcmV0dXJu
IHsKKyAgICAgICAgJ3NvbWUgYnVpbGRlcicgOiAnMTAwJywKKyAgICAgICAgJ0FCVGVzdC1pUGhv
bmUtUnVuQmVuY2htYXJrLVRlc3RzJzogJzEwMScsCisgICAgICAgICdBQlRlc3QtaVBhZC1SdW5C
ZW5jaG1hcmstVGVzdHMnOiAnMTAyJywKKyAgICAgICAgJ0FCVGVzdC1pT1MtQnVpbGRlcic6ICcx
MDMnLAorICAgICAgICAnaVBob25lIEFCIFRlc3RzJyA6ICcxMDQnLAorICAgICAgICAnaVBob25l
IDIgQUIgVGVzdHMnOiAnMTA1JywKKyAgICAgICAgJ2lQYWQgQUIgVGVzdHMnOiAnMTA2JworICAg
IH0gICAgCit9CisKIGZ1bmN0aW9uIHNtYWxsUGVuZGluZ0J1aWxkKCkKIHsKICAgICByZXR1cm4g
ewpAQCAtNDc3LDM5ICs0OTAsMzkgQEAgZGVzY3JpYmUoJ0J1aWxkYm90U3luY2VyJywgKCkgPT4g
ewogICAgIGRlc2NyaWJlKCdfbG9hZENvbmZpZycsICgpID0+IHsKIAogICAgICAgICBpdCgnc2hv
dWxkIGNyZWF0ZSBCdWlsZGJvdFN5bmNlciBvYmplY3RzIGZvciBhIGNvbmZpZ3VyYXRpb24gdGhh
dCBzcGVjaWZ5IGFsbCByZXF1aXJlZCBvcHRpb25zJywgKCkgPT4gewotICAgICAgICAgICAgYXNz
ZXJ0LmVxdWFsKEJ1aWxkYm90U3luY2VyLl9sb2FkQ29uZmlnKE1vY2tSZW1vdGVBUEksIHNtYWxs
Q29uZmlndXJhdGlvbigpKS5sZW5ndGgsIDEpOworICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKEJ1
aWxkYm90U3luY2VyLl9sb2FkQ29uZmlnKE1vY2tSZW1vdGVBUEksIHNtYWxsQ29uZmlndXJhdGlv
bigpLCBidWlsZGVyTmFtZVRvSURNYXAoKSkubGVuZ3RoLCAxKTsKICAgICAgICAgfSk7CiAKICAg
ICAgICAgaXQoJ3Nob3VsZCB0aHJvdyB3aGVuIHNvbWUgcmVxdWlyZWQgb3B0aW9ucyBhcmUgbWlz
c2luZycsICgpID0+IHsKICAgICAgICAgICAgIGFzc2VydC50aHJvd3MoKCkgPT4gewogICAgICAg
ICAgICAgICAgIGNvbnN0IGNvbmZpZyA9IHNtYWxsQ29uZmlndXJhdGlvbigpOwogICAgICAgICAg
ICAgICAgIGRlbGV0ZSBjb25maWcuYnVpbGRlcnM7Ci0gICAgICAgICAgICAgICAgQnVpbGRib3RT
eW5jZXIuX2xvYWRDb25maWcoTW9ja1JlbW90ZUFQSSwgY29uZmlnKTsKKyAgICAgICAgICAgICAg
ICBCdWlsZGJvdFN5bmNlci5fbG9hZENvbmZpZyhNb2NrUmVtb3RlQVBJLCBjb25maWcsIGJ1aWxk
ZXJOYW1lVG9JRE1hcCgpKTsKICAgICAgICAgICAgIH0sIC8ic29tZS1idWlsZGVyIiBpcyBub3Qg
YSB2YWxpZCBidWlsZGVyIGluIHRoZSBjb25maWd1cmF0aW9uLyk7CiAgICAgICAgICAgICBhc3Nl
cnQudGhyb3dzKCgpID0+IHsKICAgICAgICAgICAgICAgICBjb25zdCBjb25maWcgPSBzbWFsbENv
bmZpZ3VyYXRpb24oKTsKICAgICAgICAgICAgICAgICBkZWxldGUgY29uZmlnLnR5cGVzOwotICAg
ICAgICAgICAgICAgIEJ1aWxkYm90U3luY2VyLl9sb2FkQ29uZmlnKE1vY2tSZW1vdGVBUEksIGNv
bmZpZyk7CisgICAgICAgICAgICAgICAgQnVpbGRib3RTeW5jZXIuX2xvYWRDb25maWcoTW9ja1Jl
bW90ZUFQSSwgY29uZmlnLCBidWlsZGVyTmFtZVRvSURNYXAoKSk7CiAgICAgICAgICAgICB9LCAv
InNvbWUtdGVzdCIgaXMgbm90IGEgdmFsaWQgdHlwZSBpbiB0aGUgY29uZmlndXJhdGlvbi8pOwog
ICAgICAgICAgICAgYXNzZXJ0LnRocm93cygoKSA9PiB7CiAgICAgICAgICAgICAgICAgY29uc3Qg
Y29uZmlnID0gc21hbGxDb25maWd1cmF0aW9uKCk7CiAgICAgICAgICAgICAgICAgZGVsZXRlIGNv
bmZpZy50ZXN0Q29uZmlndXJhdGlvbnNbMF0uYnVpbGRlcnM7Ci0gICAgICAgICAgICAgICAgQnVp
bGRib3RTeW5jZXIuX2xvYWRDb25maWcoTW9ja1JlbW90ZUFQSSwgY29uZmlnKTsKKyAgICAgICAg
ICAgICAgICBCdWlsZGJvdFN5bmNlci5fbG9hZENvbmZpZyhNb2NrUmVtb3RlQVBJLCBjb25maWcs
IGJ1aWxkZXJOYW1lVG9JRE1hcCgpKTsKICAgICAgICAgICAgIH0sIC9UaGUgdGVzdCBjb25maWd1
cmF0aW9uIDEgZG9lcyBub3Qgc3BlY2lmeSAiYnVpbGRlcnMiIGFzIGFuIGFycmF5Lyk7CiAgICAg
ICAgICAgICBhc3NlcnQudGhyb3dzKCgpID0+IHsKICAgICAgICAgICAgICAgICBjb25zdCBjb25m
aWcgPSBzbWFsbENvbmZpZ3VyYXRpb24oKTsKICAgICAgICAgICAgICAgICBkZWxldGUgY29uZmln
LnRlc3RDb25maWd1cmF0aW9uc1swXS5wbGF0Zm9ybXM7Ci0gICAgICAgICAgICAgICAgQnVpbGRi
b3RTeW5jZXIuX2xvYWRDb25maWcoTW9ja1JlbW90ZUFQSSwgY29uZmlnKTsKKyAgICAgICAgICAg
ICAgICBCdWlsZGJvdFN5bmNlci5fbG9hZENvbmZpZyhNb2NrUmVtb3RlQVBJLCBjb25maWcsIGJ1
aWxkZXJOYW1lVG9JRE1hcCgpKTsKICAgICAgICAgICAgIH0sIC9UaGUgdGVzdCBjb25maWd1cmF0
aW9uIDEgZG9lcyBub3Qgc3BlY2lmeSAicGxhdGZvcm1zIiBhcyBhbiBhcnJheS8pOwogICAgICAg
ICAgICAgYXNzZXJ0LnRocm93cygoKSA9PiB7CiAgICAgICAgICAgICAgICAgY29uc3QgY29uZmln
ID0gc21hbGxDb25maWd1cmF0aW9uKCk7CiAgICAgICAgICAgICAgICAgZGVsZXRlIGNvbmZpZy50
ZXN0Q29uZmlndXJhdGlvbnNbMF0udHlwZXM7Ci0gICAgICAgICAgICAgICAgQnVpbGRib3RTeW5j
ZXIuX2xvYWRDb25maWcoTW9ja1JlbW90ZUFQSSwgY29uZmlnKTsKKyAgICAgICAgICAgICAgICBC
dWlsZGJvdFN5bmNlci5fbG9hZENvbmZpZyhNb2NrUmVtb3RlQVBJLCBjb25maWcsIGJ1aWxkZXJO
YW1lVG9JRE1hcCgpKTsKICAgICAgICAgICAgIH0sIC9UaGUgdGVzdCBjb25maWd1cmF0aW9uIDAg
ZG9lcyBub3Qgc3BlY2lmeSAidHlwZXMiIGFzIGFuIGFycmF5Lyk7CiAgICAgICAgICAgICBhc3Nl
cnQudGhyb3dzKCgpID0+IHsKICAgICAgICAgICAgICAgICBjb25zdCBjb25maWcgPSBzbWFsbENv
bmZpZ3VyYXRpb24oKTsKICAgICAgICAgICAgICAgICBkZWxldGUgY29uZmlnLmJ1aWxkUmVxdWVz
dEFyZ3VtZW50OwotICAgICAgICAgICAgICAgIEJ1aWxkYm90U3luY2VyLl9sb2FkQ29uZmlnKE1v
Y2tSZW1vdGVBUEksIGNvbmZpZyk7CisgICAgICAgICAgICAgICAgQnVpbGRib3RTeW5jZXIuX2xv
YWRDb25maWcoTW9ja1JlbW90ZUFQSSwgY29uZmlnLCBidWlsZGVyTmFtZVRvSURNYXAoKSk7CiAg
ICAgICAgICAgICB9LCAvYnVpbGRSZXF1ZXN0QXJndW1lbnQgbXVzdCBzcGVjaWZ5IHRoZSBuYW1l
IG9mIHRoZSBwcm9wZXJ0eSB1c2VkIHRvIHN0b3JlIHRoZSBidWlsZCByZXF1ZXN0IElELyk7CiAg
ICAgICAgIH0pOwogCkBAIC01MTcsMTIgKzUzMCwxMiBAQCBkZXNjcmliZSgnQnVpbGRib3RTeW5j
ZXInLCAoKSA9PiB7CiAgICAgICAgICAgICBhc3NlcnQudGhyb3dzKCgpID0+IHsKICAgICAgICAg
ICAgICAgICBjb25zdCBjb25maWcgPSBzbWFsbENvbmZpZ3VyYXRpb24oKTsKICAgICAgICAgICAg
ICAgICBjb25maWcudGVzdENvbmZpZ3VyYXRpb25zWzBdLnR5cGVzID0gJ3NvbWUgdGVzdCc7Ci0g
ICAgICAgICAgICAgICAgQnVpbGRib3RTeW5jZXIuX2xvYWRDb25maWcoTW9ja1JlbW90ZUFQSSwg
Y29uZmlnKTsKKyAgICAgICAgICAgICAgICBCdWlsZGJvdFN5bmNlci5fbG9hZENvbmZpZyhNb2Nr
UmVtb3RlQVBJLCBjb25maWcsIGJ1aWxkZXJOYW1lVG9JRE1hcCgpKTsKICAgICAgICAgICAgIH0s
IC9UaGUgdGVzdCBjb25maWd1cmF0aW9uIDAgZG9lcyBub3Qgc3BlY2lmeSAidHlwZXMiIGFzIGFu
IGFycmF5Lyk7CiAgICAgICAgICAgICBhc3NlcnQudGhyb3dzKCgpID0+IHsKICAgICAgICAgICAg
ICAgICBjb25zdCBjb25maWcgPSBzbWFsbENvbmZpZ3VyYXRpb24oKTsKICAgICAgICAgICAgICAg
ICBjb25maWcudGVzdENvbmZpZ3VyYXRpb25zWzBdLnR5cGVzID0gWzFdOwotICAgICAgICAgICAg
ICAgIEJ1aWxkYm90U3luY2VyLl9sb2FkQ29uZmlnKE1vY2tSZW1vdGVBUEksIGNvbmZpZyk7Cisg
ICAgICAgICAgICAgICAgQnVpbGRib3RTeW5jZXIuX2xvYWRDb25maWcoTW9ja1JlbW90ZUFQSSwg
Y29uZmlnLCBidWlsZGVyTmFtZVRvSURNYXAoKSk7CiAgICAgICAgICAgICB9LCAvIjEiIGlzIG5v
dCBhIHZhbGlkIHR5cGUgaW4gdGhlIGNvbmZpZ3VyYXRpb24vKTsKICAgICAgICAgfSk7CiAKQEAg
LTUzMCwxMiArNTQzLDEyIEBAIGRlc2NyaWJlKCdCdWlsZGJvdFN5bmNlcicsICgpID0+IHsKICAg
ICAgICAgICAgIGFzc2VydC50aHJvd3MoKCkgPT4gewogICAgICAgICAgICAgICAgIGNvbnN0IGNv
bmZpZyA9IHNtYWxsQ29uZmlndXJhdGlvbigpOwogICAgICAgICAgICAgICAgIGNvbmZpZy5idWls
ZGVyc1tPYmplY3Qua2V5cyhjb25maWcuYnVpbGRlcnMpWzBdXS5wcm9wZXJ0aWVzID0gJ2hlbGxv
JzsKLSAgICAgICAgICAgICAgICBCdWlsZGJvdFN5bmNlci5fbG9hZENvbmZpZyhNb2NrUmVtb3Rl
QVBJLCBjb25maWcpOworICAgICAgICAgICAgICAgIEJ1aWxkYm90U3luY2VyLl9sb2FkQ29uZmln
KE1vY2tSZW1vdGVBUEksIGNvbmZpZywgYnVpbGRlck5hbWVUb0lETWFwKCkpOwogICAgICAgICAg
ICAgfSwgL0J1aWxkIHByb3BlcnRpZXMgc2hvdWxkIGJlIGEgZGljdGlvbmFyeS8pOwogICAgICAg
ICAgICAgYXNzZXJ0LnRocm93cygoKSA9PiB7CiAgICAgICAgICAgICAgICAgY29uc3QgY29uZmln
ID0gc21hbGxDb25maWd1cmF0aW9uKCk7CiAgICAgICAgICAgICAgICAgY29uZmlnLnR5cGVzW09i
amVjdC5rZXlzKGNvbmZpZy50eXBlcylbMF1dLnByb3BlcnRpZXMgPSAnaGVsbG8nOwotICAgICAg
ICAgICAgICAgIEJ1aWxkYm90U3luY2VyLl9sb2FkQ29uZmlnKE1vY2tSZW1vdGVBUEksIGNvbmZp
Zyk7CisgICAgICAgICAgICAgICAgQnVpbGRib3RTeW5jZXIuX2xvYWRDb25maWcoTW9ja1JlbW90
ZUFQSSwgY29uZmlnLCBidWlsZGVyTmFtZVRvSURNYXAoKSk7CiAgICAgICAgICAgICB9LCAvQnVp
bGQgcHJvcGVydGllcyBzaG91bGQgYmUgYSBkaWN0aW9uYXJ5Lyk7CiAgICAgICAgIH0pOwogCkBA
IC01NDQsMTMgKzU1NywxMyBAQCBkZXNjcmliZSgnQnVpbGRib3RTeW5jZXInLCAoKSA9PiB7CiAg
ICAgICAgICAgICAgICAgY29uc3QgY29uZmlnID0gc21hbGxDb25maWd1cmF0aW9uKCk7CiAgICAg
ICAgICAgICAgICAgY29uc3QgZmlyc3RUeXBlID0gT2JqZWN0LmtleXMoY29uZmlnLnR5cGVzKVsw
XTsKICAgICAgICAgICAgICAgICBjb25maWcudHlwZXNbZmlyc3RUeXBlXS50ZXN0UHJvcGVydGll
cyA9IHt9OwotICAgICAgICAgICAgICAgIEJ1aWxkYm90U3luY2VyLl9sb2FkQ29uZmlnKE1vY2tS
ZW1vdGVBUEksIGNvbmZpZyk7CisgICAgICAgICAgICAgICAgQnVpbGRib3RTeW5jZXIuX2xvYWRD
b25maWcoTW9ja1JlbW90ZUFQSSwgY29uZmlnLCBidWlsZGVyTmFtZVRvSURNYXAoKSk7CiAgICAg
ICAgICAgICB9LCAvVW5yZWNvZ25pemVkIHBhcmFtZXRlciAidGVzdFByb3BlcnRpZXMiLyk7CiAg
ICAgICAgICAgICBhc3NlcnQudGhyb3dzKCgpID0+IHsKICAgICAgICAgICAgICAgICBjb25zdCBj
b25maWcgPSBzbWFsbENvbmZpZ3VyYXRpb24oKTsKICAgICAgICAgICAgICAgICBjb25zdCBmaXJz
dEJ1aWxkZXIgPSBPYmplY3Qua2V5cyhjb25maWcuYnVpbGRlcnMpWzBdOwogICAgICAgICAgICAg
ICAgIGNvbmZpZy5idWlsZGVyc1tmaXJzdEJ1aWxkZXJdLnRlc3RQcm9wZXJ0aWVzID0ge307Ci0g
ICAgICAgICAgICAgICAgQnVpbGRib3RTeW5jZXIuX2xvYWRDb25maWcoTW9ja1JlbW90ZUFQSSwg
Y29uZmlnKTsKKyAgICAgICAgICAgICAgICBCdWlsZGJvdFN5bmNlci5fbG9hZENvbmZpZyhNb2Nr
UmVtb3RlQVBJLCBjb25maWcsIGJ1aWxkZXJOYW1lVG9JRE1hcCgpKTsKICAgICAgICAgICAgIH0s
IC9VbnJlY29nbml6ZWQgcGFyYW1ldGVyICJ0ZXN0UHJvcGVydGllcyIvKTsKICAgICAgICAgfSk7
CiAKQEAgLTU1OSwxMyArNTcyLDEzIEBAIGRlc2NyaWJlKCdCdWlsZGJvdFN5bmNlcicsICgpID0+
IHsKICAgICAgICAgICAgICAgICBjb25zdCBjb25maWcgPSBzbWFsbENvbmZpZ3VyYXRpb24oKTsK
ICAgICAgICAgICAgICAgICBjb25zdCBmaXJzdFR5cGUgPSBPYmplY3Qua2V5cyhjb25maWcudHlw
ZXMpWzBdOwogICAgICAgICAgICAgICAgIGNvbmZpZy50eXBlc1tmaXJzdFR5cGVdLmJ1aWxkUHJv
cGVydGllcyA9IHt9OwotICAgICAgICAgICAgICAgIEJ1aWxkYm90U3luY2VyLl9sb2FkQ29uZmln
KE1vY2tSZW1vdGVBUEksIGNvbmZpZyk7CisgICAgICAgICAgICAgICAgQnVpbGRib3RTeW5jZXIu
X2xvYWRDb25maWcoTW9ja1JlbW90ZUFQSSwgY29uZmlnLCBidWlsZGVyTmFtZVRvSURNYXAoKSk7
CiAgICAgICAgICAgICB9LCAvVW5yZWNvZ25pemVkIHBhcmFtZXRlciAiYnVpbGRQcm9wZXJ0aWVz
Ii8pOwogICAgICAgICAgICAgYXNzZXJ0LnRocm93cygoKSA9PiB7CiAgICAgICAgICAgICAgICAg
Y29uc3QgY29uZmlnID0gc21hbGxDb25maWd1cmF0aW9uKCk7CiAgICAgICAgICAgICAgICAgY29u
c3QgZmlyc3RCdWlsZGVyID0gT2JqZWN0LmtleXMoY29uZmlnLmJ1aWxkZXJzKVswXTsKICAgICAg
ICAgICAgICAgICBjb25maWcuYnVpbGRlcnNbZmlyc3RCdWlsZGVyXS5idWlsZFByb3BlcnRpZXMg
PSB7fTsKLSAgICAgICAgICAgICAgICBCdWlsZGJvdFN5bmNlci5fbG9hZENvbmZpZyhNb2NrUmVt
b3RlQVBJLCBjb25maWcpOworICAgICAgICAgICAgICAgIEJ1aWxkYm90U3luY2VyLl9sb2FkQ29u
ZmlnKE1vY2tSZW1vdGVBUEksIGNvbmZpZywgYnVpbGRlck5hbWVUb0lETWFwKCkpOwogICAgICAg
ICAgICAgfSwgL1VucmVjb2duaXplZCBwYXJhbWV0ZXIgImJ1aWxkUHJvcGVydGllcyIvKTsKICAg
ICAgICAgfSk7CiAKQEAgLTU3NCwyNyArNTg3LDI3IEBAIGRlc2NyaWJlKCdCdWlsZGJvdFN5bmNl
cicsICgpID0+IHsKICAgICAgICAgICAgIGFzc2VydC50aHJvd3MoKCkgPT4gewogICAgICAgICAg
ICAgICAgIGNvbnN0IGNvbmZpZyA9IHNtYWxsQ29uZmlndXJhdGlvbigpOwogICAgICAgICAgICAg
ICAgIGNvbmZpZy50eXBlc1tmaXJzdFR5cGVdLnByb3BlcnRpZXMgPSAnaGVsbG8nOwotICAgICAg
ICAgICAgICAgIEJ1aWxkYm90U3luY2VyLl9sb2FkQ29uZmlnKE1vY2tSZW1vdGVBUEksIGNvbmZp
Zyk7CisgICAgICAgICAgICAgICAgQnVpbGRib3RTeW5jZXIuX2xvYWRDb25maWcoTW9ja1JlbW90
ZUFQSSwgY29uZmlnLCBidWlsZGVyTmFtZVRvSURNYXAoKSk7CiAgICAgICAgICAgICB9LCAvQnVp
bGQgcHJvcGVydGllcyBzaG91bGQgYmUgYSBkaWN0aW9uYXJ5Lyk7CiAgICAgICAgICAgICBhc3Nl
cnQudGhyb3dzKCgpID0+IHsKICAgICAgICAgICAgICAgICBjb25zdCBjb25maWcgPSBzbWFsbENv
bmZpZ3VyYXRpb24oKTsKICAgICAgICAgICAgICAgICBjb25maWcudHlwZXNbZmlyc3RUeXBlXS5w
cm9wZXJ0aWVzID0geydzb21lJzogeydvdGhlcktleSc6ICdzb21lIHJvb3QnfX07Ci0gICAgICAg
ICAgICAgICAgQnVpbGRib3RTeW5jZXIuX2xvYWRDb25maWcoUmVtb3RlQVBJLCBjb25maWcpOwor
ICAgICAgICAgICAgICAgIEJ1aWxkYm90U3luY2VyLl9sb2FkQ29uZmlnKFJlbW90ZUFQSSwgY29u
ZmlnLCBidWlsZGVyTmFtZVRvSURNYXAoKSk7CiAgICAgICAgICAgICB9LCAvQnVpbGQgcHJvcGVy
dGllcyAic29tZSIgc3BlY2lmaWVzIGEgbm9uLXN0cmluZyB2YWx1ZSBvZiB0eXBlICJvYmplY3Qi
Lyk7CiAgICAgICAgICAgICBhc3NlcnQudGhyb3dzKCgpID0+IHsKICAgICAgICAgICAgICAgICBj
b25zdCBjb25maWcgPSBzbWFsbENvbmZpZ3VyYXRpb24oKTsKICAgICAgICAgICAgICAgICBjb25m
aWcudHlwZXNbZmlyc3RUeXBlXS5wcm9wZXJ0aWVzID0geydzb21lJzogeydvdGhlcktleSc6ICdz
b21lIHJvb3QnfX07Ci0gICAgICAgICAgICAgICAgQnVpbGRib3RTeW5jZXIuX2xvYWRDb25maWco
UmVtb3RlQVBJLCBjb25maWcpOworICAgICAgICAgICAgICAgIEJ1aWxkYm90U3luY2VyLl9sb2Fk
Q29uZmlnKFJlbW90ZUFQSSwgY29uZmlnLCBidWlsZGVyTmFtZVRvSURNYXAoKSk7CiAgICAgICAg
ICAgICB9LCAvQnVpbGQgcHJvcGVydGllcyAic29tZSIgc3BlY2lmaWVzIGEgbm9uLXN0cmluZyB2
YWx1ZSBvZiB0eXBlICJvYmplY3QiLyk7CiAgICAgICAgICAgICBhc3NlcnQudGhyb3dzKCgpID0+
IHsKICAgICAgICAgICAgICAgICBjb25zdCBjb25maWcgPSBzbWFsbENvbmZpZ3VyYXRpb24oKTsK
ICAgICAgICAgICAgICAgICBjb25maWcudHlwZXNbZmlyc3RUeXBlXS5wcm9wZXJ0aWVzID0geydz
b21lJzogeydyZXZpc2lvbic6ICdXZWJLaXQnfX07Ci0gICAgICAgICAgICAgICAgQnVpbGRib3RT
eW5jZXIuX2xvYWRDb25maWcoUmVtb3RlQVBJLCBjb25maWcpOworICAgICAgICAgICAgICAgIEJ1
aWxkYm90U3luY2VyLl9sb2FkQ29uZmlnKFJlbW90ZUFQSSwgY29uZmlnLCBidWlsZGVyTmFtZVRv
SURNYXAoKSk7CiAgICAgICAgICAgICB9LCAvQnVpbGQgcHJvcGVydGllcyAic29tZSIgc3BlY2lm
aWVzIGEgbm9uLXN0cmluZyB2YWx1ZSBvZiB0eXBlICJvYmplY3QiLyk7CiAgICAgICAgICAgICBh
c3NlcnQudGhyb3dzKCgpID0+IHsKICAgICAgICAgICAgICAgICBjb25zdCBjb25maWcgPSBzbWFs
bENvbmZpZ3VyYXRpb24oKTsKICAgICAgICAgICAgICAgICBjb25maWcudHlwZXNbZmlyc3RUeXBl
XS5wcm9wZXJ0aWVzID0geydzb21lJzogMX07Ci0gICAgICAgICAgICAgICAgQnVpbGRib3RTeW5j
ZXIuX2xvYWRDb25maWcoUmVtb3RlQVBJLCBjb25maWcpOworICAgICAgICAgICAgICAgIEJ1aWxk
Ym90U3luY2VyLl9sb2FkQ29uZmlnKFJlbW90ZUFQSSwgY29uZmlnLCBidWlsZGVyTmFtZVRvSURN
YXAoKSk7CiAgICAgICAgICAgICB9LCAvIEJ1aWxkIHByb3BlcnRpZXMgInNvbWUiIHNwZWNpZmll
cyBhIG5vbi1zdHJpbmcgdmFsdWUgb2YgdHlwZSAib2JqZWN0Ii8pOwogICAgICAgICB9KTsKIApA
QCAtNjAzLDMyICs2MTYsMzIgQEAgZGVzY3JpYmUoJ0J1aWxkYm90U3luY2VyJywgKCkgPT4gewog
ICAgICAgICAgICAgYXNzZXJ0LnRocm93cygoKSA9PiB7CiAgICAgICAgICAgICAgICAgY29uc3Qg
Y29uZmlnID0gc21hbGxDb25maWd1cmF0aW9uKCk7CiAgICAgICAgICAgICAgICAgY29uZmlnLmJ1
aWxkZXJzW2ZpcnN0QnVpbGRlcl0ucHJvcGVydGllcyA9ICdoZWxsbyc7Ci0gICAgICAgICAgICAg
ICAgQnVpbGRib3RTeW5jZXIuX2xvYWRDb25maWcoTW9ja1JlbW90ZUFQSSwgY29uZmlnKTsKKyAg
ICAgICAgICAgICAgICBCdWlsZGJvdFN5bmNlci5fbG9hZENvbmZpZyhNb2NrUmVtb3RlQVBJLCBj
b25maWcsIGJ1aWxkZXJOYW1lVG9JRE1hcCgpKTsKICAgICAgICAgICAgIH0sIC9CdWlsZCBwcm9w
ZXJ0aWVzIHNob3VsZCBiZSBhIGRpY3Rpb25hcnkvKTsKICAgICAgICAgICAgIGFzc2VydC50aHJv
d3MoKCkgPT4gewogICAgICAgICAgICAgICAgIGNvbnN0IGNvbmZpZyA9IHNtYWxsQ29uZmlndXJh
dGlvbigpOwogICAgICAgICAgICAgICAgIGNvbmZpZy5idWlsZGVyc1tmaXJzdEJ1aWxkZXJdLnBy
b3BlcnRpZXMgPSB7J3NvbWUnOiB7J290aGVyS2V5JzogJ3NvbWUgcm9vdCd9fTsKLSAgICAgICAg
ICAgICAgICBCdWlsZGJvdFN5bmNlci5fbG9hZENvbmZpZyhSZW1vdGVBUEksIGNvbmZpZyk7Cisg
ICAgICAgICAgICAgICAgQnVpbGRib3RTeW5jZXIuX2xvYWRDb25maWcoUmVtb3RlQVBJLCBjb25m
aWcsIGJ1aWxkZXJOYW1lVG9JRE1hcCgpKTsKICAgICAgICAgICAgIH0sIC9CdWlsZCBwcm9wZXJ0
aWVzICJzb21lIiBzcGVjaWZpZXMgYSBub24tc3RyaW5nIHZhbHVlIG9mIHR5cGUgIm9iamVjdCIv
KTsKICAgICAgICAgICAgIGFzc2VydC50aHJvd3MoKCkgPT4gewogICAgICAgICAgICAgICAgIGNv
bnN0IGNvbmZpZyA9IHNtYWxsQ29uZmlndXJhdGlvbigpOwogICAgICAgICAgICAgICAgIGNvbmZp
Zy5idWlsZGVyc1tmaXJzdEJ1aWxkZXJdLnByb3BlcnRpZXMgPSB7J3NvbWUnOiB7J290aGVyS2V5
JzogJ3NvbWUgcm9vdCd9fTsKLSAgICAgICAgICAgICAgICBCdWlsZGJvdFN5bmNlci5fbG9hZENv
bmZpZyhSZW1vdGVBUEksIGNvbmZpZyk7CisgICAgICAgICAgICAgICAgQnVpbGRib3RTeW5jZXIu
X2xvYWRDb25maWcoUmVtb3RlQVBJLCBjb25maWcsIGJ1aWxkZXJOYW1lVG9JRE1hcCgpKTsKICAg
ICAgICAgICAgIH0sIC9CdWlsZCBwcm9wZXJ0aWVzICJzb21lIiBzcGVjaWZpZXMgYSBub24tc3Ry
aW5nIHZhbHVlIG9mIHR5cGUgIm9iamVjdCIvKTsKICAgICAgICAgICAgIGFzc2VydC50aHJvd3Mo
KCkgPT4gewogICAgICAgICAgICAgICAgIGNvbnN0IGNvbmZpZyA9IHNtYWxsQ29uZmlndXJhdGlv
bigpOwogICAgICAgICAgICAgICAgIGNvbmZpZy5idWlsZGVyc1tmaXJzdEJ1aWxkZXJdLnByb3Bl
cnRpZXMgPSB7J3NvbWUnOiB7J3JldmlzaW9uJzogJ1dlYktpdCd9fTsKLSAgICAgICAgICAgICAg
ICBCdWlsZGJvdFN5bmNlci5fbG9hZENvbmZpZyhSZW1vdGVBUEksIGNvbmZpZyk7CisgICAgICAg
ICAgICAgICAgQnVpbGRib3RTeW5jZXIuX2xvYWRDb25maWcoUmVtb3RlQVBJLCBjb25maWcsIGJ1
aWxkZXJOYW1lVG9JRE1hcCgpKTsKICAgICAgICAgICAgIH0sIC9CdWlsZCBwcm9wZXJ0aWVzICJz
b21lIiBzcGVjaWZpZXMgYSBub24tc3RyaW5nIHZhbHVlIG9mIHR5cGUgIm9iamVjdCIvKTsKICAg
ICAgICAgICAgIGFzc2VydC50aHJvd3MoKCkgPT4gewogICAgICAgICAgICAgICAgIGNvbnN0IGNv
bmZpZyA9IHNtYWxsQ29uZmlndXJhdGlvbigpOwogICAgICAgICAgICAgICAgIGNvbmZpZy5idWls
ZGVyc1tmaXJzdEJ1aWxkZXJdLnByb3BlcnRpZXMgPSB7J3NvbWUnOiAxfTsKLSAgICAgICAgICAg
ICAgICBCdWlsZGJvdFN5bmNlci5fbG9hZENvbmZpZyhSZW1vdGVBUEksIGNvbmZpZyk7CisgICAg
ICAgICAgICAgICAgQnVpbGRib3RTeW5jZXIuX2xvYWRDb25maWcoUmVtb3RlQVBJLCBjb25maWcs
IGJ1aWxkZXJOYW1lVG9JRE1hcCgpKTsKICAgICAgICAgICAgIH0sIC9CdWlsZCBwcm9wZXJ0aWVz
ICJzb21lIiBzcGVjaWZpZXMgYSBub24tc3RyaW5nIHZhbHVlIG9mIHR5cGUgIm9iamVjdCIvKTsK
ICAgICAgICAgfSk7CiAKICAgICAgICAgaXQoJ3Nob3VsZCBjcmVhdGUgQnVpbGRib3RTeW5jZXIg
b2JqZWN0cyBmb3IgdmFsaWQgY29uZmlndXJhdGlvbnMnLCAoKSA9PiB7Ci0gICAgICAgICAgICBs
ZXQgc3luY2VycyA9IEJ1aWxkYm90U3luY2VyLl9sb2FkQ29uZmlnKFJlbW90ZUFQSSwgc2FtcGxl
aU9TQ29uZmlnKCkpOworICAgICAgICAgICAgbGV0IHN5bmNlcnMgPSBCdWlsZGJvdFN5bmNlci5f
bG9hZENvbmZpZyhSZW1vdGVBUEksIHNhbXBsZWlPU0NvbmZpZygpLCBidWlsZGVyTmFtZVRvSURN
YXAoKSk7CiAgICAgICAgICAgICBhc3NlcnQuZXF1YWwoc3luY2Vycy5sZW5ndGgsIDMpOwogICAg
ICAgICAgICAgYXNzZXJ0Lm9rKHN5bmNlcnNbMF0gaW5zdGFuY2VvZiBCdWlsZGJvdFN5bmNlcik7
CiAgICAgICAgICAgICBhc3NlcnQub2soc3luY2Vyc1sxXSBpbnN0YW5jZW9mIEJ1aWxkYm90U3lu
Y2VyKTsKQEAgLTYzNiwxNCArNjQ5LDE0IEBAIGRlc2NyaWJlKCdCdWlsZGJvdFN5bmNlcicsICgp
ID0+IHsKICAgICAgICAgfSk7CiAKICAgICAgICAgaXQoJ3Nob3VsZCBwYXJzZSBidWlsZGVyIG5h
bWVzIGNvcnJlY3RseScsICgpID0+IHsKLSAgICAgICAgICAgIGxldCBzeW5jZXJzID0gQnVpbGRi
b3RTeW5jZXIuX2xvYWRDb25maWcoUmVtb3RlQVBJLCBzYW1wbGVpT1NDb25maWcoKSk7CisgICAg
ICAgICAgICBsZXQgc3luY2VycyA9IEJ1aWxkYm90U3luY2VyLl9sb2FkQ29uZmlnKFJlbW90ZUFQ
SSwgc2FtcGxlaU9TQ29uZmlnKCksIGJ1aWxkZXJOYW1lVG9JRE1hcCgpKTsKICAgICAgICAgICAg
IGFzc2VydC5lcXVhbChzeW5jZXJzWzBdLmJ1aWxkZXJOYW1lKCksICdBQlRlc3QtaVBob25lLVJ1
bkJlbmNobWFyay1UZXN0cycpOwogICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHN5bmNlcnNbMV0u
YnVpbGRlck5hbWUoKSwgJ0FCVGVzdC1pUGFkLVJ1bkJlbmNobWFyay1UZXN0cycpOwogICAgICAg
ICAgICAgYXNzZXJ0LmVxdWFsKHN5bmNlcnNbMl0uYnVpbGRlck5hbWUoKSwgJ0FCVGVzdC1pT1Mt
QnVpbGRlcicpOwogICAgICAgICB9KTsKIAogICAgICAgICBpdCgnc2hvdWxkIHBhcnNlIHRlc3Qg
Y29uZmlndXJhdGlvbnMgd2l0aCBidWlsZCBjb25maWd1cmF0aW9ucyBjb3JyZWN0bHknLCAoKSA9
PiB7Ci0gICAgICAgICAgICBsZXQgc3luY2VycyA9IEJ1aWxkYm90U3luY2VyLl9sb2FkQ29uZmln
KFJlbW90ZUFQSSwgc2FtcGxlaU9TQ29uZmlnKCkpOworICAgICAgICAgICAgbGV0IHN5bmNlcnMg
PSBCdWlsZGJvdFN5bmNlci5fbG9hZENvbmZpZyhSZW1vdGVBUEksIHNhbXBsZWlPU0NvbmZpZygp
LCBidWlsZGVyTmFtZVRvSURNYXAoKSk7CiAKICAgICAgICAgICAgIGxldCBjb25maWd1cmF0aW9u
cyA9IHN5bmNlcnNbMF0udGVzdENvbmZpZ3VyYXRpb25zKCk7CiAgICAgICAgICAgICBhc3NlcnQo
c3luY2Vyc1swXS5pc1Rlc3RlcigpKTsKQEAgLTY3OSwxMiArNjkyLDEyIEBAIGRlc2NyaWJlKCdC
dWlsZGJvdFN5bmNlcicsICgpID0+IHsKICAgICAgICAgICAgIGFzc2VydC50aHJvd3MoKCkgPT4g
ewogICAgICAgICAgICAgICAgIGNvbnN0IGNvbmZpZyA9IHNhbXBsZWlPU0NvbmZpZygpOwogICAg
ICAgICAgICAgICAgIGNvbmZpZy5idWlsZENvbmZpZ3VyYXRpb25zWzBdLmJ1aWxkZXJzID0gY29u
ZmlnLnRlc3RDb25maWd1cmF0aW9uc1swXS5idWlsZGVyczsKLSAgICAgICAgICAgICAgICBCdWls
ZGJvdFN5bmNlci5fbG9hZENvbmZpZyhNb2NrUmVtb3RlQVBJLCBjb25maWcpOworICAgICAgICAg
ICAgICAgIEJ1aWxkYm90U3luY2VyLl9sb2FkQ29uZmlnKE1vY2tSZW1vdGVBUEksIGNvbmZpZywg
YnVpbGRlck5hbWVUb0lETWFwKCkpOwogICAgICAgICAgICAgfSk7CiAgICAgICAgIH0pOwogCiAg
ICAgICAgIGl0KCdzaG91bGQgcGFyc2UgdGVzdCBjb25maWd1cmF0aW9ucyB3aXRoIHR5cGVzIGFu
ZCBwbGF0Zm9ybXMgZXhwYW5zaW9ucyBjb3JyZWN0bHknLCAoKSA9PiB7Ci0gICAgICAgICAgICBj
b25zdCBzeW5jZXJzID0gQnVpbGRib3RTeW5jZXIuX2xvYWRDb25maWcoUmVtb3RlQVBJLCBzYW1w
bGVpT1NDb25maWdXaXRoRXhwYW5zaW9ucygpKTsKKyAgICAgICAgICAgIGNvbnN0IHN5bmNlcnMg
PSBCdWlsZGJvdFN5bmNlci5fbG9hZENvbmZpZyhSZW1vdGVBUEksIHNhbXBsZWlPU0NvbmZpZ1dp
dGhFeHBhbnNpb25zKCksIGJ1aWxkZXJOYW1lVG9JRE1hcCgpKTsKIAogICAgICAgICAgICAgYXNz
ZXJ0LmVxdWFsKHN5bmNlcnMubGVuZ3RoLCAzKTsKIApAQCAtNzI1LDEyICs3MzgsMTIgQEAgZGVz
Y3JpYmUoJ0J1aWxkYm90U3luY2VyJywgKCkgPT4gewogICAgICAgICAgICAgYXNzZXJ0LnRocm93
cygoKSA9PiB7CiAgICAgICAgICAgICAgICAgY29uc3QgY29uZmlnID0gc21hbGxDb25maWd1cmF0
aW9uKCk7CiAgICAgICAgICAgICAgICAgY29uZmlnLnJlcG9zaXRvcnlHcm91cHMgPSAxOwotICAg
ICAgICAgICAgICAgIEJ1aWxkYm90U3luY2VyLl9sb2FkQ29uZmlnKE1vY2tSZW1vdGVBUEksIGNv
bmZpZyk7CisgICAgICAgICAgICAgICAgQnVpbGRib3RTeW5jZXIuX2xvYWRDb25maWcoTW9ja1Jl
bW90ZUFQSSwgY29uZmlnLCBidWlsZGVyTmFtZVRvSURNYXAoKSk7CiAgICAgICAgICAgICB9LCAv
cmVwb3NpdG9yeUdyb3VwcyBtdXN0IHNwZWNpZnkgYSBkaWN0aW9uYXJ5IGZyb20gdGhlIG5hbWUg
dG8gaXRzIGRlZmluaXRpb24vKTsKICAgICAgICAgICAgIGFzc2VydC50aHJvd3MoKCkgPT4gewog
ICAgICAgICAgICAgICAgIGNvbnN0IGNvbmZpZyA9IHNtYWxsQ29uZmlndXJhdGlvbigpOwogICAg
ICAgICAgICAgICAgIGNvbmZpZy5yZXBvc2l0b3J5R3JvdXBzID0gJ2hlbGxvJzsKLSAgICAgICAg
ICAgICAgICBCdWlsZGJvdFN5bmNlci5fbG9hZENvbmZpZyhNb2NrUmVtb3RlQVBJLCBjb25maWcp
OworICAgICAgICAgICAgICAgIEJ1aWxkYm90U3luY2VyLl9sb2FkQ29uZmlnKE1vY2tSZW1vdGVB
UEksIGNvbmZpZywgYnVpbGRlck5hbWVUb0lETWFwKCkpOwogICAgICAgICAgICAgfSwgL3JlcG9z
aXRvcnlHcm91cHMgbXVzdCBzcGVjaWZ5IGEgZGljdGlvbmFyeSBmcm9tIHRoZSBuYW1lIHRvIGl0
cyBkZWZpbml0aW9uLyk7CiAgICAgICAgIH0pOwogCkBAIC03MzgsMTIgKzc1MSwxMiBAQCBkZXNj
cmliZSgnQnVpbGRib3RTeW5jZXInLCAoKSA9PiB7CiAgICAgICAgICAgICBhc3NlcnQudGhyb3dz
KCgpID0+IHsKICAgICAgICAgICAgICAgICBjb25zdCBjb25maWcgPSBzbWFsbENvbmZpZ3VyYXRp
b24oKTsKICAgICAgICAgICAgICAgICBjb25maWcucmVwb3NpdG9yeUdyb3VwcyA9IHsnc29tZS1n
cm91cCc6IHt0ZXN0UHJvcGVydGllczoge319fTsKLSAgICAgICAgICAgICAgICBCdWlsZGJvdFN5
bmNlci5fbG9hZENvbmZpZyhNb2NrUmVtb3RlQVBJLCBjb25maWcpOworICAgICAgICAgICAgICAg
IEJ1aWxkYm90U3luY2VyLl9sb2FkQ29uZmlnKE1vY2tSZW1vdGVBUEksIGNvbmZpZywgYnVpbGRl
ck5hbWVUb0lETWFwKCkpOwogICAgICAgICAgICAgfSwgL1JlcG9zaXRvcnkgZ3JvdXAgInNvbWUt
Z3JvdXAiIGRvZXMgbm90IHNwZWNpZnkgYSBkaWN0aW9uYXJ5IG9mIHJlcG9zaXRvcmllcy8pOwog
ICAgICAgICAgICAgYXNzZXJ0LnRocm93cygoKSA9PiB7CiAgICAgICAgICAgICAgICAgY29uc3Qg
Y29uZmlnID0gc21hbGxDb25maWd1cmF0aW9uKCk7CiAgICAgICAgICAgICAgICAgY29uZmlnLnJl
cG9zaXRvcnlHcm91cHMgPSB7J3NvbWUtZ3JvdXAnOiB7cmVwb3NpdG9yaWVzOiAxfSwgdGVzdFBy
b3BlcnRpZXM6IHt9fTsKLSAgICAgICAgICAgICAgICBCdWlsZGJvdFN5bmNlci5fbG9hZENvbmZp
ZyhNb2NrUmVtb3RlQVBJLCBjb25maWcpOworICAgICAgICAgICAgICAgIEJ1aWxkYm90U3luY2Vy
Ll9sb2FkQ29uZmlnKE1vY2tSZW1vdGVBUEksIGNvbmZpZywgYnVpbGRlck5hbWVUb0lETWFwKCkp
OwogICAgICAgICAgICAgfSwgL1JlcG9zaXRvcnkgZ3JvdXAgInNvbWUtZ3JvdXAiIGRvZXMgbm90
IHNwZWNpZnkgYSBkaWN0aW9uYXJ5IG9mIHJlcG9zaXRvcmllcy8pOwogICAgICAgICB9KTsKIApA
QCAtNzUxLDcgKzc2NCw3IEBAIGRlc2NyaWJlKCdCdWlsZGJvdFN5bmNlcicsICgpID0+IHsKICAg
ICAgICAgICAgIGFzc2VydC50aHJvd3MoKCkgPT4gewogICAgICAgICAgICAgICAgIGNvbnN0IGNv
bmZpZyA9IHNtYWxsQ29uZmlndXJhdGlvbigpOwogICAgICAgICAgICAgICAgIGNvbmZpZy5yZXBv
c2l0b3J5R3JvdXBzID0geydzb21lLWdyb3VwJzoge3JlcG9zaXRvcmllczoge30sIHRlc3RQcm9w
ZXJ0aWVzOiB7fX19OwotICAgICAgICAgICAgICAgIEJ1aWxkYm90U3luY2VyLl9sb2FkQ29uZmln
KE1vY2tSZW1vdGVBUEksIGNvbmZpZyk7CisgICAgICAgICAgICAgICAgQnVpbGRib3RTeW5jZXIu
X2xvYWRDb25maWcoTW9ja1JlbW90ZUFQSSwgY29uZmlnLCBidWlsZGVyTmFtZVRvSURNYXAoKSk7
CiAgICAgICAgICAgICB9LCAvUmVwb3NpdG9yeSBncm91cCAic29tZS1ncm91cCIgZG9lcyBub3Qg
c3BlY2lmeSBhbnkgcmVwb3NpdG9yeS8pOwogICAgICAgICB9KTsKIApAQCAtNzU5LDcgKzc3Miw3
IEBAIGRlc2NyaWJlKCdCdWlsZGJvdFN5bmNlcicsICgpID0+IHsKICAgICAgICAgICAgIGFzc2Vy
dC50aHJvd3MoKCkgPT4gewogICAgICAgICAgICAgICAgIGNvbnN0IGNvbmZpZyA9IHNtYWxsQ29u
ZmlndXJhdGlvbigpOwogICAgICAgICAgICAgICAgIGNvbmZpZy5yZXBvc2l0b3J5R3JvdXBzID0g
eydzb21lLWdyb3VwJzoge3JlcG9zaXRvcmllczogeydJbnZhbGlkUmVwb3NpdG9yeU5hbWUnOiB7
fX19fTsKLSAgICAgICAgICAgICAgICBCdWlsZGJvdFN5bmNlci5fbG9hZENvbmZpZyhNb2NrUmVt
b3RlQVBJLCBjb25maWcpOworICAgICAgICAgICAgICAgIEJ1aWxkYm90U3luY2VyLl9sb2FkQ29u
ZmlnKE1vY2tSZW1vdGVBUEksIGNvbmZpZywgYnVpbGRlck5hbWVUb0lETWFwKCkpOwogICAgICAg
ICAgICAgfSwgLyJJbnZhbGlkUmVwb3NpdG9yeU5hbWUiIGlzIG5vdCBhIHZhbGlkIHJlcG9zaXRv
cnkgbmFtZS8pOwogICAgICAgICB9KTsKIApAQCAtNzY3LDcgKzc4MCw3IEBAIGRlc2NyaWJlKCdC
dWlsZGJvdFN5bmNlcicsICgpID0+IHsKICAgICAgICAgICAgIGFzc2VydC50aHJvd3MoKCkgPT4g
ewogICAgICAgICAgICAgICAgIGNvbnN0IGNvbmZpZyA9IHNtYWxsQ29uZmlndXJhdGlvbigpOwog
ICAgICAgICAgICAgICAgIGNvbmZpZy5yZXBvc2l0b3J5R3JvdXBzID0geydzb21lLWdyb3VwJzog
e3JlcG9zaXRvcmllczogeydXZWJLaXQnOiAxfX19OwotICAgICAgICAgICAgICAgIEJ1aWxkYm90
U3luY2VyLl9sb2FkQ29uZmlnKE1vY2tSZW1vdGVBUEksIGNvbmZpZyk7CisgICAgICAgICAgICAg
ICAgQnVpbGRib3RTeW5jZXIuX2xvYWRDb25maWcoTW9ja1JlbW90ZUFQSSwgY29uZmlnLCBidWls
ZGVyTmFtZVRvSURNYXAoKSk7CiAgICAgICAgICAgICB9LCAvIldlYktpdCIgc3BlY2lmaWVzIGEg
bm9uLWRpY3Rpb25hcnkgdmFsdWUvKTsKICAgICAgICAgfSk7CiAKQEAgLTc3NSwxMiArNzg4LDEy
IEBAIGRlc2NyaWJlKCdCdWlsZGJvdFN5bmNlcicsICgpID0+IHsKICAgICAgICAgICAgIGFzc2Vy
dC50aHJvd3MoKCkgPT4gewogICAgICAgICAgICAgICAgIGNvbnN0IGNvbmZpZyA9IHNtYWxsQ29u
ZmlndXJhdGlvbigpOwogICAgICAgICAgICAgICAgIGNvbmZpZy5yZXBvc2l0b3J5R3JvdXBzID0g
eydzb21lLWdyb3VwJzoge3JlcG9zaXRvcmllczogeydXZWJLaXQnOiB7fX0sIGRlc2NyaXB0aW9u
OiAxfX07Ci0gICAgICAgICAgICAgICAgQnVpbGRib3RTeW5jZXIuX2xvYWRDb25maWcoTW9ja1Jl
bW90ZUFQSSwgY29uZmlnKTsKKyAgICAgICAgICAgICAgICBCdWlsZGJvdFN5bmNlci5fbG9hZENv
bmZpZyhNb2NrUmVtb3RlQVBJLCBjb25maWcsIGJ1aWxkZXJOYW1lVG9JRE1hcCgpKTsKICAgICAg
ICAgICAgIH0sIC9SZXBvc2l0b3J5IGdyb3VwICJzb21lLWdyb3VwIiBoYXZlIGFuIGludmFsaWQg
ZGVzY3JpcHRpb24vKTsKICAgICAgICAgICAgIGFzc2VydC50aHJvd3MoKCkgPT4gewogICAgICAg
ICAgICAgICAgIGNvbnN0IGNvbmZpZyA9IHNtYWxsQ29uZmlndXJhdGlvbigpOwogICAgICAgICAg
ICAgICAgIGNvbmZpZy5yZXBvc2l0b3J5R3JvdXBzID0geydzb21lLWdyb3VwJzoge3JlcG9zaXRv
cmllczogeydXZWJLaXQnOiB7fX0sIGRlc2NyaXB0aW9uOiBbMSwgMl19fTsKLSAgICAgICAgICAg
ICAgICBCdWlsZGJvdFN5bmNlci5fbG9hZENvbmZpZyhNb2NrUmVtb3RlQVBJLCBjb25maWcpOwor
ICAgICAgICAgICAgICAgIEJ1aWxkYm90U3luY2VyLl9sb2FkQ29uZmlnKE1vY2tSZW1vdGVBUEks
IGNvbmZpZywgYnVpbGRlck5hbWVUb0lETWFwKCkpOwogICAgICAgICAgICAgfSwgL1JlcG9zaXRv
cnkgZ3JvdXAgInNvbWUtZ3JvdXAiIGhhdmUgYW4gaW52YWxpZCBkZXNjcmlwdGlvbi8pOwogICAg
ICAgICB9KTsKIApAQCAtNzg4LDEyICs4MDEsMTIgQEAgZGVzY3JpYmUoJ0J1aWxkYm90U3luY2Vy
JywgKCkgPT4gewogICAgICAgICAgICAgYXNzZXJ0LnRocm93cygoKSA9PiB7CiAgICAgICAgICAg
ICAgICAgY29uc3QgY29uZmlnID0gc21hbGxDb25maWd1cmF0aW9uKCk7CiAgICAgICAgICAgICAg
ICAgY29uZmlnLnJlcG9zaXRvcnlHcm91cHMgPSB7J3NvbWUtZ3JvdXAnOiB7cmVwb3NpdG9yaWVz
OiB7J1dlYktpdCc6IHt9fSwgdGVzdFByb3BlcnRpZXM6IDF9fTsKLSAgICAgICAgICAgICAgICBC
dWlsZGJvdFN5bmNlci5fbG9hZENvbmZpZyhNb2NrUmVtb3RlQVBJLCBjb25maWcpOworICAgICAg
ICAgICAgICAgIEJ1aWxkYm90U3luY2VyLl9sb2FkQ29uZmlnKE1vY2tSZW1vdGVBUEksIGNvbmZp
ZywgYnVpbGRlck5hbWVUb0lETWFwKCkpOwogICAgICAgICAgICAgfSwgL1JlcG9zaXRvcnkgZ3Jv
dXAgInNvbWUtZ3JvdXAiIHNwZWNpZmllcyB0aGUgdGVzdCBjb25maWd1cmF0aW9ucyB3aXRoIGFu
IGludmFsaWQgdHlwZS8pOwogICAgICAgICAgICAgYXNzZXJ0LnRocm93cygoKSA9PiB7CiAgICAg
ICAgICAgICAgICAgY29uc3QgY29uZmlnID0gc21hbGxDb25maWd1cmF0aW9uKCk7CiAgICAgICAg
ICAgICAgICAgY29uZmlnLnJlcG9zaXRvcnlHcm91cHMgPSB7J3NvbWUtZ3JvdXAnOiB7cmVwb3Np
dG9yaWVzOiB7J1dlYktpdCc6IHt9fSwgdGVzdFByb3BlcnRpZXM6ICdoZWxsbyd9fTsKLSAgICAg
ICAgICAgICAgICBCdWlsZGJvdFN5bmNlci5fbG9hZENvbmZpZyhNb2NrUmVtb3RlQVBJLCBjb25m
aWcpOworICAgICAgICAgICAgICAgIEJ1aWxkYm90U3luY2VyLl9sb2FkQ29uZmlnKE1vY2tSZW1v
dGVBUEksIGNvbmZpZywgYnVpbGRlck5hbWVUb0lETWFwKCkpOwogICAgICAgICAgICAgfSwgL1Jl
cG9zaXRvcnkgZ3JvdXAgInNvbWUtZ3JvdXAiIHNwZWNpZmllcyB0aGUgdGVzdCBjb25maWd1cmF0
aW9ucyB3aXRoIGFuIGludmFsaWQgdHlwZS8pOwogICAgICAgICB9KTsKIApAQCAtODAxLDcgKzgx
NCw3IEBAIGRlc2NyaWJlKCdCdWlsZGJvdFN5bmNlcicsICgpID0+IHsKICAgICAgICAgICAgIGFz
c2VydC50aHJvd3MoKCkgPT4gewogICAgICAgICAgICAgICAgIGNvbnN0IGNvbmZpZyA9IHNtYWxs
Q29uZmlndXJhdGlvbigpOwogICAgICAgICAgICAgICAgIGNvbmZpZy5yZXBvc2l0b3J5R3JvdXBz
ID0geydzb21lLWdyb3VwJzoge3JlcG9zaXRvcmllczogeydXZWJLaXQnOiB7fX0sIHRlc3RQcm9w
ZXJ0aWVzOiB7J3drJzoge3JldmlzaW9uOiAnSW52YWxpZFJlcG9zaXRvcnknfX19fTsKLSAgICAg
ICAgICAgICAgICBCdWlsZGJvdFN5bmNlci5fbG9hZENvbmZpZyhNb2NrUmVtb3RlQVBJLCBjb25m
aWcpOworICAgICAgICAgICAgICAgIEJ1aWxkYm90U3luY2VyLl9sb2FkQ29uZmlnKE1vY2tSZW1v
dGVBUEksIGNvbmZpZywgYnVpbGRlck5hbWVUb0lETWFwKCkpOwogICAgICAgICAgICAgfSwgL1Jl
cG9zaXRvcnkgZ3JvdXAgInNvbWUtZ3JvdXAiIGFuIGludmFsaWQgcmVwb3NpdG9yeSAiSW52YWxp
ZFJlcG9zaXRvcnkiLyk7CiAgICAgICAgIH0pOwogCkBAIC04MDksNyArODIyLDcgQEAgZGVzY3Jp
YmUoJ0J1aWxkYm90U3luY2VyJywgKCkgPT4gewogICAgICAgICAgICAgYXNzZXJ0LnRocm93cygo
KSA9PiB7CiAgICAgICAgICAgICAgICAgY29uc3QgY29uZmlnID0gc21hbGxDb25maWd1cmF0aW9u
KCk7CiAgICAgICAgICAgICAgICAgY29uZmlnLnJlcG9zaXRvcnlHcm91cHMgPSB7J3NvbWUtZ3Jv
dXAnOiB7cmVwb3NpdG9yaWVzOiB7J1dlYktpdCc6IHt9fSwgdGVzdFByb3BlcnRpZXM6IHsnb3Mn
OiB7cmV2aXNpb246ICdpT1MnfX19fTsKLSAgICAgICAgICAgICAgICBCdWlsZGJvdFN5bmNlci5f
bG9hZENvbmZpZyhNb2NrUmVtb3RlQVBJLCBjb25maWcpOworICAgICAgICAgICAgICAgIEJ1aWxk
Ym90U3luY2VyLl9sb2FkQ29uZmlnKE1vY2tSZW1vdGVBUEksIGNvbmZpZywgYnVpbGRlck5hbWVU
b0lETWFwKCkpOwogICAgICAgICAgICAgfSwgL1JlcG9zaXRvcnkgZ3JvdXAgInNvbWUtZ3JvdXAi
IGFuIGludmFsaWQgcmVwb3NpdG9yeSAiaU9TIi8pOwogICAgICAgICAgICAgYXNzZXJ0LnRocm93
cygoKSA9PiB7CiAgICAgICAgICAgICAgICAgY29uc3QgY29uZmlnID0gc21hbGxDb25maWd1cmF0
aW9uKCk7CkBAIC04MTgsNyArODMxLDcgQEAgZGVzY3JpYmUoJ0J1aWxkYm90U3luY2VyJywgKCkg
PT4gewogICAgICAgICAgICAgICAgICAgICB0ZXN0UHJvcGVydGllczogeyd3ayc6IHtyZXZpc2lv
bjogJ1dlYktpdCd9LCAnaW5zdGFsbC1yb290cyc6IHsncm9vdHMnOiB7fX19LAogICAgICAgICAg
ICAgICAgICAgICBidWlsZFByb3BlcnRpZXM6IHsnb3MnOiB7cmV2aXNpb246ICdpT1MnfX0sCiAg
ICAgICAgICAgICAgICAgICAgIGFjY2VwdHNSb290czogdHJ1ZX19OwotICAgICAgICAgICAgICAg
IEJ1aWxkYm90U3luY2VyLl9sb2FkQ29uZmlnKE1vY2tSZW1vdGVBUEksIGNvbmZpZyk7CisgICAg
ICAgICAgICAgICAgQnVpbGRib3RTeW5jZXIuX2xvYWRDb25maWcoTW9ja1JlbW90ZUFQSSwgY29u
ZmlnLCBidWlsZGVyTmFtZVRvSURNYXAoKSk7CiAgICAgICAgICAgICB9LCAvUmVwb3NpdG9yeSBn
cm91cCAic29tZS1ncm91cCIgYW4gaW52YWxpZCByZXBvc2l0b3J5ICJpT1MiLyk7CiAgICAgICAg
IH0pOwogCkBAIC04MzAsNyArODQzLDcgQEAgZGVzY3JpYmUoJ0J1aWxkYm90U3luY2VyJywgKCkg
PT4gewogICAgICAgICAgICAgICAgICAgICB0ZXN0UHJvcGVydGllczogeyd3ayc6IHtyZXZpc2lv
bjogJ1dlYktpdCd9LCAnaW9zJzoge3JldmlzaW9uOiAnaU9TJ30sICdpbnN0YWxsLXJvb3RzJzog
eydyb290cyc6IHt9fX0sCiAgICAgICAgICAgICAgICAgICAgIGJ1aWxkUHJvcGVydGllczogeyd3
ayc6IHtyZXZpc2lvbjogJ1dlYktpdCd9LCAnaW9zJzoge3JldmlzaW9uOiAnaU9TJ30sICd3ay1w
YXRjaCc6IHtwYXRjaDogJ2lPUyd9fSwKICAgICAgICAgICAgICAgICAgICAgYWNjZXB0c1Jvb3Rz
OiB0cnVlfX07Ci0gICAgICAgICAgICAgICAgQnVpbGRib3RTeW5jZXIuX2xvYWRDb25maWcoTW9j
a1JlbW90ZUFQSSwgY29uZmlnKTsKKyAgICAgICAgICAgICAgICBCdWlsZGJvdFN5bmNlci5fbG9h
ZENvbmZpZyhNb2NrUmVtb3RlQVBJLCBjb25maWcsIGJ1aWxkZXJOYW1lVG9JRE1hcCgpKTsKICAg
ICAgICAgICAgIH0sIC9SZXBvc2l0b3J5IGdyb3VwICJzb21lLWdyb3VwIiBzcGVjaWZpZXMgYSBw
YXRjaCBmb3IgImlPUyIgYnV0IGl0IGRvZXMgbm90IGFjY2VwdCBhIHBhdGNoLyk7CiAgICAgICAg
IH0pOwogCkBAIC04NDIsNyArODU1LDcgQEAgZGVzY3JpYmUoJ0J1aWxkYm90U3luY2VyJywgKCkg
PT4gewogICAgICAgICAgICAgICAgICAgICB0ZXN0UHJvcGVydGllczogeyd3ayc6IHtyZXZpc2lv
bjogJ1dlYktpdCd9LCAnaW5zdGFsbC1yb290cyc6IHsncm9vdHMnOiB7fX19LAogICAgICAgICAg
ICAgICAgICAgICBidWlsZFByb3BlcnRpZXM6IHsnd2stcGF0Y2gnOiB7cGF0Y2g6ICdXZWJLaXQn
fX0sCiAgICAgICAgICAgICAgICAgICAgIGFjY2VwdHNSb290czogdHJ1ZX19OwotICAgICAgICAg
ICAgICAgIEJ1aWxkYm90U3luY2VyLl9sb2FkQ29uZmlnKE1vY2tSZW1vdGVBUEksIGNvbmZpZyk7
CisgICAgICAgICAgICAgICAgQnVpbGRib3RTeW5jZXIuX2xvYWRDb25maWcoTW9ja1JlbW90ZUFQ
SSwgY29uZmlnLCBidWlsZGVyTmFtZVRvSURNYXAoKSk7CiAgICAgICAgICAgICB9LCAvUmVwb3Np
dG9yeSBncm91cCAic29tZS1ncm91cCIgc3BlY2lmaWVzIGEgcGF0Y2ggZm9yICJXZWJLaXQiIGJ1
dCBkb2VzIG5vdCBzcGVjaWZ5IGEgcmV2aXNpb24vKTsKICAgICAgICAgfSk7CiAKQEAgLTg1MCw3
ICs4NjMsNyBAQCBkZXNjcmliZSgnQnVpbGRib3RTeW5jZXInLCAoKSA9PiB7CiAgICAgICAgICAg
ICBhc3NlcnQudGhyb3dzKCgpID0+IHsKICAgICAgICAgICAgICAgICBjb25zdCBjb25maWcgPSBz
bWFsbENvbmZpZ3VyYXRpb24oKTsKICAgICAgICAgICAgICAgICBjb25maWcucmVwb3NpdG9yeUdy
b3VwcyA9IHsnc29tZS1ncm91cCc6IHsncmVwb3NpdG9yaWVzJzogeydXZWJLaXQnOiB7fX0sIHRl
c3RQcm9wZXJ0aWVzOiB7fX19OwotICAgICAgICAgICAgICAgIEJ1aWxkYm90U3luY2VyLl9sb2Fk
Q29uZmlnKE1vY2tSZW1vdGVBUEksIGNvbmZpZyk7CisgICAgICAgICAgICAgICAgQnVpbGRib3RT
eW5jZXIuX2xvYWRDb25maWcoTW9ja1JlbW90ZUFQSSwgY29uZmlnLCBidWlsZGVyTmFtZVRvSURN
YXAoKSk7CiAgICAgICAgICAgICB9LCAvUmVwb3NpdG9yeSBncm91cCAic29tZS1ncm91cCIgZG9l
cyBub3QgdXNlIHNvbWUgb2YgdGhlIHJlcG9zaXRvcmllcyBsaXN0ZWQgaW4gdGVzdGluZy8pOwog
ICAgICAgICAgICAgYXNzZXJ0LnRocm93cygoKSA9PiB7CiAgICAgICAgICAgICAgICAgY29uc3Qg
Y29uZmlnID0gc21hbGxDb25maWd1cmF0aW9uKCk7CkBAIC04NTksNyArODcyLDcgQEAgZGVzY3Jp
YmUoJ0J1aWxkYm90U3luY2VyJywgKCkgPT4gewogICAgICAgICAgICAgICAgICAgICB0ZXN0UHJv
cGVydGllczogeyd3ayc6IHtyZXZpc2lvbjogJ1dlYktpdCd9LCAnaW5zdGFsbC1yb290cyc6IHsn
cm9vdHMnOiB7fX19LAogICAgICAgICAgICAgICAgICAgICBidWlsZFByb3BlcnRpZXM6IHt9LAog
ICAgICAgICAgICAgICAgICAgICBhY2NlcHRzUm9vdHM6IHRydWV9fTsKLSAgICAgICAgICAgICAg
ICBCdWlsZGJvdFN5bmNlci5fbG9hZENvbmZpZyhNb2NrUmVtb3RlQVBJLCBjb25maWcpOworICAg
ICAgICAgICAgICAgIEJ1aWxkYm90U3luY2VyLl9sb2FkQ29uZmlnKE1vY2tSZW1vdGVBUEksIGNv
bmZpZywgYnVpbGRlck5hbWVUb0lETWFwKCkpOwogICAgICAgICAgICAgfSwgL1JlcG9zaXRvcnkg
Z3JvdXAgInNvbWUtZ3JvdXAiIGRvZXMgbm90IHVzZSBzb21lIG9mIHRoZSByZXBvc2l0b3JpZXMg
bGlzdGVkIGluIGJ1aWxkaW5nIGEgcGF0Y2gvKTsKICAgICAgICAgfSk7CiAKQEAgLTg2NywxMiAr
ODgwLDEyIEBAIGRlc2NyaWJlKCdCdWlsZGJvdFN5bmNlcicsICgpID0+IHsKICAgICAgICAgICAg
IGFzc2VydC50aHJvd3MoKCkgPT4gewogICAgICAgICAgICAgICAgIGNvbnN0IGNvbmZpZyA9IHNt
YWxsQ29uZmlndXJhdGlvbigpOwogICAgICAgICAgICAgICAgIGNvbmZpZy5yZXBvc2l0b3J5R3Jv
dXBzID0geydzb21lLWdyb3VwJzogeydyZXBvc2l0b3JpZXMnOiB7J1dlYktpdCc6IHt9fSwgJ3Rl
c3RQcm9wZXJ0aWVzJzogeyd3ZWJraXQnOiB7J3JldmlzaW9uJzogJ1dlYktpdCd9fSwgYWNjZXB0
c1Jvb3RzOiAxfX07Ci0gICAgICAgICAgICAgICAgQnVpbGRib3RTeW5jZXIuX2xvYWRDb25maWco
TW9ja1JlbW90ZUFQSSwgY29uZmlnKTsKKyAgICAgICAgICAgICAgICBCdWlsZGJvdFN5bmNlci5f
bG9hZENvbmZpZyhNb2NrUmVtb3RlQVBJLCBjb25maWcsIGJ1aWxkZXJOYW1lVG9JRE1hcCgpKTsK
ICAgICAgICAgICAgIH0sIC9SZXBvc2l0b3J5IGdyb3VwICJzb21lLWdyb3VwIiBjb250YWlucyBp
bnZhbGlkIGFjY2VwdHNSb290cyB2YWx1ZTovKTsKICAgICAgICAgICAgIGFzc2VydC50aHJvd3Mo
KCkgPT4gewogICAgICAgICAgICAgICAgIGNvbnN0IGNvbmZpZyA9IHNtYWxsQ29uZmlndXJhdGlv
bigpOwogICAgICAgICAgICAgICAgIGNvbmZpZy5yZXBvc2l0b3J5R3JvdXBzID0geydzb21lLWdy
b3VwJzogeydyZXBvc2l0b3JpZXMnOiB7J1dlYktpdCc6IHt9fSwgJ3Rlc3RQcm9wZXJ0aWVzJzog
eyd3ZWJraXQnOiB7J3JldmlzaW9uJzogJ1dlYktpdCd9fSwgYWNjZXB0c1Jvb3RzOiBbXX19Owot
ICAgICAgICAgICAgICAgIEJ1aWxkYm90U3luY2VyLl9sb2FkQ29uZmlnKE1vY2tSZW1vdGVBUEks
IGNvbmZpZyk7CisgICAgICAgICAgICAgICAgQnVpbGRib3RTeW5jZXIuX2xvYWRDb25maWcoTW9j
a1JlbW90ZUFQSSwgY29uZmlnLCBidWlsZGVyTmFtZVRvSURNYXAoKSk7CiAgICAgICAgICAgICB9
LCAvUmVwb3NpdG9yeSBncm91cCAic29tZS1ncm91cCIgY29udGFpbnMgaW52YWxpZCBhY2NlcHRz
Um9vdHMgdmFsdWU6Lyk7CiAgICAgICAgIH0pOwogCkBAIC04ODAsMTIgKzg5MywxMiBAQCBkZXNj
cmliZSgnQnVpbGRib3RTeW5jZXInLCAoKSA9PiB7CiAgICAgICAgICAgICBhc3NlcnQudGhyb3dz
KCgpID0+IHsKICAgICAgICAgICAgICAgICBjb25zdCBjb25maWcgPSBzbWFsbENvbmZpZ3VyYXRp
b24oKTsKICAgICAgICAgICAgICAgICBjb25maWcucmVwb3NpdG9yeUdyb3VwcyA9IHsnc29tZS1n
cm91cCc6IHsncmVwb3NpdG9yaWVzJzogeydXZWJLaXQnOiB7YWNjZXB0c1BhdGNoOiAxfX0sICd0
ZXN0UHJvcGVydGllcyc6IHsnd2Via2l0JzogeydyZXZpc2lvbic6ICdXZWJLaXQnfX19fTsKLSAg
ICAgICAgICAgICAgICBCdWlsZGJvdFN5bmNlci5fbG9hZENvbmZpZyhNb2NrUmVtb3RlQVBJLCBj
b25maWcpOworICAgICAgICAgICAgICAgIEJ1aWxkYm90U3luY2VyLl9sb2FkQ29uZmlnKE1vY2tS
ZW1vdGVBUEksIGNvbmZpZywgYnVpbGRlck5hbWVUb0lETWFwKCkpOwogICAgICAgICAgICAgfSwg
LyJXZWJLaXQiIGNvbnRhaW5zIGludmFsaWQgYWNjZXB0c1BhdGNoIHZhbHVlOi8pOwogICAgICAg
ICAgICAgYXNzZXJ0LnRocm93cygoKSA9PiB7CiAgICAgICAgICAgICAgICAgY29uc3QgY29uZmln
ID0gc21hbGxDb25maWd1cmF0aW9uKCk7CiAgICAgICAgICAgICAgICAgY29uZmlnLnJlcG9zaXRv
cnlHcm91cHMgPSB7J3NvbWUtZ3JvdXAnOiB7J3JlcG9zaXRvcmllcyc6IHsnV2ViS2l0Jzoge2Fj
Y2VwdHNQYXRjaDogW119fSwgJ3Rlc3RQcm9wZXJ0aWVzJzogeyd3ZWJraXQnOiB7J3JldmlzaW9u
JzogJ1dlYktpdCd9fX19OwotICAgICAgICAgICAgICAgIEJ1aWxkYm90U3luY2VyLl9sb2FkQ29u
ZmlnKE1vY2tSZW1vdGVBUEksIGNvbmZpZyk7CisgICAgICAgICAgICAgICAgQnVpbGRib3RTeW5j
ZXIuX2xvYWRDb25maWcoTW9ja1JlbW90ZUFQSSwgY29uZmlnLCBidWlsZGVyTmFtZVRvSURNYXAo
KSk7CiAgICAgICAgICAgICB9LCAvIldlYktpdCIgY29udGFpbnMgaW52YWxpZCBhY2NlcHRzUGF0
Y2ggdmFsdWU6Lyk7CiAgICAgICAgIH0pOwogCkBAIC04OTQsNyArOTA3LDcgQEAgZGVzY3JpYmUo
J0J1aWxkYm90U3luY2VyJywgKCkgPT4gewogICAgICAgICAgICAgICAgIGNvbnN0IGNvbmZpZyA9
IHNtYWxsQ29uZmlndXJhdGlvbigpOwogICAgICAgICAgICAgICAgIGNvbmZpZy5yZXBvc2l0b3J5
R3JvdXBzID0geydzb21lLWdyb3VwJzogeydyZXBvc2l0b3JpZXMnOiB7J1dlYktpdCc6IHthY2Nl
cHRzUGF0Y2g6IHRydWV9fSwKICAgICAgICAgICAgICAgICAgICAgJ3Rlc3RQcm9wZXJ0aWVzJzog
eyd3ZWJraXQnOiB7J3JldmlzaW9uJzogJ1dlYktpdCd9LCAnd2Via2l0LXBhdGNoJzogeydwYXRj
aCc6ICdXZWJLaXQnfX19fTsKLSAgICAgICAgICAgICAgICBCdWlsZGJvdFN5bmNlci5fbG9hZENv
bmZpZyhNb2NrUmVtb3RlQVBJLCBjb25maWcpOworICAgICAgICAgICAgICAgIEJ1aWxkYm90U3lu
Y2VyLl9sb2FkQ29uZmlnKE1vY2tSZW1vdGVBUEksIGNvbmZpZywgYnVpbGRlck5hbWVUb0lETWFw
KCkpOwogICAgICAgICAgICAgfSwgL1JlcG9zaXRvcnkgZ3JvdXAgInNvbWUtZ3JvdXAiIHNwZWNp
ZmllcyBhIHBhdGNoIGZvciAiV2ViS2l0IiBpbiB0aGUgcHJvcGVydGllcyBmb3IgdGVzdGluZy8p
OwogICAgICAgICB9KTsKIApAQCAtOTA2LDcgKzkxOSw3IEBAIGRlc2NyaWJlKCdCdWlsZGJvdFN5
bmNlcicsICgpID0+IHsKICAgICAgICAgICAgICAgICAgICAgdGVzdFByb3BlcnRpZXM6IHsnd2Vi
a2l0Jzoge3JldmlzaW9uOiAnV2ViS2l0J30sICdpbnN0YWxsLXJvb3RzJzogeydyb290cyc6IHt9
fX0sCiAgICAgICAgICAgICAgICAgICAgIGJ1aWxkUHJvcGVydGllczogeyd3ZWJraXQnOiB7cmV2
aXNpb246ICdXZWJLaXQnfSwgJ3BhdGNoJzoge3BhdGNoOiAnV2ViS2l0J30sICdpbnN0YWxsLXJv
b3RzJzoge3Jvb3RzOiB7fX19LAogICAgICAgICAgICAgICAgICAgICBhY2NlcHRzUm9vdHM6IHRy
dWV9fTsKLSAgICAgICAgICAgICAgICBCdWlsZGJvdFN5bmNlci5fbG9hZENvbmZpZyhNb2NrUmVt
b3RlQVBJLCBjb25maWcpOworICAgICAgICAgICAgICAgIEJ1aWxkYm90U3luY2VyLl9sb2FkQ29u
ZmlnKE1vY2tSZW1vdGVBUEksIGNvbmZpZywgYnVpbGRlck5hbWVUb0lETWFwKCkpOwogICAgICAg
ICAgICAgfSwgL1JlcG9zaXRvcnkgZ3JvdXAgInNvbWUtZ3JvdXAiIHNwZWNpZmllcyByb290cyBp
biB0aGUgcHJvcGVydGllcyBmb3IgYnVpbGRpbmcvKTsKICAgICAgICAgfSk7CiAKQEAgLTkxNiw3
ICs5MjksNyBAQCBkZXNjcmliZSgnQnVpbGRib3RTeW5jZXInLCAoKSA9PiB7CiAgICAgICAgICAg
ICAgICAgY29uZmlnLnJlcG9zaXRvcnlHcm91cHMgPSB7J3NvbWUtZ3JvdXAnOiB7CiAgICAgICAg
ICAgICAgICAgICAgIHJlcG9zaXRvcmllczogeydXZWJLaXQnOiB7fX0sCiAgICAgICAgICAgICAg
ICAgICAgIHRlc3RQcm9wZXJ0aWVzOiB7J3dlYmtpdCc6IHsncmV2aXNpb24nOiAnV2ViS2l0J30s
ICdpbnN0YWxsLXJvb3RzJzogeydyb290cyc6IHt9fX19fTsKLSAgICAgICAgICAgICAgICBCdWls
ZGJvdFN5bmNlci5fbG9hZENvbmZpZyhNb2NrUmVtb3RlQVBJLCBjb25maWcpOworICAgICAgICAg
ICAgICAgIEJ1aWxkYm90U3luY2VyLl9sb2FkQ29uZmlnKE1vY2tSZW1vdGVBUEksIGNvbmZpZywg
YnVpbGRlck5hbWVUb0lETWFwKCkpOwogICAgICAgICAgICAgfSwgL1JlcG9zaXRvcnkgZ3JvdXAg
InNvbWUtZ3JvdXAiIHNwZWNpZmllcyByb290cyBpbiBhIHByb3BlcnR5IGJ1dCBpdCBkb2VzIG5v
dCBhY2NlcHQgcm9vdHMvKTsKICAgICAgICAgfSk7CiAKQEAgLTkyNyw3ICs5NDAsNyBAQCBkZXNj
cmliZSgnQnVpbGRib3RTeW5jZXInLCAoKSA9PiB7CiAgICAgICAgICAgICAgICAgICAgIHJlcG9z
aXRvcmllczogeydXZWJLaXQnOiB7YWNjZXB0c1BhdGNoOiB0cnVlfX0sCiAgICAgICAgICAgICAg
ICAgICAgIHRlc3RQcm9wZXJ0aWVzOiB7J3dlYmtpdCc6IHtyZXZpc2lvbjogJ1dlYktpdCd9fSwK
ICAgICAgICAgICAgICAgICAgICAgYnVpbGRQcm9wZXJ0aWVzOiB7J3dlYmtpdCc6IHtyZXZpc2lv
bjogJ1dlYktpdCd9LCAnd2Via2l0LXBhdGNoJzoge3BhdGNoOiAnV2ViS2l0J319fX07Ci0gICAg
ICAgICAgICAgICAgQnVpbGRib3RTeW5jZXIuX2xvYWRDb25maWcoTW9ja1JlbW90ZUFQSSwgY29u
ZmlnKTsKKyAgICAgICAgICAgICAgICBCdWlsZGJvdFN5bmNlci5fbG9hZENvbmZpZyhNb2NrUmVt
b3RlQVBJLCBjb25maWcsIGJ1aWxkZXJOYW1lVG9JRE1hcCgpKTsKICAgICAgICAgICAgIH0sIC9S
ZXBvc2l0b3J5IGdyb3VwICJzb21lLWdyb3VwIiBzcGVjaWZpZXMgdGhlIHByb3BlcnRpZXMgZm9y
IGJ1aWxkaW5nIGJ1dCBkb2VzIG5vdCBhY2NlcHQgcm9vdHMgaW4gdGVzdGluZy8pOwogICAgICAg
ICB9KTsKIApAQCAtOTM5LDcgKzk1Miw3IEBAIGRlc2NyaWJlKCdCdWlsZGJvdFN5bmNlcicsICgp
ID0+IHsKICAgICAgICAgICAgICAgICAgICAgdGVzdFByb3BlcnRpZXM6IHsnd2Via2l0Jzogeydy
ZXZpc2lvbic6ICdXZWJLaXQnfSwgJ2luc3RhbGwtcm9vdHMnOiB7J3Jvb3RzJzoge319fSwKICAg
ICAgICAgICAgICAgICAgICAgYnVpbGRQcm9wZXJ0aWVzOiB7J3dlYmtpdCc6IHsncmV2aXNpb24n
OiAnV2ViS2l0J319LAogICAgICAgICAgICAgICAgICAgICBhY2NlcHRzUm9vdHM6IHRydWV9fTsK
LSAgICAgICAgICAgICAgICBCdWlsZGJvdFN5bmNlci5fbG9hZENvbmZpZyhNb2NrUmVtb3RlQVBJ
LCBjb25maWcpOworICAgICAgICAgICAgICAgIEJ1aWxkYm90U3luY2VyLl9sb2FkQ29uZmlnKE1v
Y2tSZW1vdGVBUEksIGNvbmZpZywgYnVpbGRlck5hbWVUb0lETWFwKCkpOwogICAgICAgICAgICAg
fSwgL1JlcG9zaXRvcnkgZ3JvdXAgInNvbWUtZ3JvdXAiIHNwZWNpZmllcyB0aGUgcHJvcGVydGll
cyBmb3IgYnVpbGRpbmcgYnV0IGRvZXMgbm90IGFjY2VwdCBhbnkgcGF0Y2hlcy8pOwogICAgICAg
ICB9KTsKIApAQCAtOTUxLDIxICs5NjQsMjEgQEAgZGVzY3JpYmUoJ0J1aWxkYm90U3luY2VyJywg
KCkgPT4gewogICAgICAgICAgICAgICAgICAgICB0ZXN0UHJvcGVydGllczogeyd3ZWJraXQnOiB7
cmV2aXNpb246ICdXZWJLaXQnfX0sCiAgICAgICAgICAgICAgICAgICAgIGJ1aWxkUHJvcGVydGll
czogeyd3ZWJraXQnOiB7cmV2aXNpb246ICdXZWJLaXQnfSwgJ3dlYmtpdC1wYXRjaCc6IHtwYXRj
aDogJ1dlYktpdCd9fSwKICAgICAgICAgICAgICAgICAgICAgYWNjZXB0c1Jvb3RzOiB0cnVlfX07
Ci0gICAgICAgICAgICAgICAgQnVpbGRib3RTeW5jZXIuX2xvYWRDb25maWcoTW9ja1JlbW90ZUFQ
SSwgY29uZmlnKTsKKyAgICAgICAgICAgICAgICBCdWlsZGJvdFN5bmNlci5fbG9hZENvbmZpZyhN
b2NrUmVtb3RlQVBJLCBjb25maWcsIGJ1aWxkZXJOYW1lVG9JRE1hcCgpKTsKICAgICAgICAgICAg
IH0sIC9SZXBvc2l0b3J5IGdyb3VwICJzb21lLWdyb3VwIiBhY2NlcHRzIHJvb3RzIGJ1dCBkb2Vz
IG5vdCBzcGVjaWZ5IHJvb3RzIGluIHRlc3RQcm9wZXJ0aWVzLyk7CiAgICAgICAgIH0pOwogICAg
IH0pOwogCiAgICAgZGVzY3JpYmUoJ19wcm9wZXJ0aWVzRm9yQnVpbGRSZXF1ZXN0JywgKCkgPT4g
ewogICAgICAgICBpdCgnc2hvdWxkIGluY2x1ZGUgYWxsIHByb3BlcnRpZXMgc3BlY2lmaWVkIGlu
IGEgZ2l2ZW4gY29uZmlndXJhdGlvbicsICgpID0+IHsKLSAgICAgICAgICAgIGNvbnN0IHN5bmNl
cnMgPSBCdWlsZGJvdFN5bmNlci5fbG9hZENvbmZpZyhSZW1vdGVBUEksIHNhbXBsZWlPU0NvbmZp
ZygpKTsKKyAgICAgICAgICAgIGNvbnN0IHN5bmNlcnMgPSBCdWlsZGJvdFN5bmNlci5fbG9hZENv
bmZpZyhSZW1vdGVBUEksIHNhbXBsZWlPU0NvbmZpZygpLCBidWlsZGVyTmFtZVRvSURNYXAoKSk7
CiAgICAgICAgICAgICBjb25zdCByZXF1ZXN0ID0gY3JlYXRlU2FtcGxlQnVpbGRSZXF1ZXN0KE1v
Y2tNb2RlbHMuaXBob25lLCBNb2NrTW9kZWxzLnNwZWVkb21ldGVyKTsKICAgICAgICAgICAgIGNv
bnN0IHByb3BlcnRpZXMgPSBzeW5jZXJzWzBdLl9wcm9wZXJ0aWVzRm9yQnVpbGRSZXF1ZXN0KHJl
cXVlc3QsIFtyZXF1ZXN0XSk7CiAgICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKE9iamVjdC5r
ZXlzKHByb3BlcnRpZXMpLnNvcnQoKSwgWydidWlsZF9yZXF1ZXN0X2lkJywgJ2Rlc2lyZWRfaW1h
Z2UnLCAnZm9yY2VzY2hlZHVsZXInLCAnb3BlbnNvdXJjZScsICd0ZXN0X25hbWUnXSk7CiAgICAg
ICAgIH0pOwogCiAgICAgICAgIGl0KCdzaG91bGQgcHJlc2VydmUgbm9uLXBhcmFtZXRyaWMgcHJv
cGVydHkgdmFsdWVzJywgKCkgPT4gewotICAgICAgICAgICAgY29uc3Qgc3luY2VycyA9IEJ1aWxk
Ym90U3luY2VyLl9sb2FkQ29uZmlnKFJlbW90ZUFQSSwgc2FtcGxlaU9TQ29uZmlnKCkpOworICAg
ICAgICAgICAgY29uc3Qgc3luY2VycyA9IEJ1aWxkYm90U3luY2VyLl9sb2FkQ29uZmlnKFJlbW90
ZUFQSSwgc2FtcGxlaU9TQ29uZmlnKCksIGJ1aWxkZXJOYW1lVG9JRE1hcCgpKTsKICAgICAgICAg
ICAgIGxldCByZXF1ZXN0ID0gY3JlYXRlU2FtcGxlQnVpbGRSZXF1ZXN0KE1vY2tNb2RlbHMuaXBo
b25lLCBNb2NrTW9kZWxzLnNwZWVkb21ldGVyKTsKICAgICAgICAgICAgIGxldCBwcm9wZXJ0aWVz
ID0gc3luY2Vyc1swXS5fcHJvcGVydGllc0ZvckJ1aWxkUmVxdWVzdChyZXF1ZXN0LCBbcmVxdWVz
dF0pOwogICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHByb3BlcnRpZXNbJ3Rlc3RfbmFtZSddLCAn
c3BlZWRvbWV0ZXInKTsKQEAgLTk3OCwxNCArOTkxLDE0IEBAIGRlc2NyaWJlKCdCdWlsZGJvdFN5
bmNlcicsICgpID0+IHsKICAgICAgICAgfSk7CiAKICAgICAgICAgaXQoJ3Nob3VsZCByZXNvbHZl
ICJyb290IicsICgpID0+IHsKLSAgICAgICAgICAgIGNvbnN0IHN5bmNlcnMgPSBCdWlsZGJvdFN5
bmNlci5fbG9hZENvbmZpZyhSZW1vdGVBUEksIHNhbXBsZWlPU0NvbmZpZygpKTsKKyAgICAgICAg
ICAgIGNvbnN0IHN5bmNlcnMgPSBCdWlsZGJvdFN5bmNlci5fbG9hZENvbmZpZyhSZW1vdGVBUEks
IHNhbXBsZWlPU0NvbmZpZygpLCBidWlsZGVyTmFtZVRvSURNYXAoKSk7CiAgICAgICAgICAgICBj
b25zdCByZXF1ZXN0ID0gY3JlYXRlU2FtcGxlQnVpbGRSZXF1ZXN0KE1vY2tNb2RlbHMuaXBob25l
LCBNb2NrTW9kZWxzLnNwZWVkb21ldGVyKTsKICAgICAgICAgICAgIGNvbnN0IHByb3BlcnRpZXMg
PSBzeW5jZXJzWzBdLl9wcm9wZXJ0aWVzRm9yQnVpbGRSZXF1ZXN0KHJlcXVlc3QsIFtyZXF1ZXN0
XSk7CiAgICAgICAgICAgICBhc3NlcnQuZXF1YWwocHJvcGVydGllc1snZGVzaXJlZF9pbWFnZSdd
LCAnMTNBNDUyJyk7CiAgICAgICAgIH0pOwogCiAgICAgICAgIGl0KCdzaG91bGQgcmVzb2x2ZSAi
cmV2aXNpb24iJywgKCkgPT4gewotICAgICAgICAgICAgY29uc3Qgc3luY2VycyA9IEJ1aWxkYm90
U3luY2VyLl9sb2FkQ29uZmlnKFJlbW90ZUFQSSwgc2FtcGxlaU9TQ29uZmlnKCkpOworICAgICAg
ICAgICAgY29uc3Qgc3luY2VycyA9IEJ1aWxkYm90U3luY2VyLl9sb2FkQ29uZmlnKFJlbW90ZUFQ
SSwgc2FtcGxlaU9TQ29uZmlnKCksIGJ1aWxkZXJOYW1lVG9JRE1hcCgpKTsKICAgICAgICAgICAg
IGNvbnN0IHJlcXVlc3QgPSBjcmVhdGVTYW1wbGVCdWlsZFJlcXVlc3QoTW9ja01vZGVscy5pcGhv
bmUsIE1vY2tNb2RlbHMuc3BlZWRvbWV0ZXIpOwogICAgICAgICAgICAgY29uc3QgcHJvcGVydGll
cyA9IHN5bmNlcnNbMF0uX3Byb3BlcnRpZXNGb3JCdWlsZFJlcXVlc3QocmVxdWVzdCwgW3JlcXVl
c3RdKTsKICAgICAgICAgICAgIGFzc2VydC5lcXVhbChwcm9wZXJ0aWVzWydvcGVuc291cmNlJ10s
ICcxOTc0NjMnKTsKQEAgLTEwMDksNyArMTAyMiw3IEBAIGRlc2NyaWJlKCdCdWlsZGJvdFN5bmNl
cicsICgpID0+IHsKICAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgICAgICdhY2NlcHRz
Um9vdHMnOiB0cnVlLAogICAgICAgICAgICAgfTsKLSAgICAgICAgICAgIGNvbnN0IHN5bmNlcnMg
PSBCdWlsZGJvdFN5bmNlci5fbG9hZENvbmZpZyhSZW1vdGVBUEksIGNvbmZpZyk7CisgICAgICAg
ICAgICBjb25zdCBzeW5jZXJzID0gQnVpbGRib3RTeW5jZXIuX2xvYWRDb25maWcoUmVtb3RlQVBJ
LCBjb25maWcsIGJ1aWxkZXJOYW1lVG9JRE1hcCgpKTsKICAgICAgICAgICAgIGNvbnN0IHJlcXVl
c3QgPSBjcmVhdGVTYW1wbGVCdWlsZFJlcXVlc3RXaXRoUGF0Y2goTW9ja01vZGVscy5pcGhvbmUs
IG51bGwsIC0xKTsKICAgICAgICAgICAgIGNvbnN0IHByb3BlcnRpZXMgPSBzeW5jZXJzWzJdLl9w
cm9wZXJ0aWVzRm9yQnVpbGRSZXF1ZXN0KHJlcXVlc3QsIFtyZXF1ZXN0XSk7CiAgICAgICAgICAg
ICBhc3NlcnQuZXF1YWwocHJvcGVydGllc1snd2Via2l0J10sICcxOTc0NjMnKTsKQEAgLTEwMzEs
NyArMTA0NCw3IEBAIGRlc2NyaWJlKCdCdWlsZGJvdFN5bmNlcicsICgpID0+IHsKICAgICAgICAg
ICAgICAgICB9LAogICAgICAgICAgICAgICAgICdhY2NlcHRzUm9vdHMnOiB0cnVlLAogICAgICAg
ICAgICAgfTsKLSAgICAgICAgICAgIGNvbnN0IHN5bmNlcnMgPSBCdWlsZGJvdFN5bmNlci5fbG9h
ZENvbmZpZyhSZW1vdGVBUEksIGNvbmZpZyk7CisgICAgICAgICAgICBjb25zdCBzeW5jZXJzID0g
QnVpbGRib3RTeW5jZXIuX2xvYWRDb25maWcoUmVtb3RlQVBJLCBjb25maWcsIGJ1aWxkZXJOYW1l
VG9JRE1hcCgpKTsKICAgICAgICAgICAgIGNvbnN0IHJlcXVlc3RUb0J1aWxkID0gY3JlYXRlU2Ft
cGxlQnVpbGRSZXF1ZXN0V2l0aFBhdGNoKE1vY2tNb2RlbHMuaXBob25lLCBudWxsLCAtMSk7CiAg
ICAgICAgICAgICBjb25zdCByZXF1ZXN0VG9UZXN0ID0gY3JlYXRlU2FtcGxlQnVpbGRSZXF1ZXN0
V2l0aFBhdGNoKE1vY2tNb2RlbHMuaXBob25lLCBNb2NrTW9kZWxzLnNwZWVkb21ldGVyLCAwKTsK
ICAgICAgICAgICAgIGNvbnN0IG90aGVyUmVxdWVzdFRvVGVzdCA9IGNyZWF0ZVNhbXBsZUJ1aWxk
UmVxdWVzdChNb2NrTW9kZWxzLmlwaG9uZSwgTW9ja01vZGVscy5zcGVlZG9tZXRlcik7CkBAIC0x
MDc1LDcgKzEwODgsNyBAQCBkZXNjcmliZSgnQnVpbGRib3RTeW5jZXInLCAoKSA9PiB7CiAgICAg
ICAgICAgICAgICAgfSwKICAgICAgICAgICAgICAgICAnYWNjZXB0c1Jvb3RzJzogdHJ1ZSwKICAg
ICAgICAgICAgIH07Ci0gICAgICAgICAgICBjb25zdCBzeW5jZXJzID0gQnVpbGRib3RTeW5jZXIu
X2xvYWRDb25maWcoUmVtb3RlQVBJLCBjb25maWcpOworICAgICAgICAgICAgY29uc3Qgc3luY2Vy
cyA9IEJ1aWxkYm90U3luY2VyLl9sb2FkQ29uZmlnKFJlbW90ZUFQSSwgY29uZmlnLCBidWlsZGVy
TmFtZVRvSURNYXAoKSk7CiAgICAgICAgICAgICBjb25zdCByZXF1ZXN0ID0gY3JlYXRlU2FtcGxl
QnVpbGRSZXF1ZXN0V2l0aE93bmVkQ29tbWl0KE1vY2tNb2RlbHMuaXBob25lLCBudWxsLCAtMSk7
CiAgICAgICAgICAgICBjb25zdCBwcm9wZXJ0aWVzID0gc3luY2Vyc1syXS5fcHJvcGVydGllc0Zv
ckJ1aWxkUmVxdWVzdChyZXF1ZXN0LCBbcmVxdWVzdF0pOwogICAgICAgICAgICAgYXNzZXJ0LmVx
dWFsKHByb3BlcnRpZXNbJ3dlYmtpdCddLCAnMTk3NDYzJyk7CkBAIC0xMTA0LDcgKzExMTcsNyBA
QCBkZXNjcmliZSgnQnVpbGRib3RTeW5jZXInLCAoKSA9PiB7CiAgICAgICAgICAgICAgICAgfSwK
ICAgICAgICAgICAgICAgICAnYWNjZXB0c1Jvb3RzJzogdHJ1ZSwKICAgICAgICAgICAgIH07Ci0g
ICAgICAgICAgICBjb25zdCBzeW5jZXJzID0gQnVpbGRib3RTeW5jZXIuX2xvYWRDb25maWcoUmVt
b3RlQVBJLCBjb25maWcpOworICAgICAgICAgICAgY29uc3Qgc3luY2VycyA9IEJ1aWxkYm90U3lu
Y2VyLl9sb2FkQ29uZmlnKFJlbW90ZUFQSSwgY29uZmlnLCBidWlsZGVyTmFtZVRvSURNYXAoKSk7
CiAgICAgICAgICAgICBjb25zdCByZXF1ZXN0ID0gY3JlYXRlU2FtcGxlQnVpbGRSZXF1ZXN0V2l0
aE93bmVkQ29tbWl0QW5kUGF0Y2goTW9ja01vZGVscy5pcGhvbmUsIG51bGwsIC0xKTsKICAgICAg
ICAgICAgIGNvbnN0IHByb3BlcnRpZXMgPSBzeW5jZXJzWzJdLl9wcm9wZXJ0aWVzRm9yQnVpbGRS
ZXF1ZXN0KHJlcXVlc3QsIFtyZXF1ZXN0XSk7CiAgICAgICAgICAgICBhc3NlcnQuZXF1YWwocHJv
cGVydGllc1snd2Via2l0J10sICcxOTc0NjMnKTsKQEAgLTExMTUsNyArMTEyOCw3IEBAIGRlc2Ny
aWJlKCdCdWlsZGJvdFN5bmNlcicsICgpID0+IHsKICAgICAgICAgfSk7CiAKICAgICAgICAgaXQo
J3Nob3VsZCBzZXQgdGhlIHByb3BlcnR5IGZvciB0aGUgYnVpbGQgcmVxdWVzdCBpZCcsICgpID0+
IHsKLSAgICAgICAgICAgIGNvbnN0IHN5bmNlcnMgPSBCdWlsZGJvdFN5bmNlci5fbG9hZENvbmZp
ZyhSZW1vdGVBUEksIHNhbXBsZWlPU0NvbmZpZygpKTsKKyAgICAgICAgICAgIGNvbnN0IHN5bmNl
cnMgPSBCdWlsZGJvdFN5bmNlci5fbG9hZENvbmZpZyhSZW1vdGVBUEksIHNhbXBsZWlPU0NvbmZp
ZygpLCBidWlsZGVyTmFtZVRvSURNYXAoKSk7CiAgICAgICAgICAgICBjb25zdCByZXF1ZXN0ID0g
Y3JlYXRlU2FtcGxlQnVpbGRSZXF1ZXN0KE1vY2tNb2RlbHMuaXBob25lLCBNb2NrTW9kZWxzLnNw
ZWVkb21ldGVyKTsKICAgICAgICAgICAgIGNvbnN0IHByb3BlcnRpZXMgPSBzeW5jZXJzWzBdLl9w
cm9wZXJ0aWVzRm9yQnVpbGRSZXF1ZXN0KHJlcXVlc3QsIFtyZXF1ZXN0XSk7CiAgICAgICAgICAg
ICBhc3NlcnQuZXF1YWwocHJvcGVydGllc1snYnVpbGRfcmVxdWVzdF9pZCddLCByZXF1ZXN0Lmlk
KCkpOwpAQCAtMTEyNCw3ICsxMTM3LDcgQEAgZGVzY3JpYmUoJ0J1aWxkYm90U3luY2VyJywgKCkg
PT4gewogCiAgICAgZGVzY3JpYmUoJ3B1bGxCdWlsZGJvdCcsICgpID0+IHsKICAgICAgICAgaXQo
J3Nob3VsZCBmZXRjaCBwZW5kaW5nIGJ1aWxkcyBmcm9tIHRoZSByaWdodCBVUkwnLCAoKSA9PiB7
Ci0gICAgICAgICAgICBsZXQgc3luY2VyID0gQnVpbGRib3RTeW5jZXIuX2xvYWRDb25maWcoTW9j
a1JlbW90ZUFQSSwgc2FtcGxlaU9TQ29uZmlnKCkpWzFdOworICAgICAgICAgICAgbGV0IHN5bmNl
ciA9IEJ1aWxkYm90U3luY2VyLl9sb2FkQ29uZmlnKE1vY2tSZW1vdGVBUEksIHNhbXBsZWlPU0Nv
bmZpZygpLCBidWlsZGVyTmFtZVRvSURNYXAoKSlbMV07CiAgICAgICAgICAgICBhc3NlcnQuZXF1
YWwoc3luY2VyLmJ1aWxkZXJOYW1lKCksICdBQlRlc3QtaVBhZC1SdW5CZW5jaG1hcmstVGVzdHMn
KTsKICAgICAgICAgICAgIGxldCBleHBlY3RlZFVSTCA9ICcvanNvbi9idWlsZGVycy9BQlRlc3Qt
aVBhZC1SdW5CZW5jaG1hcmstVGVzdHMvcGVuZGluZ0J1aWxkcyc7CiAgICAgICAgICAgICBhc3Nl
cnQuZXF1YWwoc3luY2VyLnBhdGhGb3JQZW5kaW5nQnVpbGRzSlNPTigpLCBleHBlY3RlZFVSTCk7
CkBAIC0xMTM0LDcgKzExNDcsNyBAQCBkZXNjcmliZSgnQnVpbGRib3RTeW5jZXInLCAoKSA9PiB7
CiAgICAgICAgIH0pOwogCiAgICAgICAgIGl0KCdzaG91bGQgZmV0Y2ggcmVjZW50IGJ1aWxkcyBv
bmNlIHBlbmRpbmcgYnVpbGRzIGhhdmUgYmVlbiBmZXRjaGVkJywgKCkgPT4gewotICAgICAgICAg
ICAgbGV0IHN5bmNlciA9IEJ1aWxkYm90U3luY2VyLl9sb2FkQ29uZmlnKE1vY2tSZW1vdGVBUEks
IHNhbXBsZWlPU0NvbmZpZygpKVsxXTsKKyAgICAgICAgICAgIGxldCBzeW5jZXIgPSBCdWlsZGJv
dFN5bmNlci5fbG9hZENvbmZpZyhNb2NrUmVtb3RlQVBJLCBzYW1wbGVpT1NDb25maWcoKSwgYnVp
bGRlck5hbWVUb0lETWFwKCkpWzFdOwogICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHN5bmNlci5i
dWlsZGVyTmFtZSgpLCAnQUJUZXN0LWlQYWQtUnVuQmVuY2htYXJrLVRlc3RzJyk7CiAKICAgICAg
ICAgICAgIHN5bmNlci5wdWxsQnVpbGRib3QoMSk7CkBAIC0xMTQ4LDcgKzExNjEsNyBAQCBkZXNj
cmliZSgnQnVpbGRib3RTeW5jZXInLCAoKSA9PiB7CiAgICAgICAgIH0pOwogCiAgICAgICAgIGl0
KCdzaG91bGQgZmV0Y2ggdGhlIHJpZ2h0IG51bWJlciBvZiByZWNlbnQgYnVpbGRzJywgKCkgPT4g
ewotICAgICAgICAgICAgbGV0IHN5bmNlciA9IEJ1aWxkYm90U3luY2VyLl9sb2FkQ29uZmlnKE1v
Y2tSZW1vdGVBUEksIHNhbXBsZWlPU0NvbmZpZygpKVsxXTsKKyAgICAgICAgICAgIGxldCBzeW5j
ZXIgPSBCdWlsZGJvdFN5bmNlci5fbG9hZENvbmZpZyhNb2NrUmVtb3RlQVBJLCBzYW1wbGVpT1ND
b25maWcoKSwgYnVpbGRlck5hbWVUb0lETWFwKCkpWzFdOwogCiAgICAgICAgICAgICBzeW5jZXIu
cHVsbEJ1aWxkYm90KDMpOwogICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlcXVlc3RzLmxlbmd0
aCwgMSk7CkBAIC0xMTYxLDcgKzExNzQsNyBAQCBkZXNjcmliZSgnQnVpbGRib3RTeW5jZXInLCAo
KSA9PiB7CiAgICAgICAgIH0pOwogCiAgICAgICAgIGl0KCdzaG91bGQgY3JlYXRlIEJ1aWxkYm90
QnVpbGRFbnRyeSBmb3IgcGVuZGluZyBidWlsZHMnLCAoKSA9PiB7Ci0gICAgICAgICAgICBsZXQg
c3luY2VyID0gQnVpbGRib3RTeW5jZXIuX2xvYWRDb25maWcoTW9ja1JlbW90ZUFQSSwgc2FtcGxl
aU9TQ29uZmlnKCkpWzFdOworICAgICAgICAgICAgbGV0IHN5bmNlciA9IEJ1aWxkYm90U3luY2Vy
Ll9sb2FkQ29uZmlnKE1vY2tSZW1vdGVBUEksIHNhbXBsZWlPU0NvbmZpZygpLCBidWlsZGVyTmFt
ZVRvSURNYXAoKSlbMV07CiAgICAgICAgICAgICBsZXQgcHJvbWlzZSA9IHN5bmNlci5wdWxsQnVp
bGRib3QoKTsKICAgICAgICAgICAgIHJlcXVlc3RzWzBdLnJlc29sdmUoW3NhbXBsZVBlbmRpbmdC
dWlsZCgpXSk7CiAgICAgICAgICAgICByZXR1cm4gcHJvbWlzZS50aGVuKChlbnRyaWVzKSA9PiB7
CkBAIC0xMTc5LDcgKzExOTIsNyBAQCBkZXNjcmliZSgnQnVpbGRib3RTeW5jZXInLCAoKSA9PiB7
CiAgICAgICAgIH0pOwogCiAgICAgICAgIGl0KCdzaG91bGQgY3JlYXRlIEJ1aWxkYm90QnVpbGRF
bnRyeSBmb3IgaW4tcHJvZ3Jlc3MgYnVpbGRzJywgKCkgPT4gewotICAgICAgICAgICAgbGV0IHN5
bmNlciA9IEJ1aWxkYm90U3luY2VyLl9sb2FkQ29uZmlnKE1vY2tSZW1vdGVBUEksIHNhbXBsZWlP
U0NvbmZpZygpKVsxXTsKKyAgICAgICAgICAgIGxldCBzeW5jZXIgPSBCdWlsZGJvdFN5bmNlci5f
bG9hZENvbmZpZyhNb2NrUmVtb3RlQVBJLCBzYW1wbGVpT1NDb25maWcoKSwgYnVpbGRlck5hbWVU
b0lETWFwKCkpWzFdOwogCiAgICAgICAgICAgICBsZXQgcHJvbWlzZSA9IHN5bmNlci5wdWxsQnVp
bGRib3QoMSk7CiAgICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVxdWVzdHMubGVuZ3RoLCAxKTsK
QEAgLTEyMDMsNyArMTIxNiw3IEBAIGRlc2NyaWJlKCdCdWlsZGJvdFN5bmNlcicsICgpID0+IHsK
ICAgICAgICAgfSk7CiAKICAgICAgICAgaXQoJ3Nob3VsZCBjcmVhdGUgQnVpbGRib3RCdWlsZEVu
dHJ5IGZvciBmaW5pc2hlZCBidWlsZHMnLCAoKSA9PiB7Ci0gICAgICAgICAgICBsZXQgc3luY2Vy
ID0gQnVpbGRib3RTeW5jZXIuX2xvYWRDb25maWcoTW9ja1JlbW90ZUFQSSwgc2FtcGxlaU9TQ29u
ZmlnKCkpWzFdOworICAgICAgICAgICAgbGV0IHN5bmNlciA9IEJ1aWxkYm90U3luY2VyLl9sb2Fk
Q29uZmlnKE1vY2tSZW1vdGVBUEksIHNhbXBsZWlPU0NvbmZpZygpLCBidWlsZGVyTmFtZVRvSURN
YXAoKSlbMV07CiAKICAgICAgICAgICAgIGxldCBwcm9taXNlID0gc3luY2VyLnB1bGxCdWlsZGJv
dCgxKTsKICAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXF1ZXN0cy5sZW5ndGgsIDEpOwpAQCAt
MTIyNyw3ICsxMjQwLDcgQEAgZGVzY3JpYmUoJ0J1aWxkYm90U3luY2VyJywgKCkgPT4gewogICAg
ICAgICB9KTsKIAogICAgICAgICBpdCgnc2hvdWxkIGNyZWF0ZSBCdWlsZGJvdEJ1aWxkRW50cnkg
Zm9yIG1peGVkIHBlbmRpbmcsIGluLXByb2dyZXNzLCBmaW5pc2hlZCwgYW5kIG1pc3NpbmcgYnVp
bGRzJywgKCkgPT4gewotICAgICAgICAgICAgbGV0IHN5bmNlciA9IEJ1aWxkYm90U3luY2VyLl9s
b2FkQ29uZmlnKE1vY2tSZW1vdGVBUEksIHNhbXBsZWlPU0NvbmZpZygpKVsxXTsKKyAgICAgICAg
ICAgIGxldCBzeW5jZXIgPSBCdWlsZGJvdFN5bmNlci5fbG9hZENvbmZpZyhNb2NrUmVtb3RlQVBJ
LCBzYW1wbGVpT1NDb25maWcoKSwgYnVpbGRlck5hbWVUb0lETWFwKCkpWzFdOwogCiAgICAgICAg
ICAgICBsZXQgcHJvbWlzZSA9IHN5bmNlci5wdWxsQnVpbGRib3QoNSk7CiAgICAgICAgICAgICBh
c3NlcnQuZXF1YWwocmVxdWVzdHMubGVuZ3RoLCAxKTsKQEAgLTEyNzQsNyArMTI4Nyw3IEBAIGRl
c2NyaWJlKCdCdWlsZGJvdFN5bmNlcicsICgpID0+IHsKICAgICAgICAgfSk7CiAKICAgICAgICAg
aXQoJ3Nob3VsZCBzb3J0IEJ1aWxkYm90QnVpbGRFbnRyeSBieSBvcmRlcicsICgpID0+IHsKLSAg
ICAgICAgICAgIGxldCBzeW5jZXIgPSBCdWlsZGJvdFN5bmNlci5fbG9hZENvbmZpZyhNb2NrUmVt
b3RlQVBJLCBzYW1wbGVpT1NDb25maWcoKSlbMV07CisgICAgICAgICAgICBsZXQgc3luY2VyID0g
QnVpbGRib3RTeW5jZXIuX2xvYWRDb25maWcoTW9ja1JlbW90ZUFQSSwgc2FtcGxlaU9TQ29uZmln
KCksIGJ1aWxkZXJOYW1lVG9JRE1hcCgpKVsxXTsKIAogICAgICAgICAgICAgbGV0IHByb21pc2Ug
PSBzeW5jZXIucHVsbEJ1aWxkYm90KDUpOwogICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJlcXVl
c3RzLmxlbmd0aCwgMSk7CkBAIC0xMzMxLDcgKzEzNDQsNyBAQCBkZXNjcmliZSgnQnVpbGRib3RT
eW5jZXInLCAoKSA9PiB7CiAgICAgICAgIH0pOwogCiAgICAgICAgIGl0KCdzaG91bGQgb3ZlcnJp
ZGUgQnVpbGRib3RCdWlsZEVudHJ5IGZvciBwZW5kaW5nIGJ1aWxkcyBieSBpbi1wcm9ncmVzcyBi
dWlsZHMnLCAoKSA9PiB7Ci0gICAgICAgICAgICBsZXQgc3luY2VyID0gQnVpbGRib3RTeW5jZXIu
X2xvYWRDb25maWcoTW9ja1JlbW90ZUFQSSwgc2FtcGxlaU9TQ29uZmlnKCkpWzFdOworICAgICAg
ICAgICAgbGV0IHN5bmNlciA9IEJ1aWxkYm90U3luY2VyLl9sb2FkQ29uZmlnKE1vY2tSZW1vdGVB
UEksIHNhbXBsZWlPU0NvbmZpZygpLCBidWlsZGVyTmFtZVRvSURNYXAoKSlbMV07CiAKICAgICAg
ICAgICAgIGxldCBwcm9taXNlID0gc3luY2VyLnB1bGxCdWlsZGJvdCg1KTsKICAgICAgICAgICAg
IGFzc2VydC5lcXVhbChyZXF1ZXN0cy5sZW5ndGgsIDEpOwpAQCAtMTM1OCw3ICsxMzcxLDcgQEAg
ZGVzY3JpYmUoJ0J1aWxkYm90U3luY2VyJywgKCkgPT4gewogICAgICAgICB9KTsKIAogICAgICAg
ICBpdCgnc2hvdWxkIG92ZXJyaWRlIEJ1aWxkYm90QnVpbGRFbnRyeSBmb3IgcGVuZGluZyBidWls
ZHMgYnkgZmluaXNoZWQgYnVpbGRzJywgKCkgPT4gewotICAgICAgICAgICAgbGV0IHN5bmNlciA9
IEJ1aWxkYm90U3luY2VyLl9sb2FkQ29uZmlnKE1vY2tSZW1vdGVBUEksIHNhbXBsZWlPU0NvbmZp
ZygpKVsxXTsKKyAgICAgICAgICAgIGxldCBzeW5jZXIgPSBCdWlsZGJvdFN5bmNlci5fbG9hZENv
bmZpZyhNb2NrUmVtb3RlQVBJLCBzYW1wbGVpT1NDb25maWcoKSwgYnVpbGRlck5hbWVUb0lETWFw
KCkpWzFdOwogCiAgICAgICAgICAgICBsZXQgcHJvbWlzZSA9IHN5bmNlci5wdWxsQnVpbGRib3Qo
NSk7CiAgICAgICAgICAgICBhc3NlcnQuZXF1YWwocmVxdWVzdHMubGVuZ3RoLCAxKTsKQEAgLTEz
ODcsNyArMTQwMCw3IEBAIGRlc2NyaWJlKCdCdWlsZGJvdFN5bmNlcicsICgpID0+IHsKIAogICAg
IGRlc2NyaWJlKCdzY2hlZHVsZVJlcXVlc3QnLCAoKSA9PiB7CiAgICAgICAgIGl0KCdzaG91bGQg
c2NoZWR1bGUgYSBidWlsZCByZXF1ZXN0IG9uIGEgc3BlY2lmaWVkIHNsYXZlJywgKCkgPT4gewot
ICAgICAgICAgICAgbGV0IHN5bmNlciA9IEJ1aWxkYm90U3luY2VyLl9sb2FkQ29uZmlnKE1vY2tS
ZW1vdGVBUEksIHNhbXBsZWlPU0NvbmZpZygpKVswXTsKKyAgICAgICAgICAgIGxldCBzeW5jZXIg
PSBCdWlsZGJvdFN5bmNlci5fbG9hZENvbmZpZyhNb2NrUmVtb3RlQVBJLCBzYW1wbGVpT1NDb25m
aWcoKSwgYnVpbGRlck5hbWVUb0lETWFwKCkpWzBdOwogCiAgICAgICAgICAgICBjb25zdCB3YWl0
Rm9yUmVxdWVzdCA9IE1vY2tSZW1vdGVBUEkud2FpdEZvclJlcXVlc3QoKTsKICAgICAgICAgICAg
IGNvbnN0IHJlcXVlc3QgPSBjcmVhdGVTYW1wbGVCdWlsZFJlcXVlc3QoTW9ja01vZGVscy5pcGhv
bmUsIE1vY2tNb2RlbHMuc3BlZWRvbWV0ZXIpOwpAQCAtMTQyNCw3ICsxNDM3LDcgQEAgZGVzY3Jp
YmUoJ0J1aWxkYm90U3luY2VyJywgKCkgPT4gewogICAgICAgICB9CiAKICAgICAgICAgaXQoJ3No
b3VsZCBzY2hlZHVsZSBhIGJ1aWxkIGlmIGJ1aWxkZXIgaGFzIG5vIGJ1aWxkcyBpZiBzbGF2ZUxp
c3QgaXMgbm90IHNwZWNpZmllZCcsICgpID0+IHsKLSAgICAgICAgICAgIGxldCBzeW5jZXIgPSBC
dWlsZGJvdFN5bmNlci5fbG9hZENvbmZpZyhNb2NrUmVtb3RlQVBJLCBzbWFsbENvbmZpZ3VyYXRp
b24oKSlbMF07CisgICAgICAgICAgICBsZXQgc3luY2VyID0gQnVpbGRib3RTeW5jZXIuX2xvYWRD
b25maWcoTW9ja1JlbW90ZUFQSSwgc21hbGxDb25maWd1cmF0aW9uKCksIGJ1aWxkZXJOYW1lVG9J
RE1hcCgpKVswXTsKIAogICAgICAgICAgICAgcmV0dXJuIHB1bGxCdWlsZGJvdFdpdGhBc3NlcnRp
b24oc3luY2VyLCBbXSwge30pLnRoZW4oKCkgPT4gewogICAgICAgICAgICAgICAgIGNvbnN0IHJl
cXVlc3QgPSBjcmVhdGVTYW1wbGVCdWlsZFJlcXVlc3QoTW9ja01vZGVscy5zb21lUGxhdGZvcm0s
IE1vY2tNb2RlbHMuc29tZVRlc3QpOwpAQCAtMTQzNyw3ICsxNDUwLDcgQEAgZGVzY3JpYmUoJ0J1
aWxkYm90U3luY2VyJywgKCkgPT4gewogICAgICAgICB9KTsKIAogICAgICAgICBpdCgnc2hvdWxk
IHNjaGVkdWxlIGEgYnVpbGQgaWYgYnVpbGRlciBvbmx5IGhhcyBmaW5pc2hlZCBidWlsZHMgaWYg
c2xhdmVMaXN0IGlzIG5vdCBzcGVjaWZpZWQnLCAoKSA9PiB7Ci0gICAgICAgICAgICBsZXQgc3lu
Y2VyID0gQnVpbGRib3RTeW5jZXIuX2xvYWRDb25maWcoTW9ja1JlbW90ZUFQSSwgc21hbGxDb25m
aWd1cmF0aW9uKCkpWzBdOworICAgICAgICAgICAgbGV0IHN5bmNlciA9IEJ1aWxkYm90U3luY2Vy
Ll9sb2FkQ29uZmlnKE1vY2tSZW1vdGVBUEksIHNtYWxsQ29uZmlndXJhdGlvbigpLCBidWlsZGVy
TmFtZVRvSURNYXAoKSlbMF07CiAKICAgICAgICAgICAgIHJldHVybiBwdWxsQnVpbGRib3RXaXRo
QXNzZXJ0aW9uKHN5bmNlciwgW10sIHtbLTFdOiBzbWFsbEZpbmlzaGVkQnVpbGQoKX0pLnRoZW4o
KCkgPT4gewogICAgICAgICAgICAgICAgIGNvbnN0IHJlcXVlc3QgPSBjcmVhdGVTYW1wbGVCdWls
ZFJlcXVlc3QoTW9ja01vZGVscy5zb21lUGxhdGZvcm0sIE1vY2tNb2RlbHMuc29tZVRlc3QpOwpA
QCAtMTQ1MCw3ICsxNDYzLDcgQEAgZGVzY3JpYmUoJ0J1aWxkYm90U3luY2VyJywgKCkgPT4gewog
ICAgICAgICB9KTsKIAogICAgICAgICBpdCgnc2hvdWxkIG5vdCBzY2hlZHVsZSBhIGJ1aWxkIGlm
IGJ1aWxkZXIgaGFzIGEgcGVuZGluZyBidWlsZCBpZiBzbGF2ZUxpc3QgaXMgbm90IHNwZWNpZmll
ZCcsICgpID0+IHsKLSAgICAgICAgICAgIGxldCBzeW5jZXIgPSBCdWlsZGJvdFN5bmNlci5fbG9h
ZENvbmZpZyhNb2NrUmVtb3RlQVBJLCBzbWFsbENvbmZpZ3VyYXRpb24oKSlbMF07CisgICAgICAg
ICAgICBsZXQgc3luY2VyID0gQnVpbGRib3RTeW5jZXIuX2xvYWRDb25maWcoTW9ja1JlbW90ZUFQ
SSwgc21hbGxDb25maWd1cmF0aW9uKCksIGJ1aWxkZXJOYW1lVG9JRE1hcCgpKVswXTsKIAogICAg
ICAgICAgICAgcmV0dXJuIHB1bGxCdWlsZGJvdFdpdGhBc3NlcnRpb24oc3luY2VyLCBbc21hbGxQ
ZW5kaW5nQnVpbGQoKV0sIHt9KS50aGVuKCgpID0+IHsKICAgICAgICAgICAgICAgICBzeW5jZXIu
c2NoZWR1bGVSZXF1ZXN0SW5Hcm91cElmQXZhaWxhYmxlKGNyZWF0ZVNhbXBsZUJ1aWxkUmVxdWVz
dChNb2NrTW9kZWxzLnNvbWVQbGF0Zm9ybSwgTW9ja01vZGVscy5zb21lVGVzdCkpOwpAQCAtMTQ1
OSw3ICsxNDcyLDcgQEAgZGVzY3JpYmUoJ0J1aWxkYm90U3luY2VyJywgKCkgPT4gewogICAgICAg
ICB9KTsKIAogICAgICAgICBpdCgnc2hvdWxkIHNjaGVkdWxlIGEgYnVpbGQgaWYgYnVpbGRlciBk
b2VzIG5vdCBoYXZlIHBlbmRpbmcgb3IgY29tcGxldGVkIGJ1aWxkcyBvbiB0aGUgbWF0Y2hpbmcg
c2xhdmUnLCAoKSA9PiB7Ci0gICAgICAgICAgICBsZXQgc3luY2VyID0gQnVpbGRib3RTeW5jZXIu
X2xvYWRDb25maWcoTW9ja1JlbW90ZUFQSSwgc2FtcGxlaU9TQ29uZmlnKCkpWzBdOworICAgICAg
ICAgICAgbGV0IHN5bmNlciA9IEJ1aWxkYm90U3luY2VyLl9sb2FkQ29uZmlnKE1vY2tSZW1vdGVB
UEksIHNhbXBsZWlPU0NvbmZpZygpLCBidWlsZGVyTmFtZVRvSURNYXAoKSlbMF07CiAKICAgICAg
ICAgICAgIHJldHVybiBwdWxsQnVpbGRib3RXaXRoQXNzZXJ0aW9uKHN5bmNlciwgW10sIHt9KS50
aGVuKCgpID0+IHsKICAgICAgICAgICAgICAgICBjb25zdCByZXF1ZXN0ID0gY3JlYXRlU2FtcGxl
QnVpbGRSZXF1ZXN0KE1vY2tNb2RlbHMuaXBob25lLCBNb2NrTW9kZWxzLnNwZWVkb21ldGVyKTsK
QEAgLTE0NzEsNyArMTQ4NCw3IEBAIGRlc2NyaWJlKCdCdWlsZGJvdFN5bmNlcicsICgpID0+IHsK
ICAgICAgICAgfSk7CiAKICAgICAgICAgaXQoJ3Nob3VsZCBzY2hlZHVsZSBhIGJ1aWxkIGlmIGJ1
aWxkZXIgb25seSBoYXMgZmluaXNoZWQgYnVpbGRzIG9uIHRoZSBtYXRjaGluZyBzbGF2ZScsICgp
ID0+IHsKLSAgICAgICAgICAgIGxldCBzeW5jZXIgPSBCdWlsZGJvdFN5bmNlci5fbG9hZENvbmZp
ZyhNb2NrUmVtb3RlQVBJLCBzYW1wbGVpT1NDb25maWcoKSlbMV07CisgICAgICAgICAgICBsZXQg
c3luY2VyID0gQnVpbGRib3RTeW5jZXIuX2xvYWRDb25maWcoTW9ja1JlbW90ZUFQSSwgc2FtcGxl
aU9TQ29uZmlnKCksIGJ1aWxkZXJOYW1lVG9JRE1hcCgpKVsxXTsKIAogICAgICAgICAgICAgcHVs
bEJ1aWxkYm90V2l0aEFzc2VydGlvbihzeW5jZXIsIFtdLCB7Wy0xXTogc2FtcGxlRmluaXNoZWRC
dWlsZCgpfSkudGhlbigoKSA9PiB7CiAgICAgICAgICAgICAgICAgY29uc3QgcmVxdWVzdCA9IGNy
ZWF0ZVNhbXBsZUJ1aWxkUmVxdWVzdChNb2NrTW9kZWxzLmlwYWQsIE1vY2tNb2RlbHMuc3BlZWRv
bWV0ZXIpOwpAQCAtMTQ4Myw3ICsxNDk2LDcgQEAgZGVzY3JpYmUoJ0J1aWxkYm90U3luY2VyJywg
KCkgPT4gewogICAgICAgICB9KTsKIAogICAgICAgICBpdCgnc2hvdWxkIG5vdCBzY2hlZHVsZSBh
IGJ1aWxkIGlmIGJ1aWxkZXIgaGFzIGEgcGVuZGluZyBidWlsZCBvbiB0aGUgbWFjaGluZyBzbGF2
ZScsICgpID0+IHsKLSAgICAgICAgICAgIGxldCBzeW5jZXIgPSBCdWlsZGJvdFN5bmNlci5fbG9h
ZENvbmZpZyhNb2NrUmVtb3RlQVBJLCBzYW1wbGVpT1NDb25maWcoKSlbMV07CisgICAgICAgICAg
ICBsZXQgc3luY2VyID0gQnVpbGRib3RTeW5jZXIuX2xvYWRDb25maWcoTW9ja1JlbW90ZUFQSSwg
c2FtcGxlaU9TQ29uZmlnKCksIGJ1aWxkZXJOYW1lVG9JRE1hcCgpKVsxXTsKIAogICAgICAgICAg
ICAgcHVsbEJ1aWxkYm90V2l0aEFzc2VydGlvbihzeW5jZXIsIFtzYW1wbGVQZW5kaW5nQnVpbGQo
KV0sIHt9KS50aGVuKCgpID0+IHsKICAgICAgICAgICAgICAgICBjb25zdCByZXF1ZXN0ID0gY3Jl
YXRlU2FtcGxlQnVpbGRSZXF1ZXN0KE1vY2tNb2RlbHMuaXBhZCwgTW9ja01vZGVscy5zcGVlZG9t
ZXRlcik7CkBAIC0xNDkzLDcgKzE1MDYsNyBAQCBkZXNjcmliZSgnQnVpbGRib3RTeW5jZXInLCAo
KSA9PiB7CiAgICAgICAgIH0pOwogCiAgICAgICAgIGl0KCdzaG91bGQgc2NoZWR1bGUgYSBidWls
ZCBpZiBidWlsZGVyIG9ubHkgaGFzIGEgcGVuZGluZyBidWlsZCBvbiBhIG5vbi1tYWNoaW5nIHNs
YXZlJywgKCkgPT4gewotICAgICAgICAgICAgbGV0IHN5bmNlciA9IEJ1aWxkYm90U3luY2VyLl9s
b2FkQ29uZmlnKE1vY2tSZW1vdGVBUEksIHNhbXBsZWlPU0NvbmZpZygpKVsxXTsKKyAgICAgICAg
ICAgIGxldCBzeW5jZXIgPSBCdWlsZGJvdFN5bmNlci5fbG9hZENvbmZpZyhNb2NrUmVtb3RlQVBJ
LCBzYW1wbGVpT1NDb25maWcoKSwgYnVpbGRlck5hbWVUb0lETWFwKCkpWzFdOwogCiAgICAgICAg
ICAgICByZXR1cm4gcHVsbEJ1aWxkYm90V2l0aEFzc2VydGlvbihzeW5jZXIsIFtzYW1wbGVQZW5k
aW5nQnVpbGQoMSwgMSwgJ2Fub3RoZXItc2xhdmUnKV0sIHt9KS50aGVuKCgpID0+IHsKICAgICAg
ICAgICAgICAgICBjb25zdCByZXF1ZXN0ID0gY3JlYXRlU2FtcGxlQnVpbGRSZXF1ZXN0KE1vY2tN
b2RlbHMuaXBhZCwgTW9ja01vZGVscy5zcGVlZG9tZXRlcik7CkBAIC0xNTAzLDcgKzE1MTYsNyBA
QCBkZXNjcmliZSgnQnVpbGRib3RTeW5jZXInLCAoKSA9PiB7CiAgICAgICAgIH0pOwogCiAgICAg
ICAgIGl0KCdzaG91bGQgc2NoZWR1bGUgYSBidWlsZCBpZiBidWlsZGVyIG9ubHkgaGFzIGFuIGlu
LXByb2dyZXNzIGJ1aWxkIG9uIHRoZSBtYXRjaGluZyBzbGF2ZScsICgpID0+IHsKLSAgICAgICAg
ICAgIGxldCBzeW5jZXIgPSBCdWlsZGJvdFN5bmNlci5fbG9hZENvbmZpZyhNb2NrUmVtb3RlQVBJ
LCBzYW1wbGVpT1NDb25maWcoKSlbMV07CisgICAgICAgICAgICBsZXQgc3luY2VyID0gQnVpbGRi
b3RTeW5jZXIuX2xvYWRDb25maWcoTW9ja1JlbW90ZUFQSSwgc2FtcGxlaU9TQ29uZmlnKCksIGJ1
aWxkZXJOYW1lVG9JRE1hcCgpKVsxXTsKIAogICAgICAgICAgICAgcmV0dXJuIHB1bGxCdWlsZGJv
dFdpdGhBc3NlcnRpb24oc3luY2VyLCBbXSwge1stMV06IHNhbXBsZUluUHJvZ3Jlc3NCdWlsZCgp
fSkudGhlbigoKSA9PiB7CiAgICAgICAgICAgICAgICAgY29uc3QgcmVxdWVzdCA9IGNyZWF0ZVNh
bXBsZUJ1aWxkUmVxdWVzdChNb2NrTW9kZWxzLmlwYWQsIE1vY2tNb2RlbHMuc3BlZWRvbWV0ZXIp
OwpAQCAtMTUxMyw3ICsxNTI2LDcgQEAgZGVzY3JpYmUoJ0J1aWxkYm90U3luY2VyJywgKCkgPT4g
ewogICAgICAgICB9KTsKIAogICAgICAgICBpdCgnc2hvdWxkIHNjaGVkdWxlIGEgYnVpbGQgaWYg
YnVpbGRlciBoYXMgYW4gaW4tcHJvZ3Jlc3MgYnVpbGQgb24gYW5vdGhlciBzbGF2ZScsICgpID0+
IHsKLSAgICAgICAgICAgIGxldCBzeW5jZXIgPSBCdWlsZGJvdFN5bmNlci5fbG9hZENvbmZpZyhN
b2NrUmVtb3RlQVBJLCBzYW1wbGVpT1NDb25maWcoKSlbMV07CisgICAgICAgICAgICBsZXQgc3lu
Y2VyID0gQnVpbGRib3RTeW5jZXIuX2xvYWRDb25maWcoTW9ja1JlbW90ZUFQSSwgc2FtcGxlaU9T
Q29uZmlnKCksIGJ1aWxkZXJOYW1lVG9JRE1hcCgpKVsxXTsKIAogICAgICAgICAgICAgcmV0dXJu
IHB1bGxCdWlsZGJvdFdpdGhBc3NlcnRpb24oc3luY2VyLCBbXSwge1stMV06IHNhbXBsZUluUHJv
Z3Jlc3NCdWlsZCgnb3RoZXItc2xhdmUnKX0pLnRoZW4oKCkgPT4gewogICAgICAgICAgICAgICAg
IGNvbnN0IHJlcXVlc3QgPSBjcmVhdGVTYW1wbGVCdWlsZFJlcXVlc3QoTW9ja01vZGVscy5pcGFk
LCBNb2NrTW9kZWxzLnNwZWVkb21ldGVyKTsKQEAgLTE1MjMsNyArMTUzNiw3IEBAIGRlc2NyaWJl
KCdCdWlsZGJvdFN5bmNlcicsICgpID0+IHsKICAgICAgICAgfSk7CiAKICAgICAgICAgaXQoJ3No
b3VsZCBub3Qgc2NoZWR1bGUgYSBidWlsZCBpZiB0aGUgcmVxdWVzdCBkb2VzIG5vdCBtYXRjaCBh
bnkgY29uZmlndXJhdGlvbicsICgpID0+IHsKLSAgICAgICAgICAgIGxldCBzeW5jZXIgPSBCdWls
ZGJvdFN5bmNlci5fbG9hZENvbmZpZyhNb2NrUmVtb3RlQVBJLCBzYW1wbGVpT1NDb25maWcoKSlb
MF07CisgICAgICAgICAgICBsZXQgc3luY2VyID0gQnVpbGRib3RTeW5jZXIuX2xvYWRDb25maWco
TW9ja1JlbW90ZUFQSSwgc2FtcGxlaU9TQ29uZmlnKCksIGJ1aWxkZXJOYW1lVG9JRE1hcCgpKVsw
XTsKIAogICAgICAgICAgICAgcmV0dXJuIHB1bGxCdWlsZGJvdFdpdGhBc3NlcnRpb24oc3luY2Vy
LCBbXSwge30pLnRoZW4oKCkgPT4gewogICAgICAgICAgICAgICAgIGNvbnN0IHJlcXVlc3QgPSBj
cmVhdGVTYW1wbGVCdWlsZFJlcXVlc3QoTW9ja01vZGVscy5pcGFkLCBNb2NrTW9kZWxzLnNwZWVk
b21ldGVyKTsKQEAgLTE1MzMsNyArMTU0Niw3IEBAIGRlc2NyaWJlKCdCdWlsZGJvdFN5bmNlcics
ICgpID0+IHsKICAgICAgICAgfSk7CiAKICAgICAgICAgaXQoJ3Nob3VsZCBub3Qgc2NoZWR1bGUg
YSBidWlsZCBpZiBhIG5ldyByZXF1ZXN0IGhhZCBiZWVuIHN1Ym1pdHRlZCB0byB0aGUgc2FtZSBz
bGF2ZScsIChkb25lKSA9PiB7Ci0gICAgICAgICAgICBsZXQgc3luY2VyID0gQnVpbGRib3RTeW5j
ZXIuX2xvYWRDb25maWcoTW9ja1JlbW90ZUFQSSwgc2FtcGxlaU9TQ29uZmlnKCkpWzFdOworICAg
ICAgICAgICAgbGV0IHN5bmNlciA9IEJ1aWxkYm90U3luY2VyLl9sb2FkQ29uZmlnKE1vY2tSZW1v
dGVBUEksIHNhbXBsZWlPU0NvbmZpZygpLCBidWlsZGVyTmFtZVRvSURNYXAoKSlbMV07CiAKICAg
ICAgICAgICAgIHB1bGxCdWlsZGJvdFdpdGhBc3NlcnRpb24oc3luY2VyLCBbXSwge30pLnRoZW4o
KCkgPT4gewogICAgICAgICAgICAgICAgIGxldCByZXF1ZXN0ID0gY3JlYXRlU2FtcGxlQnVpbGRS
ZXF1ZXN0KE1vY2tNb2RlbHMuaXBhZCwgTW9ja01vZGVscy5zcGVlZG9tZXRlcik7CkBAIC0xNTUx
LDcgKzE1NjQsNyBAQCBkZXNjcmliZSgnQnVpbGRib3RTeW5jZXInLCAoKSA9PiB7CiAgICAgICAg
IH0pOwogCiAgICAgICAgIGl0KCdzaG91bGQgc2NoZWR1bGUgYSBidWlsZCBpZiBhIG5ldyByZXF1
ZXN0IGhhZCBiZWVuIHN1Ym1pdHRlZCB0byBhbm90aGVyIHNsYXZlJywgKCkgPT4gewotICAgICAg
ICAgICAgbGV0IHN5bmNlciA9IEJ1aWxkYm90U3luY2VyLl9sb2FkQ29uZmlnKE1vY2tSZW1vdGVB
UEksIHNhbXBsZWlPU0NvbmZpZygpKVsxXTsKKyAgICAgICAgICAgIGxldCBzeW5jZXIgPSBCdWls
ZGJvdFN5bmNlci5fbG9hZENvbmZpZyhNb2NrUmVtb3RlQVBJLCBzYW1wbGVpT1NDb25maWcoKSwg
YnVpbGRlck5hbWVUb0lETWFwKCkpWzFdOwogCiAgICAgICAgICAgICByZXR1cm4gcHVsbEJ1aWxk
Ym90V2l0aEFzc2VydGlvbihzeW5jZXIsIFtdLCB7fSkudGhlbigoKSA9PiB7CiAgICAgICAgICAg
ICAgICAgbGV0IHJlcXVlc3QgPSBjcmVhdGVTYW1wbGVCdWlsZFJlcXVlc3QoTW9ja01vZGVscy5p
cGFkLCBNb2NrTW9kZWxzLnNwZWVkb21ldGVyKTsKQEAgLTE1NjQsNyArMTU3Nyw3IEBAIGRlc2Ny
aWJlKCdCdWlsZGJvdFN5bmNlcicsICgpID0+IHsKICAgICAgICAgfSk7CiAKICAgICAgICAgaXQo
J3Nob3VsZCBub3Qgc2NoZWR1bGUgYSBidWlsZCBpZiBhIG5ldyByZXF1ZXN0IGhhZCBiZWVuIHN1
Ym1pdHRlZCB0byB0aGUgc2FtZSBidWlsZGVyIHdpdGhvdXQgc2xhdmVMaXN0JywgKCkgPT4gewot
ICAgICAgICAgICAgbGV0IHN5bmNlciA9IEJ1aWxkYm90U3luY2VyLl9sb2FkQ29uZmlnKE1vY2tS
ZW1vdGVBUEksIHNtYWxsQ29uZmlndXJhdGlvbigpKVswXTsKKyAgICAgICAgICAgIGxldCBzeW5j
ZXIgPSBCdWlsZGJvdFN5bmNlci5fbG9hZENvbmZpZyhNb2NrUmVtb3RlQVBJLCBzbWFsbENvbmZp
Z3VyYXRpb24oKSwgYnVpbGRlck5hbWVUb0lETWFwKCkpWzBdOwogCiAgICAgICAgICAgICByZXR1
cm4gcHVsbEJ1aWxkYm90V2l0aEFzc2VydGlvbihzeW5jZXIsIFtdLCB7fSkudGhlbigoKSA9PiB7
CiAgICAgICAgICAgICAgICAgbGV0IHJlcXVlc3QgPSBjcmVhdGVTYW1wbGVCdWlsZFJlcXVlc3Qo
TW9ja01vZGVscy5zb21lUGxhdGZvcm0sIE1vY2tNb2RlbHMuc29tZVRlc3QpOwo=
</data>

          </attachment>
      

    </bug>

</bugzilla>